--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebCore/bridge/symbian/SoundStartSymbian.cpp Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <e32base.h>
+#include "config.h"
+#include "SoundStartSymbian.h"
+#include "KUrl.h"
+#include "Frame.h"
+#include "FrameLoader.h"
+#include "Widget.h"
+#include "HtmlNames.h"
+#include "WebCoreWidget.h"
+#include "WebCoreFrameBridge.h"
+
+const TInt KMaxNumAttributes = 3;
+_LIT(KDefaultLoopAttr, "1");
+_LIT(KSoundstart,"soundstart");
+
+namespace WebCore {
+using namespace HTMLNames;
+
+SoundStart::SoundStart():
+ iPlugin(0),
+ iLoopAttr(KDefaultLoopAttr),
+ iOnFocus(false)
+{
+}
+
+SoundStart::~SoundStart()
+{
+ delete iPlugin;
+}
+
+void SoundStart::SetStartAttribute(const String& aStartAttr)
+{
+ if (aStartAttr == "focus") {
+ iOnFocus = true;
+ }
+ else {
+ iOnFocus = false;
+ }
+
+}
+
+void SoundStart::SetSrcAttribute(const String& aSrcAttr)
+{
+ iSrcAttr = aSrcAttr;
+}
+
+void SoundStart::SetLoopAttribute(const String& aLoopAttr)
+{
+ iLoopAttr = aLoopAttr;
+}
+
+void SoundStart::SetVolumeAttribute(const String& aVolumeAttr)
+{
+ iVolumeAttr = aVolumeAttr;
+}
+
+void SoundStart::LoadPlugin(Frame* aFrame)
+{
+ if (!iSrcAttr.isEmpty()) {
+
+ KURL completedURL = aFrame->loader()->completeURL(iSrcAttr.deprecatedString());
+
+ CArrayFixFlat<TPtrC> *attributeNames = new CArrayFixFlat<TPtrC>(KMaxNumAttributes);
+ CArrayFixFlat<TPtrC> *attributeValues = new CArrayFixFlat<TPtrC>(KMaxNumAttributes);
+
+ if (!attributeNames || !attributeValues) {
+ delete attributeNames;
+ delete attributeValues;
+ return;
+ }
+
+ TRAPD(leave,
+ if (!iSrcAttr.isEmpty()) {
+ attributeNames->AppendL(srcAttr.toString());
+ attributeValues->AppendL(iSrcAttr);
+ }
+
+ if (!iLoopAttr.isEmpty()) {
+ attributeNames->AppendL(loopAttr.toString());
+ attributeValues->AppendL(iLoopAttr);
+ }
+
+
+ if (!iVolumeAttr.isEmpty()) {
+ attributeNames->AppendL(volumeAttr.toString());
+ attributeValues->AppendL(iVolumeAttr);
+ }
+ );
+
+ if (leave == KErrNone) {
+ // tot:fixme
+ //iPlugin = aFrame->bridge()->Callback().viewForPluginWithURL( completedURL.des(),
+ // *attributeNames,
+ // *attributeValues,
+ // KNullDesC8(),
+ // KSoundstart,
+ // true);
+ }
+
+ delete attributeNames;
+ delete attributeValues;
+ }
+
+}
+
+void SoundStart::OnHover(Frame* aFrame, bool aOver)
+{
+
+ if (iPlugin) {
+
+ if (!iSrcAttr.isEmpty() && iOnFocus) {
+
+ KURL completedURL = aFrame->loader()->completeURL(iSrcAttr.deprecatedString());
+
+ // tot:fixme
+ /*if (!aOver) {
+ iPlugin->StopPluginContent(completedURL.des());
+ }
+ else {
+ iPlugin->PlayPluginContent(completedURL.des());
+ }*/
+ }
+
+ }
+
+}
+
+void SoundStart::OnClick(Frame* aFrame)
+{
+ if (iPlugin) {
+
+ if (!iSrcAttr.isEmpty() && !iOnFocus) {
+
+ KURL completedURL = aFrame->loader()->completeURL(iSrcAttr.deprecatedString());
+
+ // tot:fixme
+ /*if (iPlugin->IsActive()) {
+ iPlugin->StopPluginContent(completedURL.des());
+ }
+ else {
+ iPlugin->PlayPluginContent(completedURL.des());
+ }*/
+ }
+
+ }
+
+}
+
+
+}
+
+