diff -r 4096754ee773 -r 52a167391590 localconnectivityservice/headset/hidremconbearer/inc/hidremconbearerobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/localconnectivityservice/headset/hidremconbearer/inc/hidremconbearerobserver.h Wed Sep 01 12:20:40 2010 +0100 @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2005-2009 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: Declaration of class CHidRemconBearerObserver + * +*/ + + +#ifndef C_HIDREMCONBEAREROBSERVER_H +#define C_HIDREMCONBEAREROBSERVER_H + +#include +#include + +/** + * Observer key types + */ +enum TObserverKeyType + { + EMediaKeys = 0, + EAccessoryVolumeKeys, + EMuteKey, + EHookKeys + }; + +/** + * Call Back Receiver + * On receiving event from the P & S, CHidRemconBearerObserver calls + * this function + * + */ +class MCallBackReceiver + { +public: + /** + * Called when event has arrived from P&S. + * + * @param aEnumValue Enum value representing the key and action + * @param aKeyType will indicate whether it is Volume key or Media key + */ + virtual void ReceivedKeyEvent( TInt aEnumValue, TInt aKeyType ) = 0; + }; + +/** + * Hid remcon bearer observer + * This class inplements the Active Object. There will be two instance + * of this ,one for handling Volume keys and other for Media Keys + * + */ +class CHidRemconBearerObserver : public CActive + { +public: + // Constructors and destructor + + /** + * Two-phased constructor. + * @param aCallback reference of the class which implements + * MCallBackReceiver for handling call back + * functions + * @param aKeyType Indiacates whether it is side volume key or + * media key + * @return remconbearer observer + */ + static CHidRemconBearerObserver* NewL( MCallBackReceiver& aCallback, + TInt aKeyType ); + /** + * Destructor. + */ + virtual ~CHidRemconBearerObserver(); + +public: + /** + * Start remconbearer observer key events + * + * @return Error code + */ + TInt Start(); + + /** + * Stop remconbearer observer key events + * + */ + void Stop(); + +private: + /** + * Two-phased constructor. + * @param aCallback reference of the class which implements + * MCallBackReceiver for handling call back + * functions + */ + CHidRemconBearerObserver( MCallBackReceiver& aCallback ); + + /** + * Two-phased constructor. + * @param aKeyType Indiacates whether it is side volume key or + * media key + */ + void ConstructL( TInt aKeyType ); + +private: + // From Base class CActive + + /** + * From CActive + * Handles an active object's request completion event. + * + */ + void RunL(); + + /** + * From CActive + * Canceling outstanding request + * + */ + void DoCancel(); + +private: + // Data + /** + * RProperty for key subscribing key values + */ + RProperty iProperty; + + /** + * Callback to request handler + */ + MCallBackReceiver& iCallback; + + /** + * Key type + */ + TInt iKeyType; // Vol key or media Key + }; + +#endif // HIDREMCONBEAREROBSERVER_H +// End of file