diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshui/inc/musuiresourcehandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshui/inc/musuiresourcehandler.h Wed Sep 01 12:31:01 2010 +0100 @@ -0,0 +1,162 @@ +/* +* 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: Handler for camera, keypad and video player resources +* +*/ + + + +#include "musuipropertyobserver.h" +#include "musresourceproperties.h" +#include "mussettingskeys.h" +#include "musmanagercommon.h" + +#include + +class CMusUiPropertyWatch; +class MMusUiEventObserver; +class CAknWaitDialog; + +/** + * Encapsulates handling and observing of camera, keypad and video player + * hardware and software resources. + */ +class CMusUiResourceHandler : public CBase, + public MMusUiPropertyObserver + { + + public: + + virtual ~CMusUiResourceHandler(); + + static CMusUiResourceHandler* NewL( MMusUiEventObserver& aObserver ); + + public: // API + + TBool RequestKeypadL( TBool aMandatory = EFalse ); + + TBool RequestCameraL( TBool aMandatory = EFalse ); + + TBool RequestVideoPlayerL( TBool aMandatory = EFalse ); + + void CheckInitialOrientationL( MultimediaSharing::TMusUseCase aUsecase ); + + + public: // From MMusUiPropertyObserver + + /** + * @param TUint aKey - The Property key + * @param TInt aValue - The value of the Property key + */ + virtual void PropertyChanged( const TUint aKey, const TInt aValue ); + + virtual void HandlePropertyError( const TInt aReason ); + + + private: + + CMusUiResourceHandler( MMusUiEventObserver& aObserver ); + + void ConstructL(); + + + private: // Helpers + + TBool ShowChangeProductModeDialogL( const TDesC& aPrompt ); + + TBool IsCurrentlyAvailable( NMusResourceApi::TAvailability aResourceAvailability, + MusSettingsKeys::TUsability aResourceUsability ); + + + private: // data + + /** + * + */ + MMusUiEventObserver& iObserver; + + /** + * + */ + CMusUiPropertyWatch* iCameraResourceWatch; + + /** + * + */ + CMusUiPropertyWatch* iKeypadResourceWatch; + + /** + * It holds the value for CameraAvailability. + * If it is static available ( Bit set to 0 in Cenrep) + * then it will be available always , if the bit set + * to 1 ( dynamic ) then it should be monitored by property + * listner and set the value accordingly. + */ + NMusResourceApi::TAvailability iCameraAvailability; + + /** + * It holds the value for KeypadAvailability. + * If it is static available ( Bit set to 0 in Cenrep) + * then it will be available always , if the bit set + * to 1 ( dynamic ) then it should be monitored by property + * listner and set the value accordingly. + */ + NMusResourceApi::TAvailability iKeypadAvailability; + + /** + * It holds the value for CameraUsability. + * Intially read from cenrep and assigned + * Refer mussettingskeys.h to know the bit value. + */ + MusSettingsKeys::TUsability iCameraUsability; + + /** + * It holds the value for KeypadUsability. + * Intially read from cenrep and assigned + * Refer mussettingskeys.h to know the bit value. + */ + MusSettingsKeys::TUsability iKeypadUsability; + + /** + * It holds the value for VideoplayerUsability. + * Intially read from cenrep and assigned + * Refer mussettingskeys.h to know the bit value. + */ + MusSettingsKeys::TUsability iVideoplayerUsability; + + /** + * + */ + TBool iCameraAvailibilityInProgress; + + /** + * + */ + TBool iKeypadAvailibilityInProgress; + + /** + * + */ + CAknWaitDialog* iChangeProductModeDialog; + + /** + * + */ + HBufC* iDialogPrompt; + + }; + + + +