diff -r 000000000000 -r a2952bb97e68 mpx/playbackframework/playbackengine/inc/mpxaccessoryobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/playbackframework/playbackengine/inc/mpxaccessoryobserver.h Thu Dec 17 08:55:47 2009 +0200 @@ -0,0 +1,195 @@ +/* +* 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 "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: Accessory observer +* +*/ + + +#ifndef CMPXACCESSORYOBSERVER_H +#define CMPXACCESSORYOBSERVER_H + +// INCLUDES +#ifdef __ACCESSORY_FW +#include +#include +#include +#else +#include +#include +#endif // __ACCESSORY_FW + +#include + +// FORWARD DECLARATIONS +#ifndef __ACCESSORY_FW +class RDosServer; +#endif // __ACCESSORY_FW + +/** +* Interface for handling accessory event +*/ +NONSHARABLE_CLASS(MMPXAccessoryEventObserver) + { +public: + /** + * Handle accessory event + * + * @param aMode playback accessory mode + */ + virtual void HandleAccesoryEventL(TMPXPlaybackAccessoryMode aMode)=0; + }; + + +#ifdef __ACCESSORY_FW + +NONSHARABLE_CLASS( CMPXAccessoryObserver ): public CActive + { + public: // constructor & destructor + + /** + * Two phase constructor + * @param aObs Reference to an event observer + */ + static CMPXAccessoryObserver* NewL(MMPXAccessoryEventObserver& aObs); + + /** + * Destructor. + */ + virtual ~CMPXAccessoryObserver(); + + public: + + /** + * Starts listening to Accessory events. + * @param None + * @return None + */ + void StartL(); + + /* + * Gets current accessory mode + */ + TMPXPlaybackAccessoryMode AccessoryModeL(); + + private: // New functions + + /** + * Converts from accessory mode to internal MPX mode enum + * @param aMode Accessory framework mode + * @ret MPX Accessory Mode + */ + TMPXPlaybackAccessoryMode ConvertToMpxMode( + TAccPolAccessoryMode& aMode ); + + private: // from CActive + /** @see CActive::RunL */ + void RunL(); + + /** @see CActive::DoCancel */ + void DoCancel(); + + private: // Constructor + + /** + * C++ default constructor. + * @param aObs Reference to an event observer + */ + CMPXAccessoryObserver(MMPXAccessoryEventObserver& aObs); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: + // Event observer + MMPXAccessoryEventObserver& iObs; + // Accessory Server session + RAccessoryServer iServer; + // Accessory mode + RAccessoryMode iMode; + TAccPolAccessoryMode iAccessory_mode; + + }; + +#else +/** +* Accessary event observer +*/ +NONSHARABLE_CLASS(CMPXAccessoryObserver): public CDosEventListenerBase + { +public: + + /** + * Two-phased constructor + * + * @param aObs observer + * @return object of constructed + */ + static CMPXAccessoryObserver* NewL(MMPXAccessoryEventObserver& aObs); + + /** + * Destructor. + */ + virtual ~CMPXAccessoryObserver(); + +public: // from CDosEventListenerBase + /** + * From CDosEventListenerBase + * Accessory mode changed + * + * @param aState accessory state + */ + void AccessoryModeChangedL(TDosAccessoryMode aState); + + /** + * From CDosEventListenerBase + * Start monitoring + */ + void StartL(); + + /* + * Gets current accessory mode + */ + TMPXPlaybackAccessoryMode AccessoryModeL(); + +private: // New functions + + /** + * Converts from accessory mode to internal MPX mode enum + * @param aMode Dos Accessory framework mode + * @ret MPX Accessory Mode + */ + TMPXPlaybackAccessoryMode ConvertToMpxMode( + TDosAccessoryMode& aMode ); + +private: + + /** + * C++ constructor + * + * @param aObs observer + */ + CMPXAccessoryObserver(MMPXAccessoryEventObserver& aObs); + + /** + * 2nd phase constructor + */ + void ConstructL(); +private: + MMPXAccessoryEventObserver& iObs; + }; +#endif // __ACCESSORY_FW + +#endif // CMPXACCESSORYOBSERVER_H