browserplugins/browseraudiovideoplugin/inc/BavpHwKeyEvents.h
changeset 0 84ad3b177aa3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/browserplugins/browseraudiovideoplugin/inc/BavpHwKeyEvents.h	Mon Mar 30 12:49:49 2009 +0300
@@ -0,0 +1,135 @@
+/*
+* 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:  Class which implements handling Hardware Key events.
+*                This class implements methods of MRemConCoreApiTargetObserver
+*
+*/
+
+
+#ifndef BAVPHWKEYEVENTS_H
+#define BAVPHWKEYEVENTS_H
+
+// INCLUDES
+#include <RemConCoreApiTargetObserver.h>
+
+// FORWARD DECLARATIONS
+class CRemConInterfaceSelector;
+class CRemConCoreApiTarget;
+class MRemConCoreApiTargetObserver;
+
+// CONSTANTS
+
+// CLASS DECLARATION
+/**
+*  MBavpHwKeyEventsObserver class for hardware key events
+*  This class implements methods of MRemConCoreApiTargetObserver
+*  @lib npBrowserVideoPlugin.lib
+*  @since 3.2
+*/
+class MBavpHwKeyEventsObserver
+    {
+    public:
+        /**
+        * Called when volume level should be changed.
+        * @since 3.2
+    	* @param aVolumeChange: +1 change volume up
+        *                       -1 change volume down
+        * @return void
+        */
+        virtual void BavpHwKeyVolumeChange( TInt aVolumeChange ) = 0;
+
+        /**
+        * Called when a media hardware key (play, pause...) was presed.
+        * @since 3.2
+    	* @param aCommand: Command ID representing Play, Pause, ...
+        * @return void
+        */
+        // Incr15 SCO item that was cancelled.
+        // virtual void BavpHwKeyCommand( TBavpCommandIds aCommand ) = 0;
+    };
+    
+/**
+*  CBavpHwKeyEvents class to handle Side Volume Key events
+*  @lib npBrowserVideoPlugin.lib
+*  @since 3.2
+*/
+class CBavpHwKeyEvents : public CBase,
+					     public MRemConCoreApiTargetObserver
+    {
+    public: // Constructors and destructor
+
+        /**
+        * Symbian constructor
+        * @param aObserver observer to implement callback functions
+        */
+        static CBavpHwKeyEvents* NewL( MBavpHwKeyEventsObserver& aObserver );
+
+        /**
+        * Destructor.
+        */
+        ~CBavpHwKeyEvents();
+
+    private: // Constructors and destructor
+
+    	/**
+    	* Default constructor.
+        * @since 3.2
+        */
+        CBavpHwKeyEvents( MBavpHwKeyEventsObserver& aObserver );
+
+        /**
+        * Constructor.
+        * @since 3.2
+        */
+         void ConstructL();
+         
+    protected: // From MRemConCoreApiTargetObserver
+    
+		/* Handles hardware key events
+        * @since 3.2
+    	*/
+    	void MrccatoCommand( TRemConCoreApiOperationId aOperationId, 
+    	 					 TRemConCoreApiButtonAction aButtonAct );
+
+    private:
+
+        /**
+        * Change volume depending on the level of increase or decrease
+        * @since 3.2
+        */
+        void DoChangeVolume( );
+
+        /**
+        * VolumeTimerCallback is the callback function called from change volume timer.
+        * @since 3.2
+        */
+        static TInt VolumeTimerCallback( TAny* aThis );
+
+    private:    // data
+    
+        MBavpHwKeyEventsObserver& iObserver;
+        
+        CRemConInterfaceSelector* iInterfaceSelector;
+        
+        CRemConCoreApiTarget* iCoreTarget;
+        
+        CPeriodic* iVolumeTimer;
+            
+        // Indicates size of volume level change
+        TInt iChange;
+        };
+
+#endif // BAVPHWKEYEVENTS_H
+
+// End of File