webengine/osswebengine/WebCore/bridge/symbian/SoundStartSymbian.cpp
changeset 0 dd21522fd290
child 68 92a765b5b3e7
--- /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());            
+            }*/
+        }
+            
+    }
+    
+}
+
+
+}
+
+