mmsharing/mmshui/src/musuieventcontroller.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 21 33a5d2bbf6fc
child 23 bc78a40cd63c
--- a/mmsharing/mmshui/src/musuieventcontroller.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1124 +0,0 @@
-/*
-* Copyright (c) 2005 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:  Application's UI class.
-*
-*/
-
-
-
-#include "musuieventcontroller.h"
-#include "musuieventobserver.h"
-#include "musuisharingobserver.h"
-#include "musuipropertywatch.h"
-#include "musuicallbackservice.h"
-#include "musuiactivitymanger.h"
-#include "musuifileutil.h"
-#include "musuidialogutil.h"
-#include "musuicontactutil.h"
-#include "mussessionproperties.h"
-#include "musuibitmapdecoder.h"
-#include "muscommon.h"
-#include "mussettings.h"
-#include "musenguriparser.h"
-#include "musuimmcmonitor.h"
-#include "musresourceproperties.h"
-#include "musuiresourcehandler.h"
-#include "musui.hrh"
-#include "muslogger.h" // debug logging
-#include "musuigeneralview.h"
-
-#include "musengmcesession.h"
-
-#include <musui.rsg>
-
-#include <fbs.h>
-#include <e32property.h>
-
-#include <StringLoader.h>
-#include <pathinfo.h>
-#include <featmgr.h>
-#include <bldvariant.hrh> // for feature definitions
-#include <pathconfiguration.hrh>
-
-#include <hlplch.h> // HlpLauncher
-#include <AknUtils.h>
-#include <telmicmutestatuspskeys.h>
-
-using namespace MusSettingsKeys;
-using namespace NMusSessionApi;
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiEventController::~CMusUiEventController()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::~CMusUiEventController" );
-    delete iStatusPropertyWatch;    
-    delete iContactName;
-    delete iTelNumber;
-    delete iVideoCodec;
-    delete iDialogPrompt;
-    delete iCallbackService;
-    delete iMmcMonitor;
-    delete iActivityManager;
-    delete iMicMuteStatusPropertyWatch;
-    FeatureManager::UnInitializeLib();
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::~CMusUiEventController" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::ConstructL()
-    {
-   MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::ConstructL" );
-
-    TInt error( KErrNotFound );
-
-    FeatureManager::InitializeLibL();
-
-    iCallbackService = CMusUiCallbackService::NewL( *this );
-
-    // read ps properties (no need to read again later)
-
-    TRAP( error, iVideoCodec = CMusUiPropertyWatch::ReadDescPropertyL(
-                            KVideoCodecs ) );
-    if ( error != KErrNone )
-        {
-        iVideoCodec = KNullDesC().AllocL();
-        }
-
-    TRAP( error, iTelNumber = CMusUiPropertyWatch::ReadDescPropertyL(
-                            KTelNumber ) );
-    if ( error != KErrNone )
-        {
-        iTelNumber = KNullDesC().AllocL();
-        }
-
-    TRAP( error, iSipProfileId = CMusUiPropertyWatch::ReadIntPropertyL(
-                            NMusSessionApi::KSipProfileId ) );
-    if ( error != KErrNone )
-        {
-        iSipProfileId = KErrNotFound;
-        }
-
-    TRAP( error,
-          iContactId = CMusUiPropertyWatch::ReadIntPropertyL( KContactId ) );
-    if ( error != KErrNone )
-        {
-        iContactId = KErrNotFound;
-        }
-
-    TRAP( error, iContactName = CMusUiPropertyWatch::ReadDescPropertyL(
-                            KContactName ) );
-
-    if ( error != KErrNone )
-        {
-        iContactName = KNullDesC().AllocL();
-        }
-    
-    // follow session status property
-    iStatusPropertyWatch = CMusUiPropertyWatch::NewL(
-                            *this,
-                            NMusSessionApi::KCategoryUid,
-                            KStatus );
-
-    iMmcMonitor = CMusUiMmcMonitor::NewL( *this );
-
-    iResourceHandler = iEventObserver.ResourceHandler();
-    __ASSERT_ALWAYS( iResourceHandler, User::Leave( KErrNotFound ) );
-    
-    //Mic mute status property
-    iMicMuteStatusPropertyWatch = CMusUiPropertyWatch::NewL(
-							*this,
-							KPSUidTelMicrophoneMuteStatus,
-							KTelMicrophoneMuteState );
-
-    // start monitoring activity
-    iActivityManager = CMusUiActivityManager::NewL( KMusBacklightTimeOut );
-    iActivityManager->Reset();
-
-    // check if operator specific functionality is needed  
-    iOperatorSpecificFunctionality = 
-        ( MultimediaSharingSettings::OperatorVariantSettingL() == 
-                                                    EOperatorSpecific );
-
-    iShutdownState = EMusUiShutdownNotDefined;
-
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::ConstructL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiEventController::CMusUiEventController(
-                            MMusUiEventObserver& aEventObserver,
-                            MMusUiSharingObserver& aSharingObserver )
-    : iEventObserver( aEventObserver ),
-      iSharingObserver( aSharingObserver ),
-	  iForeground( ETrue ),
-	  iShowDialog( EFalse ),
-	  iActiveCall( ETrue )
-	  
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// Called by CMusUiPropertyWatch, when resource key values change in P&S
-// Sets the member values common to all sharing types.
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::PropertyChanged( const TUint aKey,
-                                                     const TInt aValue )
-    {
-    MUS_LOG2( "mus: [MUSUI ] -> CMusUiEventController::ResourcePropertyChanged:\
-              aKey: [%u] aValue: [%d]", aKey, aValue );
-    switch( aKey )
-        {
-    	case KTelMicrophoneMuteState:
-    		{
-		  if ( aValue ==  EPSTelMicMuteOff)
-			  {
-			  iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarUnmute,
-												   EMusuiCmdToolbarMute,ETrue );
-			  }
-		  else if ( aValue == EPSTelMicMuteOn )
-			  {
-			  iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarMute,
-												 EMusuiCmdToolbarUnmute,ETrue );
-			  }
-			break;
-    		}
-        case KStatus:
-            {
-            TRAP_IGNORE(
-                    HandleChangedStatusL( ( TMusAvailabilityStatus ) aValue ) );
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::ResourcePropertyChanged" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::HandlePropertyError( const TInt aReason )
-    {
-    MUS_LOG1( "mus: [MUSUI ]     -> CMusUiEventController::HandleError [%d]",
-                            aReason );
-    
-    HandleError( aReason );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::HandleError" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::HandleAsyncEventL( TMusUiAsyncEvent aEventId )
-    {
-    MUS_LOG1( "mus: [MUSUI ] -> CMusUiEventController::HandleAsyncEventL [%d]",
-              aEventId );
-    
-    switch ( aEventId )
-        {
-        case EMusUiAsyncHandleExit:
-            {
-            MUS_LOG( "mus: [MUSUI ]   CMusUiEventController::\
-                                    HandleAsyncEventL: EMusUiAsyncHandleExit" );
-            HandleExitL();
-            break;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiEventController::HandleAsyncEventL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMusUiEventController::HandleAsyncError( TInt aError )
-    {
-    iEventObserver.HandleError( aError ); // Stop the execution
-    
-    return KErrNone;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::MmcRemoved()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::MmcRemoved" );
-    TRAP_IGNORE( MusUiDialogUtil::ShowInformationDialogL( 
-                            R_MUS_LIVE_SHARING_VIEW_NOTE_SHARING_ENDED ) )
-                            
-    iEventObserver.HandleExit();
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::MmcRemoved" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::SessionEstablished()
-    {
-    TRAPD( error, iSharingObserver.ShowStatusPaneTitleL() )
-    
-    if ( error != KErrNone )    
-        {
-        iEventObserver.HandleError( error );
-        }
-
-    if ( MUS_NO_TOOLBAR )
-        {
-        TRAPD( error, iSharingObserver.EnableMiddleSoftkeyL( IsLoudSpeakerEnabled() ? 
-                            R_MUSUI_VIEW_OPS_MSK_IHF_OFF :
-                            R_MUSUI_VIEW_OPS_MSK_IHF_ON ));
-        if ( error != KErrNone )    
-            {
-            iEventObserver.HandleError( error );
-            }        
-        }
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::AudioRoutingChanged( TBool aShowNote )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::AudioRoutingChanged" );
-    
-    if ( aShowNote )
-        {
-        if ( IsLoudSpeakerEnabled() )
-            {
-            MUS_LOG( "mus: [MUSUI ]     show activated note" );
-            TRAP_IGNORE( 
-            	MusUiDialogUtil::ShowGlobalInformationDialogL( R_MUS_NOTE_HF_ACTIVATED ) )
-            }
-        }
-    
-    iSharingObserver.RefreshAudioRoutingToolbarButton();
-      
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::AudioRoutingChanged" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::AudioRouteChangeAllowed() const
-    {
-    // Do not allow audio routing if call has ended
-    return iActiveCall;
-    }
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::VolumeChanged( TInt aVolume, TBool aAudioRouteChanged )
-    {
-    // Set Volume:
-    //If volume changed due to audio route change, we want to update volume
-    //popup control only if it is already visible
-    TBool onlyIfVisible = aAudioRouteChanged;
-    TRAP_IGNORE( iSharingObserver.ActivateVolumeControlL(aVolume, onlyIfVisible) );
-    }
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::SetRect(const TRect& aRect)
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::SetRect" );
-    
-    if ( EngineSession() )
-        {
-        TRAPD( err, EngineSession()->SetRectL( aRect ) );
-        if ( err != KErrNone )
-            {
-            iEventObserver.HandleError( err );
-            }
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::SetRect" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMusUiEventController::MusContactName()
-    {
-    return *iContactName;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMusUiEventController::MusVideoCodecValue()
-    {
-    return *iVideoCodec;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMusUiEventController::MusTelNumberValue()
-    {
-    MUS_LOG_TDESC("mus: [MUSUI ] <> CMusUiEventController::MusTelNumberValue()",
-                   iTelNumber->Des() )
-    return *iTelNumber;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMusUiEventController::SessionTimeFormatted(
-                        const TTimeIntervalSeconds& aSeconds )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::SessionTimeFormatted" );
-    iTimeBuffer.SetLength( 0 );
-    TLocale locale;
-    _LIT( KZeroSymbol, "0" );
-    TInt sessionHours( 0 );
-    TInt sessionMinutes( 0 );
-    TInt sessionSeconds( aSeconds.Int() );
-    if ( aSeconds.Int() > ( KMusOneMinuteInSeconds - 1 ) )
-        {
-        sessionMinutes = (int)(aSeconds.Int() / KMusOneMinuteInSeconds );
-        sessionSeconds = sessionSeconds - ( sessionMinutes * KMusOneMinuteInSeconds );
-        }
-    if ( sessionMinutes > ( KMusOneMinuteInSeconds - 1 ) )
-        {
-        sessionHours = (int)( sessionMinutes / KMusOneMinuteInSeconds );
-        sessionMinutes = sessionMinutes - ( sessionHours * KMusOneMinuteInSeconds );
-        }
-    if ( sessionHours != 0 )
-        {
-        iTimeBuffer.AppendNum( sessionHours );
-        iTimeBuffer.Append( locale.TimeSeparator( KMusLocaleHoursAndMinutesSeparator ) );
-        if ( sessionMinutes < KMusNumberValueTen )
-            {
-            iTimeBuffer.Append( KZeroSymbol );
-            }
-        }
-
-    iTimeBuffer.AppendNum( sessionMinutes );
-    iTimeBuffer.Append( locale.TimeSeparator( KMusLocaleMinutesAndSecondsSeparator ) );
-    if ( sessionSeconds < KMusNumberValueTen )
-        {
-        iTimeBuffer.Append( KZeroSymbol );
-        }
-    iTimeBuffer.AppendNum( sessionSeconds );
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::SessionTimeFormatted" );
-    return iTimeBuffer;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::SaveContactQueryL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::SaveContactQueryL" );
-    if ( !MusUiContactUtil::ShareViewFieldExistsL( *iEventObserver.EikonEnv(), 
-                                                   iContactId ) )
-        {
-        delete iDialogPrompt;
-        iDialogPrompt = NULL;
-        iDialogPrompt = StringLoader::LoadL( R_MUS_VIEW_SAVE_ADDRESS_QUERY_TXT );
-        iEventObserver.ShowAsyncConfirmationQueryDialogL( *iDialogPrompt );
-        }
-    else
-        {
-        AsyncQueryDialogAcceptedL( EFalse );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::SaveContactQueryL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::HandleError( const TInt aError )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiEventController::HandleError %d", 
-              aError );
-
-    iEventObserver.HandleError( aError );
-
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::HandleError" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::ExitOccured()
-    {
-    return ( iShutdownState != EMusUiShutdownNotDefined );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::AudioRoutingCanBeChanged()
-    {
-    return ( EngineSession() && EngineSession()->AudioRoutingCanBeChanged() );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::IsLoudSpeakerEnabled()
-    {
-    return ( EngineSession() && EngineSession()->IsLoudSpeakerEnabled() );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::DeviceHasDedicatedVolumeKeys()
-    {
-    return FeatureManager::FeatureSupported( KFeatureIdSideVolumeKeys );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::HandleExitL( TBool aTerminateCall )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::HandleExitL" );
-    if ( iShutdownState == EMusUiShutdownNotDefined )
-        {
-        iShutdownState = EMusUiShutdownStarted;
-        
-        if ( iStatusPropertyWatch )
-            {
-            iStatusPropertyWatch->Cancel();    
-            }
-        
-        if ( iMmcMonitor )
-            {
-            iMmcMonitor->Cancel();    
-            }
-        
-        if ( iActivityManager )
-            {
-            iActivityManager->Cancel();    
-            }
-        
-        if ( iCallbackService )
-            {
-            iCallbackService->Cancel();    
-            }
-
-        iEventObserver.SetToolbarVisibility( EFalse );
-        
-        // This must be done before showing the end note, because showing of
-        // note may cause the session to continue for extra few seconds.
-        DeleteEngineSession();
-        if ( iShowDialog )
-        	{
-            MusUiDialogUtil::ShowGlobalInformationDialogL( 
-            		                 R_MUS_NOTE_HF_DEACTIVATED );
-        	}
-        // Sharing Ended note
-        MusUiDialogUtil::ShowGlobalInformationDialogL( 
-                                R_MUS_LIVE_SHARING_VIEW_NOTE_SHARING_ENDED );
-        
-        if( aTerminateCall )
-			{
-			iEventObserver.TerminateCall();
-			}
-
-        // TODO: Continue Recording query, if sharing live video and receiving end
-        //    terminates the sharing session
-
-        ExitProcedureL( EFalse );
-
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::HandleExitL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::ExitProcedureL( TBool aUserAcceptance )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::ExitProcedureL" );
-    
-    iSharingObserver.DismissMenuBar();
-    
-    switch ( iShutdownState )
-        {
-        case EMusUiShutdownStarted: 
-            {
-            MUS_LOG( "mus: [MUSUI ]     ExitProcedureL: EMusUiShutdownStarted" );
-            // No general functionality, skip the state
-            iShutdownState = EMusUiShutdownVideoSaved;
-            ExitProcedureL( EFalse );
-            break;
-            }
-        case EMusUiShutdownVideoSaved:
-            {
-            MUS_LOG( "mus: [MUSUI ]     ExitProcedureL: EMusuiShutdownVideoSaved" );
-            iEventObserver.HandleExit();
-            break;
-            }
-
-        case EMusUiShutdownContactSavingQueried:
-            {
-            MUS_LOG( "mus: [MUSUI ]     ExitProcedureL: EMusUiShutdownContactSavingQueried" );
-            // Stop app execution
-            if ( aUserAcceptance )
-                {
-                if ( iResourceHandler->RequestKeypadL( EFalse ) )
-                	{
-                		MusUiContactUtil::ActivateContactViewL( 
-                                                    *iEventObserver.EikonEnv(), 
-                                                    iContactId, 
-                                                    TypedAddress(), 
-                                                    MusTelNumberValue() );
-                	}
-                }
-            iEventObserver.HandleExit();
-            break;
-            }
-        case EMusUiShutdownOver:
-            {
-            iEventObserver.HandleExit();
-            break;
-            }
-        case EMusUiShutdownNotDefined:
-        default:
-            {
-            break;
-            }
-        }
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::ExitProcedureL" );
-    }
-    
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::AsyncQueryDialogAcceptedL( TBool aAccepted )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::AsyncQueryDialogAcceptedL" );
-    
-    if ( ExitOccured() )
-        {
-        ExitProcedureL( aAccepted );
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::AsyncQueryDialogAcceptedL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::ConnectionEstablished() const
-    {
-    return iConnectionEstablished;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::SetConnectionInitialized( 
-    TBool aConnectionInitialized )
-    {
-    MUS_LOG1( 
-        "mus: [MUSUI ]  -> CMusUiEventController::SetConnectionInitialized ( %d )", 
-        aConnectionInitialized );
-    
-    iConnectionInitialized = aConnectionInitialized;
-    
-    if ( !iForeground && !ExitOccured() )
-        {
-        TRAP_IGNORE( EnableDisplayL(EFalse) )
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::ConnectionInitialized() const
-    {
-    return iConnectionInitialized;
-    }
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::EnableDisplayL( TBool aEnable )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::EnableDisplayL" );
-    if ( EngineSession() )
-        {
-        EngineSession()->EnableDisplayL( aEnable );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::EnableDisplayL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::ChangeOrientationL( 
-                        CAknAppUiBase::TAppUiOrientation aOrientation )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::ChangeOrientationL" );
-    iEventObserver.SwitchOrientationL( aOrientation );
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::ChangeOrientationL" );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::IsDisplayEnabledL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::IsDisplayEnabledL" );
-    TBool ret = EFalse;
-    if ( EngineSession() )
-        {
-        ret = EngineSession()->IsDisplayEnabledL();
-        }
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiEventController::IsDisplayEnabledL, %d", ret );
-    return ret;   
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::IsAudioRoutingLoudSpeaker()
-	{
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::IsAudioRoutingLoudSpeaker" );
-    TBool ret = EFalse;
-    if ( EngineSession() )
-        {
-        ret = EngineSession()->IsAudioRoutingLoudSpeaker();
-        }
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiEventController::IsAudioRoutingLoudSpeaker, %d", ret );
-    return ret;   
-	}
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::ToolbarVolumeSelected()
-    {
-    return iToolbarVolumeSelected;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::IsMicMutedL()
-    {
-    __ASSERT_ALWAYS( EngineSession(), User::Leave( KErrNotReady ) );
-    
-    return EngineSession()->IsMicMutedL();
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::ManualAddressTyped() const
-    {
-    return EFalse;
-    }    
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::HandleForegroundEventL( TBool aForeground )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::HandleForegroundEventL" );
-    
-    iForeground = aForeground;
-
-    if ( ConnectionInitialized() &&  !ExitOccured() )
-        {
-        EnableDisplayL( aForeground );
-        
-        // Change toolbar according to a real state. Other items than speaker
-        // and mic states cannot be changed from phone app and thus there is
-        // no need to check them
-        if ( aForeground )
-            {
-            if ( MUS_NO_TOOLBAR )
-                {
-                iSharingObserver.EnableMiddleSoftkeyL( IsLoudSpeakerEnabled() ?
-                                            R_MUSUI_VIEW_OPS_MSK_IHF_OFF :
-                                            R_MUSUI_VIEW_OPS_MSK_IHF_ON );
-                }
-            else
-                {
-                if ( IsMicMutedL() )
-                    {
-                    iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarMute,
-                                                            EMusuiCmdToolbarUnmute,
-                                                            EFalse );
-                    }
-                else
-                    {
-                    iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarUnmute,
-                                                            EMusuiCmdToolbarMute,
-                                                            EFalse );
-                    }
-                
-                if ( IsLoudSpeakerEnabled() )
-                    {
-                    iSharingObserver.ReplaceToolbarCommand( 
-                                                        EMusuiCmdToolbarSpeakerOn,
-                                                        EMusuiCmdToolbarSpeakerOff,
-                                                        EFalse );
-                    }
-                else
-                    {
-                    iSharingObserver.ReplaceToolbarCommand( 
-                                                        EMusuiCmdToolbarSpeakerOff,
-                                                        EMusuiCmdToolbarSpeakerOn,
-                                                        EFalse );
-                    }          
-               if ( ConnectionEstablished() )
-                    {
-                    iEventObserver.SetToolbarVisibility( aForeground );
-                    }
-               
-                }            
-            }
-            
-        }
-    
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::HandleForegroundEventL" );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiEventController::IsForeground() const
-    {
-    return iForeground;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::OfferToolbarEventL( TInt aCommand )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiEventController::OfferToolbarEventL [%d]",
-              aCommand );
-    
-    __ASSERT_ALWAYS( EngineSession(), User::Leave( KErrNotReady ) );
-
-    switch ( aCommand )
-        {
-        case EMusuiCmdToolbarVolume:
-            {
-            iToolbarVolumeSelected = !iToolbarVolumeSelected;
-            iSharingObserver.HighlightSelectedToolbarItem( 
-                                                EMusuiCmdToolbarVolume );
-            iSharingObserver.ActivateVolumeControlL( 
-                                            EngineSession()->VolumeL() );
-            break;
-            }  
-        case EMusuiCmdToolbarMute:
-            {       
-            EngineSession()->MuteMicL( ETrue );
-            iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarMute,
-                                                    EMusuiCmdToolbarUnmute,
-                                                    ETrue );
-            break;
-            }
-        case EMusuiCmdToolbarUnmute:
-            {
-            EngineSession()->MuteMicL( EFalse );
-            iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarUnmute,
-                                                    EMusuiCmdToolbarMute,
-                                                    ETrue );
-            break;
-            }
-        case EMusuiCmdToolbarSpeakerOff:
-            {
-            EngineSession()->EnableLoudspeakerL( ELoudspeakerDisabled, EFalse );
-            // Toolbar will be changed when asynchronous request is completed
-            break;
-            }
-        case EMusuiCmdToolbarSpeakerOn:
-            {
-            EngineSession()->EnableLoudspeakerL( ELoudspeakerEnabled, EFalse );
-            // Toolbar will be changed when asynchronous request is completed
-            break;     
-            }
-        default:    // Never should be the case
-            {
-            HandleExitL();
-            break;
-            }
-                
-        }
-    
-    MUS_LOG1( "mus: [MUSUI ]  <- CMusUiEventController::OfferToolbarEventL [%d]",
-              aCommand );
-                                                            
-    }
-
-
-// -----------------------------------------------------------------------------
-// Handles commands common to all sharing types.
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::HandleCommandL( TInt aCommand )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::HandleCommandL" );
-    
-    switch ( aCommand )
-        {
-        case EMusuiCmdViewVolumeUp:
-            {
-            // Set Volume:
-            __ASSERT_ALWAYS( EngineSession(), User::Leave( KErrNotReady ) );
-            EngineSession()->VolumeUpL();
-            // Status pane update will be done later. When we get 
-			// VolumeChanged() callback
-            break;
-            }
-        case EMusuiCmdViewVolumeDown:
-            {
-            // Set Volume:
-            __ASSERT_ALWAYS( EngineSession(), User::Leave( KErrNotReady ) );
-            EngineSession()->VolumeDownL();
-            // Status pane update will be done later. When we get 
-			// VolumeChanged() callback
-            break;
-            }
-        case EMusuiCmdViewVolumeChanged:
-            {
-            __ASSERT_ALWAYS( EngineSession(), User::Leave( KErrNotReady ) );
-            TInt volumeFromEngine = EngineSession()->VolumeL();
-            TInt volumeFromUi = iEventObserver.GetUiVolumeValue();
-            if ( volumeFromUi != volumeFromEngine )
-                {
-                EngineSession()->SetVolumeL( volumeFromUi );
-                }
-            break;
-            }
-           
-        case EMusuiCmdViewLoadspeaker:
-            {
-            EngineSession()->EnableLoudspeakerL( ELoudspeakerEnabled, ETrue );
-            break;
-            }
-            
-        case EMusuiCmdViewHandset:
-            {
-            EngineSession()->EnableLoudspeakerL( ELoudspeakerDisabled, ETrue );
-            break;
-            }
-
-        case EMusuiCmdViewMicrophoneMute:
-            {
-            EngineSession()->MuteMicL( ETrue );
-            break;            
-            }
-            
-        case EMusuiCmdViewMicrophoneUnmute:
-            {
-            EngineSession()->MuteMicL( EFalse );
-            break;
-            }
-           
-        case EMusuiCmdViewEndActiveCall:
-            {
-            MUS_LOG( "mus: [MUSUI ]     CMusUiReceiveController::ConstructL:\
-                                    EMusuiCmdViewEndActiveCall" );
-            HandleExitL( ETrue );
-            break;
-            }
-        case EMusuiGenCmdExit:
-        case EAknSoftkeyExit:
-            {
-            HandleExitL();
-            break;
-            }
-
-        case EAknCmdHelp:
-            {
-            if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
-                {
-                HlpLauncher::LaunchHelpApplicationL(
-                        iEventObserver.EikonEnv()->WsSession(),
-                        iEventObserver.EikonEnv()->AppUi()->AppHelpContextL() );
-                }
-            break;
-            }
-
-        default:
-            {
-            //NOP
-            break;
-            }
-        }
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::HandleCommandL" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-// Handles status changes common to all sharing types.
-// -----------------------------------------------------------------------------
-//
-void CMusUiEventController::HandleChangedStatusL(
-                        TMusAvailabilityStatus aStatus )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiEventController::HandleChangedStatusL" );
-    switch( aStatus )
-        {
-        case EErrNoActiveCall:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EErrNoActiveCall" );
-            iActiveCall = EFalse;
-            HandleExitL();
-            break;
-            }
-        case EErrCallOnHold:
-        case EErrConferenceCall: 
-        case EMultimediaSharingNotAvailable:
-            {
-            MUS_LOG( "mus: [MUSUI ]\
-    EErrCallOnHold, EErrConferenceCall, EMultimediaSharingNotAvailable" );
-            HandleExitL();
-            break;
-            }
-        case EErrSipRegistration:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EErrSipRegistration" );
-            MusUiDialogUtil::ShowInformationDialogL( 
-                                    R_MUS_LIVE_SHARING_VIEW_NOTE_SERVICE_N_A );
-            HandleExitL();
-            break;
-            }
-        case EErrRoaming:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EErrRoaming" );
-            HandleExitL();
-            break;
-            }
-        case EErrNetwork:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EErrNetwork" );
-            MusUiDialogUtil::ShowInformationDialogL( 
-                                    R_MUS_LIVE_SHARING_VIEW_NOTE_SERVICE_N_A );
-            HandleExitL();
-            break;
-            }
-        case EErrConnection:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EErrConnection" );
-            MusUiDialogUtil::ShowInformationDialogL( 
-                                    R_MUS_LIVE_SHARING_VIEW_NOTE_ONLY_3G );
-            HandleExitL();
-            break;
-            }
-
-        case EErrServerShutDown:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EErrServerShutDown" );
-            HandleExitL();
-            break;
-            }
-
-        default:
-            {
-            MUS_LOG( "mus: [MUSUI ]     Default" );
-            // TODO
-            break;
-            }
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiEventController::HandleChangedStatusL" );
-    }
-
-