diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/mmshui/src/musuilivesharingcontroller.cpp --- a/mmsharing/mmshui/src/musuilivesharingcontroller.cpp Thu Aug 19 09:51:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,991 +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 "musuilivesharingcontroller.h" -#include "musuicallbackservice.h" -#include "musuieventobserver.h" -#include "musuisharingobserver.h" -#include "musuisendobserver.h" -#include "musuilivesharingobserver.h" -#include "musuidialogutil.h" -#include "musenglivesession.h" -#include "musuiresourcehandler.h" -#include "musui.hrh" -#include "mussettings.h" -#include "mussettingskeys.h" -#include "muslogger.h" // debug logging -#include "musuigeneralview.h" -#include "musuiactivetimer.h" - -#include -#include -#include - -#include - -using namespace NMusResourceApi; -using namespace MusSettingsKeys; - -const TInt KMusUiPauseResumeGuardPeriod = 500000; - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiLiveSharingController* CMusUiLiveSharingController::NewL( - MMusUiEventObserver& aEventObserver, - MMusUiSharingObserver& aSharingObserver, - MMusUiSendObserver& aSendObserver, - MMusUiLiveSharingObserver& aLiveObserver, - const TRect& aRect ) - { - CMusUiLiveSharingController* self = - new( ELeave ) CMusUiLiveSharingController( aEventObserver, - aSharingObserver, - aSendObserver, - aLiveObserver ); - CleanupStack::PushL( self ); - self->ConstructL( aRect ); - CleanupStack::Pop( self ); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiLiveSharingController::~CMusUiLiveSharingController() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::~CMusUiLiveSharingController" ); - delete iSession; - delete iPauseResumeGuardTimer; - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::~CMusUiLiveSharingController" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiLiveSharingController::CMusUiLiveSharingController( - MMusUiEventObserver& aEventObserver, - MMusUiSharingObserver& aSharingObserver, - MMusUiSendObserver& aSendObserver, - MMusUiLiveSharingObserver& aLiveObserver ) - : CMusUiSendController( aEventObserver, aSharingObserver, aSendObserver ), - iLiveObserver( aLiveObserver ) - { - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::ConstructL( const TRect& aRect ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::ConstructL" ); - - CMusUiSendController::ConstructL(); // Base class construction - - iSession = CMusEngLiveSession::NewL( VideoFileNameL(), - aRect, - *this, - *this, - *this, - iSipProfileId ); - - iSession->SetAudioRoutingObserver( this ); - iSession->SetVolumeChangeObserver( this ); - - if ( iSession->AudioRoutingCanBeChanged() && !iSession->IsAudioRoutingHeadset() ) - { - iSession->EnableLoudspeakerL( ELoudspeakerEnabled, ETrue ); - } - - if ( iVideoCodec && iVideoCodec->Length() > 0 ) - { - iSession->SetSupportedVideoCodecListL( *iVideoCodec ); - } - - iPauseResumeGuardTimer = CMusUiActiveTimer::NewL( NULL ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::ConstructL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::PlayL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::PlayL" ); - - CMusUiSendController::PlayL(); - iEventObserver.ShowNaviPaneIconL( - (!iDiskFull) ? RecordIcon() : EMusUiNaviIconRecordNot ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::PlayL" ); - } - - -// ----------------------------------------------------------------------------- -// When orientation changed , Camera instances has to be recreated inorder -// to receive proper orientated frames. -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::RefreshCameraOrientationL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::RefreshCameraOrientationL" ); - - if ( EngineSession() ){ - EngineSession()->RefreshOrientationL(); - } - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::RefreshCameraOrientationL" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::PauseL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::PauseL" ); - - CMusUiSendController::PauseL(); - iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconPause ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::PauseL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::DeleteEngineSession() - { - CMusUiSendController::DeleteEngineSession(); - if ( iSession && iSession->IsAudioRoutingLoudSpeaker() ) - { - iShowDialog = ETrue; - } - delete iSession; - iSession = NULL; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusEngMceOutSession* CMusUiLiveSharingController::EngineOutSession() - { - return iSession; // Live session is CMusEngMceOutSession - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::InviteL( const TDesC& aRecipient ) - { - MUS_LOG_TDESC( "mus: [MUSUI ] -> CMusUiLiveSharingController::InviteL:", - aRecipient ); - - // Registration must not be pending in this phase - __ASSERT_ALWAYS( !iSipRegistrationPending, - iEventObserver.HandleError( KErrNotReady ) ); - - delete iAddress; - iAddress = NULL; - iAddress = aRecipient.AllocL(); - - - TRAPD( err, iSession->InviteL( aRecipient ) ); - MUS_LOG( "mus: [MUSUI ] CMusUiLiveSharingController::InviteL: After TRAPD" ); - - // If address is in wrong format, Manual Address Entry Dialog - // is displayed - if ( err != KErrNone ) - { - // Display the error message - DismissWaitDialog(); - if ( !ExitOccured() ) - { - MusUiDialogUtil::ShowGlobalErrorDialogL( - R_MUS_LIVE_SHARING_VIEW_NOTE_INVITE_ERROR ); - } - if ( ( ++iTriedInvitations < 2 ) && ( err == KErrArgument ) ) - { - MUS_LOG( "mus: [MUSUI ] CMusUiLiveSharingController::InviteL: iTriedInvitations < 2" ); - iManualAddressTyped = ETrue; - iResourceHandler->RequestKeypadL( ETrue ); - iSendObserver.ManualAddressEntryL( *iRemoteSipAddressProposal ); - return; - } - else - { - MUS_LOG( "mus: [MUSUI ] CMusUiLiveSharingController::InviteL: ++iTriedInvitations > 1" ); - HandleExitL(); - return; - } - } - - SetConnectionInitialized( ETrue ); - - ShowInvitingWaitDialogL(); - - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::InviteL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::HandleSliderValueChangeL( TInt aNewLevel ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiLiveSharingController::HandleSliderValueChangeL(%d)", - aNewLevel ) - - __ASSERT_ALWAYS( !ExitOccured(), User::Leave( KErrDied ) ); - __ASSERT_ALWAYS( iConnectionEstablished, User::Leave( KErrNotReady ) ); - - if ( iToolbarZoomSelected ) - { - iSession->SetZoomL( aNewLevel ); - iLiveObserver.SetZoomL( iSession->CurrentZoomL() ); - } - else - { - iSession->SetBrightnessL( aNewLevel ); - iLiveObserver.SetBrightnessL( iSession->CurrentBrightnessL() ); - } - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::HandleSliderValueChangeL" ) - } - - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::OfferToolbarEventL( TInt aCommand ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiLiveSharingController::OfferToolbarEventL [%d]", - aCommand ); - - iLiveObserver.SetZoomVisible( EFalse ); - iLiveObserver.SetBrightnessVisible( EFalse ); - - switch ( aCommand ) - { - case EMusuiCmdToolbarPauseLive: - { - HandleCommandL( EMusuiCmdViewPause ); - HandlePauseResumeInToolbar(); - break; - } - - case EMusuiCmdToolbarUnPauseLive: - { - HandleCommandL( EMusuiCmdViewContinue ); - HandlePauseResumeInToolbar(); - break; - } - case EMusuiCmdToolbarZoom: - { - iToolbarZoomSelected = !iToolbarZoomSelected; - - if ( iToolbarZoomSelected ) - { - iLiveObserver.SetZoomValues( iSession->MinZoomL(), - iSession->MaxZoomL() ); - iLiveObserver.SetZoomL( iSession->CurrentZoomL() ); - } - - iLiveObserver.SetZoomVisible( iToolbarZoomSelected ); - iSharingObserver.HighlightSelectedToolbarItem( EMusuiCmdToolbarZoom ); - - break; - } - case EMusuiCmdToolbarBrightness: - { - iToolbarBrightnessSelected = !iToolbarBrightnessSelected; - - if ( iToolbarBrightnessSelected ) - { - MUS_LOG1( "mus: [MUSUI ] CMusUiLiveSharingController::OfferToolbarEventL: Brightness %d", - iSession->CurrentBrightnessL() ); - - iLiveObserver.SetBrightnessValues( iSession->MinBrightnessL(), - iSession->MaxBrightnessL() ); - - iLiveObserver.SetBrightnessL( iSession->CurrentBrightnessL() ); - } - - iLiveObserver.SetBrightnessVisible( iToolbarBrightnessSelected ); - iSharingObserver.HighlightSelectedToolbarItem( EMusuiCmdToolbarBrightness ); - - break; - } - default: // Not live specific, let the base class handle - { - CMusUiEventController::OfferToolbarEventL( aCommand ); - break; - } - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::OfferToolbarEventL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::HandleCommandL( TInt aCommand ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiLiveSharingController::HandleCommandL [%d]", - aCommand ); - - __ASSERT_ALWAYS( !ExitOccured(), User::Leave( KErrDied ) ); - - switch ( aCommand ) - { - case EMusuiCmdViewPause: - { - UserInitiatedCameraStateChangeL(EFalse); - break; - } - case EMusuiCmdViewContinue: - { - UserInitiatedCameraStateChangeL(ETrue); - break; - } - - case EMusuiCmdViewShareVideo: - { - PauseL(); - // TODO: Change to video sharing - break; - } - case EMusuiCmdViewShareImage: - { - PauseL(); - // TODO: Change to image sharing - break; - } - - case EMusuiCmdToolbarZoom: - { - iToolbarZoomSelected = ETrue; - iToolbarBrightnessSelected = EFalse; - iLiveObserver.SetZoomValues( iSession->MinZoomL(), - iSession->MaxZoomL() ); - iLiveObserver.SetZoomL( iSession->CurrentZoomL() ); - - iLiveObserver.SetZoomVisible( iToolbarZoomSelected ); - break; - } - case EMusuiCmdViewMiddleSoftkeyOk: - { - HandleMiddleSoftkeyOkL(); - break; - } - - case EMusuiCmdViewZoom: - { - ZoomL(); - break; - } - - case EMusuiCmdViewZoomIn: - { - iLiveObserver.SetZoomVisible( MUS_NO_TOOLBAR ? iZoomSelected : iToolbarZoomSelected ); - iSession->ZoomInL(); - iLiveObserver.SetZoomL( iSession->CurrentZoomL() ); - break; - } - case EMusuiCmdViewZoomOut: - { - iLiveObserver.SetZoomVisible( MUS_NO_TOOLBAR ? iZoomSelected : iToolbarZoomSelected ); - iSession->ZoomOutL(); - iLiveObserver.SetZoomL( iSession->CurrentZoomL() ); - break; - } - - case EMusuiCmdToolbarBrightness: - { - iToolbarZoomSelected = EFalse; - iToolbarBrightnessSelected = ETrue; - iLiveObserver.SetBrightnessValues( iSession->MinBrightnessL(), - iSession->MaxBrightnessL() ); - iLiveObserver.SetBrightnessL( iSession->CurrentBrightnessL() ); - - iLiveObserver.SetBrightnessVisible( iToolbarBrightnessSelected ); - break; - } - case EMusuiCmdViewBrightness: - { - BrightnessL(); - break; - } - - case EMusuiCmdViewIncreaseBrightness: - { - iLiveObserver.SetBrightnessVisible( MUS_NO_TOOLBAR ? iBrightnessSelected : iToolbarBrightnessSelected ); - iSession->IncreaseBrightnessL(); - iLiveObserver.SetBrightnessL( iSession->CurrentBrightnessL() ); - break; - } - case EMusuiCmdViewDecreaseBrightness: - { - iLiveObserver.SetBrightnessVisible( MUS_NO_TOOLBAR ? iBrightnessSelected : iToolbarBrightnessSelected ); - iSession->DecreaseBrightnessL(); - iLiveObserver.SetBrightnessL( iSession->CurrentBrightnessL() ); - break; - } - - case EMusuiCmdRecord: - { - // Show toolbar hidden while showing options menu - iEventObserver.SetToolbarVisibility( ETrue ); - - if ( iDiskFull ) - { - DiskFull(); - } - else - { - iSession->RecordL( ETrue ); - iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconRecord ); - } - break; - } - case EMusuiCmdStopRecording: - { - // Show toolbar hidden while showing options menu - iEventObserver.SetToolbarVisibility( ETrue ); - - iSession->RecordL( EFalse ); - iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconRecordNot ); - break; - } - - default: - { - // Try more general handling - CMusUiEventController::HandleCommandL( aCommand ); - break; - } - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::HandleCommandL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::LevelIndicatorDismissed() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::LevelIndicatorDismissed" ); - if ( MUS_NO_TOOLBAR ) - { - iZoomSelected = EFalse; - iBrightnessSelected = EFalse; - TRAP_IGNORE( iSharingObserver.EnableMiddleSoftkeyL( IsLoudSpeakerEnabled() ? - R_MUSUI_VIEW_OPS_MSK_IHF_OFF : - R_MUSUI_VIEW_OPS_MSK_IHF_ON ) ); - } - else - { - if ( iToolbarZoomSelected ) - { - iToolbarZoomSelected = EFalse; - if ( !AknLayoutUtils::PenEnabled() ) - { - TRAP_IGNORE( iSharingObserver.HighlightSelectedToolbarItem(EMusuiCmdToolbarZoom) ); - } - } - else if( iToolbarBrightnessSelected ) - { - iToolbarBrightnessSelected = EFalse; - if ( !AknLayoutUtils::PenEnabled() ) - { - TRAP_IGNORE( iSharingObserver.HighlightSelectedToolbarItem(EMusuiCmdToolbarBrightness) ); - } - } - - } - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::LevelIndicatorDismissed" ); - } - - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TMusUiNaviMediaDecorator CMusUiLiveSharingController::RecordIcon() - { - MUS_LOG( "mus: [MUSUI ] CMusUiLiveSharingController::RecordIcon" ); - - return (iSession->IsRecording() == EFalse) ? - EMusUiNaviIconRecordNot : - EMusUiNaviIconRecord; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TBool CMusUiLiveSharingController::IsBrightnessSupported() - { - if ( !iSession ) - { - return EFalse; - } - TRAPD( error, iSession->SetBrightnessL( iSession->CurrentBrightnessL() ) ) - return ( error == KErrNotSupported ) ? EFalse : ETrue; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TBool CMusUiLiveSharingController::IsDiskFull() - { - return iDiskFull; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TBool CMusUiLiveSharingController::ToolbarZoomSelected() - { - return iToolbarZoomSelected; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TBool CMusUiLiveSharingController::ToolbarBrightnessSelected() - { - return iToolbarBrightnessSelected; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TBool CMusUiLiveSharingController::ZoomSelected() - { - return iZoomSelected; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TBool CMusUiLiveSharingController::BrightnessSelected() - { - return iBrightnessSelected; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::ZoomL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::ZoomL" ); - iZoomSelected = ETrue; - iLiveObserver.SetZoomValues( iSession->MinZoomL(), iSession->MaxZoomL() ); - iLiveObserver.SetZoomL( iSession->CurrentZoomL() ); - iLiveObserver.SetZoomVisible( ETrue ); - - if ( MUS_NO_TOOLBAR ) - { - iSharingObserver.EnableMiddleSoftkeyL( R_MUSUI_VIEW_MSK_OK ); - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::ZoomL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::BrightnessL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::BrightnessL" ); - iBrightnessSelected = ETrue; - iLiveObserver.SetBrightnessValues( iSession->MinBrightnessL(), - iSession->MaxBrightnessL() ); - iLiveObserver.SetBrightnessL( iSession->CurrentBrightnessL() ); - iLiveObserver.SetBrightnessVisible( ETrue ); - - if ( MUS_NO_TOOLBAR ) - { - iSharingObserver.EnableMiddleSoftkeyL( R_MUSUI_VIEW_MSK_OK ); - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::BrightnessL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::HandleMiddleSoftkeyOkL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::HandleMiddleSoftkeyOkL" ); - - if ( iZoomSelected ) - { - iZoomSelected = EFalse; - iLiveObserver.SetZoomVisible( EFalse ); - } - else if ( iBrightnessSelected ) - { - iZoomSelected = EFalse; - iLiveObserver.SetBrightnessVisible( EFalse ); - } - - iSharingObserver.EnableMiddleSoftkeyL( IsLoudSpeakerEnabled() ? - R_MUSUI_VIEW_OPS_MSK_IHF_OFF : - R_MUSUI_VIEW_OPS_MSK_IHF_ON ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::HandleMiddleSoftkeyOkL" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::ZoomInL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::ZoomInL" ); - iSession->ZoomInL(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::ZoomInL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::ZoomOutL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::ZoomOutL" ); - iSession->ZoomOutL(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::ZoomOutL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::IncreaseBrightnessL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::IncreaseBrightnessL" ); - iSession->IncreaseBrightnessL(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::IncreaseBrightnessL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::DecreaseBrightnessL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::DecreaseBrightnessL" ); - iSession->DecreaseBrightnessL(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::DecreaseBrightnessL" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::DiskFull() - { - // Update the icon: - TRAP_IGNORE( iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconRecordNot ); - DismissWaitDialog(); - // Saving ends when disk is full but streaming continues (user is notified) - TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( R_MUS_VIEW_NOTE_MEMORY_LOW ) ) ); - iDiskFull = ETrue; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::OrientationRefreshEnded() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::OrientationRefreshEnded" ); - iLiveObserver.DoRefreshView(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::OrientationRefreshEnded" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::SessionEstablished() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::SessionEstablished" ); - - iSessionEstablished = ETrue; - - TRAPD( error, iResourceHandler->RequestCameraL( ETrue ) ); - if ( error != KErrNone ) - { - MUS_LOG1( "mus: [MUSUI ] RequestCameraL leave code: %d", error ) - } - - CMusUiSendController::SessionEstablished(); // Base class handling - - iVideoToBeSaved = ETrue; - - MusSettingsKeys::TAutoRecord autoRecordValue = EAutoRecordOff; - TRAPD ( errAutoRecord, autoRecordValue = - MultimediaSharingSettings::AutoRecordSettingL() ); - if ( errAutoRecord != KErrNone ) - { - MUS_LOG1( "mus: [MUSUI ] AutoRecordSettingL leave code: %d", errAutoRecord ) - HandleError( errAutoRecord ); - } - - if ( autoRecordValue != EAutoRecordOff ) - { - TRAPD ( errRecordL, iSession->RecordL( ETrue ) ); - if ( errRecordL != KErrNone ) - { - MUS_LOG1( "mus: [MUSUI ] RecordL leave code: %d", errRecordL ) - HandleError( errRecordL ); - } - } - - TRAP_IGNORE( iEventObserver.ShowNaviPaneIconL( RecordIcon() ) ) - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::SessionEstablished" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::SessionTerminated() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::SessionTerminated" ); - iSessionEstablished = EFalse; - if ( !ExitOccured() ) - { - DismissWaitDialog(); - - TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) ); - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::SessionTerminated" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::SessionConnectionLost() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::SessionConnectionLost" ); - iSessionEstablished = EFalse; - DismissWaitDialog(); - if ( !ExitOccured() ) - { - TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( - R_MUS_LIVE_SHARING_VIEW_NOTE_CONNECTION_LOST ) ); - } - - TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::SessionConnectionLost" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::SessionFailed() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::SessionFailed" ); - iSessionEstablished = EFalse; - if ( !ExitOccured() ) - { - DismissWaitDialog(); - - TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) ); - } - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::SessionFailed" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::StreamIdle() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::StreamIdle" ); - DismissWaitDialog(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::StreamIdle" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::StreamStreaming() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::StreamStreaming" ); - //DismissWaitDialog(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::StreamStreaming" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::SessionTimeChanged( - const TTimeIntervalSeconds& aSeconds ) - { - if ( aSeconds.Int() > -1 ) - { - iSharingObserver.UpdateSessionTime( SessionTimeFormatted( aSeconds ) ); - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::InactivityTimeout() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiLiveSharingController::InactivityTimeout" ); - DismissWaitDialog(); - if ( !ExitOccured() ) - { - TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( - R_MUS_LIVE_SHARING_VIEW_NOTE_SERVICE_N_A ) ); - } - - TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::InactivityTimeout" ); - } - -// ----------------------------------------------------------------------------- -// Determines whether Session established or not -// ----------------------------------------------------------------------------- -// -TBool CMusUiLiveSharingController::IsSessionEstablished() - { - return iSessionEstablished; - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::HandlePauseResumeInToolbar() - { - TBool isPlaying( EFalse ); - TRAP_IGNORE( isPlaying = IsPlayingL() ) - if ( isPlaying ) - { - iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarUnPauseLive, - EMusuiCmdToolbarPauseLive, - ETrue ); - } - else - { - iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarPauseLive, - EMusuiCmdToolbarUnPauseLive, - ETrue ); - } - } - -// ----------------------------------------------------------------------------- -// Workaround for problem at lower level (encoder side) which causes crash -// if several sequential pause/resumes are done too rapidly. Discard state change -// attempt if it occurs too quickly after previous state change. -// ----------------------------------------------------------------------------- -// -void CMusUiLiveSharingController::UserInitiatedCameraStateChangeL( TBool aEnable ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiLiveSharingController::UserInitiatedCameraStateChangeL, enable:", - aEnable ); - - if ( iPauseResumeGuardTimer->IsActive() ){ - MUS_LOG( "mus: [MUSUI ] <- State change ignored as guard timer is running!" ); - return; - } - - if ( aEnable ) - { - PlayL(); - } - else - { - PauseL(); - } - - iPauseResumeGuardTimer->After( KMusUiPauseResumeGuardPeriod ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiLiveSharingController::UserInitiatedCameraStateChangeL" ); - } - - -// End of file -