mmsharing/mmshui/inc/musuiresourcehandler.h
branchRCL_3
changeset 33 bc78a40cd63c
--- /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 <e32base.h>
+
+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;
+        
+    };
+
+
+
+