diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CamVolumeKeyObserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/CamVolumeKeyObserver.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,155 @@ +/* +* Copyright (c) 2007 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: Observes Remote Controller Framework for volume key presses* +*/ + + +#ifndef CAMVOLKEYOBSERVER_H +#define CAMVOLKEYOBSERVER_H + +// INCLUDES +#include +#include "CamZoomPane.h" + +// FORWARD DECLARATIONS +class CRemConInterfaceSelector; +class CRemConCoreApiTarget; +class CCamRemConKeyResponse; +class CCamZoomPane; + +/** +* Observer interface for volume key events +* +* since @3.1 +* +*/ +class MCamVolumeKeyObserver + { +public: + /** + * Report volume keys events to observer + * @since 3.1 + * @param aOperationId Volume key up Volume key down event + * @param aButtonAct button action (press, release, click) + */ + virtual void HandleVolumeKeyEvent( TRemConCoreApiOperationId aOperationId, + TRemConCoreApiButtonAction aButtonAct ) = 0; + }; + +// CLASS DECLARATION + +/** +* Observes Remote Controller Framework +* +* @since 3.1 +*/ +class CCamRemConObserver + : public CBase, public MRemConCoreApiTargetObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aZoomPane zoom pane instance + * @return new instance. + */ + static CCamRemConObserver* NewL( MCamVolumeKeyObserver& aObserver ); + + /** + * Destructor. + */ + ~CCamRemConObserver(); + + public: // New functions + + protected: + + /** + * from MRemConCoreApiTargetObserver interface class. + * A command has been received. + * @param aOperationId The operation ID of the command. + * @param aButtonAct The button action associated with the command. + */ + void MrccatoCommand( TRemConCoreApiOperationId aOperationId, + TRemConCoreApiButtonAction aButtonAct ); + + /** + * from MRemConCoreApiTargetObserver interface class. + * not used + */ + void MrccatoPlay(TRemConCoreApiPlaybackSpeed aSpeed, + TRemConCoreApiButtonAction aButtonAct); + + /** + * from MRemConCoreApiTargetObserver interface class. + * not used + */ + void MrccatoTuneFunction(TBool aTwoPart, + TUint aMajorChannel, + TUint aMinorChannel, + TRemConCoreApiButtonAction aButtonAct); + + /** + * from MRemConCoreApiTargetObserver interface class. + * not used + */ + void MrccatoSelectDiskFunction(TUint aDisk, + TRemConCoreApiButtonAction aButtonAct); + + /** + * from MRemConCoreApiTargetObserver interface class. + * not used + */ + void MrccatoSelectAvInputFunction(TUint8 aAvInputSignalNumber, + TRemConCoreApiButtonAction aButtonAct); + + /** + * from MRemConCoreApiTargetObserver interface class. + * not used + */ + void MrccatoSelectAudioInputFunction(TUint8 aAudioInputSignalNumber, + TRemConCoreApiButtonAction aButtonAct); + + private: + + /** + * C++ default constructor. + * @since 3.1 + * @param aZoomPane instance of zoom pane + */ + CCamRemConObserver( MCamVolumeKeyObserver& aObserver ); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // Data + + // Remote Controller + CRemConInterfaceSelector* iInterfaceSelector; + + // Remote Controller + CRemConCoreApiTarget* iCoreTarget; + + // Key response + CCamRemConKeyResponse* iActiveRemCon; + + // zoom pane + MCamVolumeKeyObserver& iObserver; + }; + +#endif // CAMVOLKEYOBSERVER_H + +// End of File