mmsharing/mmshui/src/musuiresourcehandler.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 21 33a5d2bbf6fc
child 23 bc78a40cd63c
--- a/mmsharing/mmshui/src/musuiresourcehandler.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,558 +0,0 @@
-/*
-* 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 "musuiresourcehandler.h"
-#include "musuipropertywatch.h"
-#include "musuieventobserver.h"
-#include "musuidialogutil.h"
-#include "muslogger.h"
-#include "mussettings.inl"
-
-#include <musui.rsg>
-#include <AknWaitDialog.h>
-#include <StringLoader.h>
-
-using namespace NMusResourceApi;
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiResourceHandler::~CMusUiResourceHandler()
-    {    
-    delete iCameraResourceWatch;
-    delete iKeypadResourceWatch;
-    
-    delete iChangeProductModeDialog;
-    delete iDialogPrompt;
-    }
-    
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiResourceHandler* CMusUiResourceHandler::NewL( 
-                                            MMusUiEventObserver& aObserver )
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiResourceHandler::NewL()" )
-    
-    CMusUiResourceHandler* self = 
-                            new ( ELeave ) CMusUiResourceHandler( aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiResourceHandler::NewL()" )
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiResourceHandler::RequestKeypadL( TBool aMandatory )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiResourceHandler::RequestKeypadL" )
-    
-    TBool keypadAvailable( EFalse ); 
-    
-    switch ( iKeypadAvailability )
-        {        
-        case NMusResourceApi::EAvailable:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Keypad is available" )            
-		    break;		            
-            }			         
-        case NMusResourceApi::ENotAvailable:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Keypad is not available, changing mode" )
-            iKeypadAvailibilityInProgress = ETrue;
-            delete iDialogPrompt;
-            iDialogPrompt = NULL;
-            iDialogPrompt = StringLoader::LoadL( R_MUS_CHANGE_KEYPAD_MODE_TXT );
-            ShowChangeProductModeDialogL( *iDialogPrompt );            
-            MUS_LOG( "                 Product mode changed" )
-            MUS_LOG1( "                 Keypad availability is %d", 
-                      iKeypadAvailability )            
-            break;
-            }
-        default:
-            {
-            MUS_LOG( "mus: [MUSUI ]     availability default." )
-            break;
-            }
-            
-        }
-        
-    switch(iKeypadUsability)
-    	{
-    	case MusSettingsKeys::EUsabilityLandscape:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Keypad is usable in landscape" )
-            iObserver.SwitchOrientationL( 
-                                    CAknAppUiBase::EAppUiOrientationLandscape );            
-            break;
-            }
-        case MusSettingsKeys::EUsabilityPortrait:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Keypad is usable in portrait" )
-            iObserver.SwitchOrientationL( 
-                                    CAknAppUiBase::EAppUiOrientationPortrait );            
-            break;
-            }	
-    	case MusSettingsKeys::EUsabilityAlways:
-    		{
-    		MUS_LOG( "mus: [MUSUI ]     Keypad is usable in all mode" )
-    		keypadAvailable = ETrue;	
-    		}
-    		break;
-    	default:
-    	  	MUS_LOG( "mus: [MUSUI ]     usuability default ." )
-    	  	break;
-    	}
-    	
-    keypadAvailable = IsCurrentlyAvailable( iKeypadAvailability,
-		                                    iKeypadUsability );
-            
-    if ( aMandatory && !keypadAvailable )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Mandatory keypad not available, exiting" )
-        MusUiDialogUtil::ShowGlobalInformationDialogL( 
-                                R_MUS_LIVE_SHARING_VIEW_NOTE_SHARING_ENDED );
-        iObserver.HandleExit();
-        }
-    
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiResourceHandler::RequestKeypadL( %d )",
-              keypadAvailable )
-    
-    return keypadAvailable;
-    
-    
-    }
-    
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiResourceHandler::RequestCameraL( TBool aMandatory )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiResourceHandler::RequestCameraL" )
-    
-    TBool cameraAvailable( EFalse );
-    
-    switch ( iCameraAvailability )
-        {        
-        case NMusResourceApi::EAvailable:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Camera is available" )            
-            cameraAvailable = ETrue;
-            break;
-            }
-        
-        case NMusResourceApi::ENotAvailable:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Camera is not available, changing mode" )
-
-            iCameraAvailibilityInProgress = ETrue;
-            delete iDialogPrompt;
-            iDialogPrompt = NULL;
-            iDialogPrompt = StringLoader::LoadL(
-                R_MUS_LIVE_SHARING_VIEW_OPEN_CAMERA_LENS_COVER_WAIT_NOTE_TXT );
-            ShowChangeProductModeDialogL( *iDialogPrompt );
-            
-            MUS_LOG( "                 Product mode changed" )
-            MUS_LOG1( "                 Camera availability is %d", 
-                      iCameraAvailability )                                  
-            break;
-            }
-        default:
-        	MUS_LOG( "mus: [MUSUI ]     availability default." )
-            break;
-        }
-        
-    switch(iCameraUsability)
-    	{
-    	case MusSettingsKeys::EUsabilityLandscape:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Camera is usable in landscape" )
-            iObserver.SwitchOrientationL( 
-                                CAknAppUiBase::EAppUiOrientationLandscape );            
-            break;
-            }
-        case MusSettingsKeys::EUsabilityPortrait:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Camera is usable in portrait" )
-            iObserver.SwitchOrientationL( 
-                                CAknAppUiBase::EAppUiOrientationPortrait );           
-            break;
-            }	
-        case MusSettingsKeys::EUsabilityAlways:
-    		{
-    		MUS_LOG( "mus: [MUSUI ]     camera is usable in all mode" )
-    		cameraAvailable = ETrue;	
-    		}
-    	default:
-            {
-            MUS_LOG( "mus: [MUSUI ]     usuability default." )
-            break;
-            }
-    	}
-    
-    cameraAvailable = IsCurrentlyAvailable( iCameraAvailability,
-		                                    iCameraUsability );
-    if ( aMandatory && !cameraAvailable )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Mandatory camera not available, exiting" )
-        MusUiDialogUtil::ShowGlobalInformationDialogL( 
-                                R_MUS_LIVE_SHARING_VIEW_NOTE_SHARING_ENDED ); 
-        iObserver.HandleExit();        
-        }
-    
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiResourceHandler::RequestCameraL( %d )",
-              cameraAvailable )
-        
-    return cameraAvailable;
-    }
- 
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiResourceHandler::RequestVideoPlayerL( TBool aMandatory )
-    { 
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiResourceHandler::RequestVideoPlayerL" )
-    
-    TBool videoPlayerAvailable( EFalse );
-    
-    /* Video Player will be always available. There is no dynamic variation */
-    NMusResourceApi::TAvailability vpAvailability = NMusResourceApi::EAvailable;
-    
-    switch ( iVideoplayerUsability )
-        {       
-        case MusSettingsKeys::EUsabilityAlways:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Video player is usuable in all mode" )            
-            videoPlayerAvailable = ETrue;
-            break;
-            }
-        case MusSettingsKeys::EUsabilityLandscape:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Video player is usable in landscape" )
-
-            iObserver.SwitchOrientationL( 
-                                    CAknAppUiBase::EAppUiOrientationLandscape );
-            videoPlayerAvailable = IsCurrentlyAvailable( vpAvailability,
-                                                         iVideoplayerUsability );
-            break;
-            }
-        case MusSettingsKeys::EUsabilityPortrait:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Video player is usable in portrait" )
-
-            iObserver.SwitchOrientationL( 
-                                    CAknAppUiBase::EAppUiOrientationPortrait );
-            videoPlayerAvailable = IsCurrentlyAvailable( vpAvailability,
-                                                         iVideoplayerUsability );
-            break;
-            }        
-        default:
-            {
-            MUS_LOG( "mus: [MUSUI ]     usuability default." )
-            break;
-            }
-        }
-    
-    if ( aMandatory && !videoPlayerAvailable )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Mandatory player not available, exiting" )
-        MusUiDialogUtil::ShowGlobalInformationDialogL( 
-                                R_MUS_LIVE_SHARING_VIEW_NOTE_SHARING_ENDED );
-        iObserver.HandleExit();
-        }
-        
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiResourceHandler::RequestVideoPlayerL(%d)",
-              videoPlayerAvailable )
-    
-    return videoPlayerAvailable;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Called by CMusUiPropertyWatch, when resource key values change in P&S
-// -----------------------------------------------------------------------------
-//
-void CMusUiResourceHandler::PropertyChanged( const TUint aKey,
-                                             const TInt aValue )
-    {
-    
-    MUS_LOG2( "mus: [MUSUI ] -> CMusUiResourceHandler::ResourcePropertyChanged:\
-              aKey: [%u] aValue: [%d]", aKey, aValue )
-              
-    switch( aKey )
-        {
-        case NMusResourceApi::KCameraAvailability:
-            {
-            MUS_LOG( "mus: [MUSUI ]  KCameraAvailability   " )            
-            iCameraAvailability = static_cast< TAvailability >( aValue );
-            if ( iCameraAvailibilityInProgress && iChangeProductModeDialog )
-                {
-                TRAP_IGNORE( iChangeProductModeDialog->ProcessFinishedL() );
-                }
-            iCameraAvailibilityInProgress = EFalse;
-            break;
-            }
-        case NMusResourceApi::KKeypadAvailability:
-            {
-            MUS_LOG( "mus: [MUSUI ]  KKeypadAvailability   " )            
-            iKeypadAvailability = static_cast< TAvailability >( aValue );
-            if ( iKeypadAvailibilityInProgress && iChangeProductModeDialog )
-                {
-                TRAP_IGNORE( iChangeProductModeDialog->ProcessFinishedL() );
-                }
-            iKeypadAvailibilityInProgress = EFalse;
-            break;
-            }       
-        default:
-            {
-            MUS_LOG( "mus: [MUSUI ]     avilability property watch default." )
-            break;
-            }
-            
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiResourceHandler::ResourcePropertyChanged" )
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiResourceHandler::HandlePropertyError( const TInt aReason )
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiResourceHandler::HandlePropertyError()" )
-
-    iObserver.HandleError( aReason );
-    }
-
-
-// -----------------------------------------------------------------------------
-// C++ constructor
-// -----------------------------------------------------------------------------
-//
-CMusUiResourceHandler::CMusUiResourceHandler( MMusUiEventObserver& aObserver )
-    :iObserver( aObserver ),
-     iCameraAvailability(NMusResourceApi::EAvailable),
-     iKeypadAvailability(NMusResourceApi::EAvailable),
-     iCameraUsability(MusSettingsKeys::EUsabilityAlways),
-     iKeypadUsability(MusSettingsKeys::EUsabilityAlways),
-     iVideoplayerUsability(MusSettingsKeys::EUsabilityAlways)
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// Symbian second phase constructor
-// -----------------------------------------------------------------------------
-//
-void CMusUiResourceHandler::ConstructL()
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiResourceHandler::ConstructL()" )
-    
-	iCameraAvailibilityInProgress = EFalse;
-    iKeypadAvailibilityInProgress = EFalse;     
-             
-    // Read the value from cenrep and check whether camera,keypad
-    // and videoplayer usability.
-    MultimediaSharingSettings::ResourceUsability( iCameraUsability ,
-    											  iKeypadUsability,
-    											  iVideoplayerUsability);
-        
-    // Read the value from cenrep and check whether camera and keypad
-    // available dynamically.
-    MusSettingsKeys::TAvailability camera,keypad;    
-    MultimediaSharingSettings::ResourceAvailability( camera ,
-    												 keypad);
-    
-    TInt err = KErrNone;
-    
-    // Set Camera availability     
-    if(camera == MusSettingsKeys::EAvailabilityDynamic)    												 
-    	{
-    	// read the PS key intial value
-    	err = RProperty::Get(
-                            NMusResourceApi::KCategoryUid,
-                            NMusResourceApi::KCameraAvailability,
-                            (TInt&)iCameraAvailability );
-        if(err) 
-        	{
-        	MUS_LOG1( "mus: [MUSUI ] Error = %d",err )
-        	iCameraAvailability = NMusResourceApi::ENotAvailable;
-        	}
-        // watch the camera ps key for further change
-    	iCameraResourceWatch = CMusUiPropertyWatch::NewL(
-                            *this,
-                            NMusResourceApi::KCategoryUid,
-                            KCameraAvailability ); 
-    	}
-    else
-    	{
-    	iCameraAvailability = NMusResourceApi::EAvailable;	
-    	}
-    	
-    // Set Keypad availability    
-     if(keypad == MusSettingsKeys::EAvailabilityDynamic)    												 
-    	{
-    	// read the PS key intial value
-    	err = RProperty::Get(
-                            NMusResourceApi::KCategoryUid,
-                            NMusResourceApi::KKeypadAvailability,
-                            (TInt&)iKeypadAvailability ); 
-        if(err) 
-        	{
-        	MUS_LOG1( "mus: [MUSUI ] Error = %d",err )
-        	iKeypadAvailability = NMusResourceApi::ENotAvailable;
-        	}
-    	// watch the keypad ps key
-    	iKeypadResourceWatch = CMusUiPropertyWatch::NewL(
-                            		*this,
-                            		NMusResourceApi::KCategoryUid,
-                            		KKeypadAvailability );        
-    	}
-    else
-    	{
-    	iKeypadAvailability = NMusResourceApi::EAvailable;	
-    	}
-    
-    // Videoplayer availability always static
-     
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiResourceHandler::ConstructL()" )
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiResourceHandler::ShowChangeProductModeDialogL( 
-                                                        const TDesC& aPrompt )
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiResourceHandler::ShowChangeProductModeDialogL()" )
-    
-    TBool returnValue = EFalse;
-
-    if ( !iChangeProductModeDialog )
-        {    
-        iChangeProductModeDialog = new ( ELeave ) CAknWaitDialog( (
-                reinterpret_cast<CEikDialog**>( &iChangeProductModeDialog )  ), 
-                ETrue );
-                    
-        iChangeProductModeDialog->SetTextL( aPrompt );
-        
-        iChangeProductModeDialog->PrepareLC( 
-                        R_MUS_LIVE_SHARING_VIEW_ACTIVATE_CAMERA_WAIT_NOTE );
-        returnValue = iChangeProductModeDialog->RunLD();
-        
-        iChangeProductModeDialog = NULL;
-        }
-    
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiResourceHandler::ShowChangeProductModeDialogL()" )
-    
-    return returnValue;
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiResourceHandler::IsCurrentlyAvailable( 
-                        NMusResourceApi::TAvailability aResourceAvailability,
-                        MusSettingsKeys::TUsability aResourceUsability
-                         )
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiResourceHandler::IsCurrentlyAvailable()" )
-
-    CAknAppUiBase::TAppUiOrientation orientation = iObserver.AppOrientation();
-    
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiResourceHandler::IsCurrentlyAvailable()" )
-    
-    return ( aResourceAvailability == NMusResourceApi::EAvailable && 
-             (
-              aResourceUsability == MusSettingsKeys::EUsabilityAlways ||
-              (aResourceUsability == MusSettingsKeys::EUsabilityLandscape && 
-               orientation == CAknAppUiBase::EAppUiOrientationLandscape) ||
-              (aResourceUsability == MusSettingsKeys::EUsabilityPortrait &&
-               orientation == CAknAppUiBase::EAppUiOrientationPortrait)
-             )
-            );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiResourceHandler::CheckInitialOrientationL(MultimediaSharing::TMusUseCase aUsecase )
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiResourceHandler::CheckInitialOrientationL()" )
-    if ( aUsecase != MultimediaSharing::EMusLiveVideo &&
-         aUsecase != MultimediaSharing::EMusClipVideo &&
-         aUsecase != MultimediaSharing::EMusReceive )
-        {
-        return;   
-        }
-    
-    MusSettingsKeys::TUsability usability = ( aUsecase == MultimediaSharing::EMusLiveVideo ) ?
-        iCameraUsability : iVideoplayerUsability;
-    if ( usability == MusSettingsKeys::EUsabilityPortrait )
-        {
-        iObserver.SwitchOrientationL( CAknAppUiBase::EAppUiOrientationPortrait );
-        }
-    else if ( usability == MusSettingsKeys::EUsabilityLandscape )
-        {
-        iObserver.SwitchOrientationL( CAknAppUiBase::EAppUiOrientationLandscape );
-        }
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiResourceHandler::CheckInitialOrientationL()" )
-    }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-