mmsharing/mmshui/src/musuiclipsharingcontroller.cpp
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
--- a/mmsharing/mmshui/src/musuiclipsharingcontroller.cpp	Tue Feb 02 00:09:07 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1166 +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 "musuiclipsharingcontroller.h"
-#include "musuicallbackservice.h"
-#include "musuieventobserver.h"
-#include "musuisharingobserver.h"
-#include "musuisendobserver.h"
-#include "musuiclipsharingobserver.h"
-#include "musuidialogutil.h"
-#include "musengclipsession.h"
-#include "mussettings.h"
-#include "mussettingskeys.h"
-#include "musuiresourcehandler.h"
-#include "musui.hrh"
-#include "muslogger.h" // debug logging
-#include "musuiactivetimer.h"
-#include "musuigeneralview.h"
-
-#include <musui.rsg>
-#include <StringLoader.h>
-#include <AknUtils.h>
-
-#include <badesca.h>
-#include <avkon.hrh>
-
-// CONSTANTS
-const TInt KMusTimeToCloseAfterClipEndedStandard  = 60 * 1000000; // 60 seconds
-const TInt KMusTimeToCloseAfterClipEndedOpVariant =  1 * 1000000; //  1 second
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiClipSharingController* CMusUiClipSharingController::NewL(
-                                MMusUiEventObserver& aEventObserver,
-                                MMusUiSharingObserver& aSharingObserver,
-        	                    MMusUiSendObserver& aSendObserver,
-                                MMusUiClipSharingObserver& aClipObserver,
-                                const TRect& aRect )
-    {
-    CMusUiClipSharingController* self =
-            new( ELeave ) CMusUiClipSharingController( aEventObserver,
-                                                       aSharingObserver,
-                                                       aSendObserver,
-                                                       aClipObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL( aRect );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiClipSharingController::~CMusUiClipSharingController()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::~CMusUiClipSharingController" );
-    delete iCloseTimer;
-    DeleteEngineSession();
-    delete iFileName;
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::~CMusUiClipSharingController" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusUiClipSharingController::CMusUiClipSharingController(
-                                MMusUiEventObserver& aEventObserver,
-                                MMusUiSharingObserver& aSharingObserver,
-                                MMusUiSendObserver& aSendObserver,
-                                MMusUiClipSharingObserver& aClipObserver )
-    :CMusUiSendController( aEventObserver, aSharingObserver, aSendObserver ),
-    iClipObserver( aClipObserver )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::ConstructL( const TRect& aRect )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::ConstructL" );
-    
-    CMusUiSendController::ConstructL(); // Base class construction
-                            
-    iRect = aRect;  
-    iSession = CMusEngClipSession::NewL( iRect,
-                                         *this,
-                                         *this,
-                                         *this,
-                                         iSipProfileId );
-    iSession->SetAudioRoutingObserver( this );
-    
-    if ( iSession->AudioRoutingCanBeChanged() )
-        {
-        iSession->EnableLoudspeakerL( ELoudspeakerEnabled, ETrue );
-        }
-    
-    if ( iVideoCodec && iVideoCodec->Length() > 0 )
-        {
-        iSession->SetSupportedVideoCodecListL( *iVideoCodec );
-        }
-    
-   	iCallbackService->AsyncEventL( EMusUiAsyncStartMediaGallery );
-   	
-   	iCloseTimer = CMusUiActiveTimer::NewL( this );
-   	
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::ConstructL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::HandleAsyncEventL( TMusUiAsyncEvent aEventId )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::HandleAsyncEventL" );
-    switch ( aEventId )
-        {
-        case EMusUiAsyncStartMediaGallery:
-            {
-            iTranscode = EFalse;
-            iTranscodingGoing = EFalse;
-            
-            if ( !iSession )
-                {
-                iSession = CMusEngClipSession::NewL( iRect, 
-                                                     *this, 
-                                                     *this, 
-                                                     *this, 
-                                                     iSipProfileId );
-                iSession->SetAudioRoutingObserver( this );
-                }
-                        
-            // Do fetching guarded. If registration completes during fetching,
-            // there is no need to do anything.
-            iFileFetchingOngoing = ETrue;
-            iClipObserver.RunFetchDialogL();
-            iFileFetchingOngoing = EFalse;
-            
-            TRAPD( error,
-                   iSession->SetClipL( *iFileName ) )
-            MUS_LOG_TDESC( "mus: [MUSUI ]     File name: ",
-                           iFileName->Des() )
-            if ( error == KErrNone)
-                {
-				if ( iSession->AudioRoutingCanBeChanged() )
-                    {
-                    iSession->EnableLoudspeakerL( ELoudspeakerEnabled, ETrue );
-                    }
-                iClipEnded = EFalse;                   
-                StartInvitationL();	
-                }
-            else if ( error == KErrPermissionDenied )
-                {
-                MusUiDialogUtil::ShowInformationDialogL( 
-                                        R_MUS_VIEW_DRM_INFO_SEND_FORBID );
-                DeleteEngineSession();
-                delete iFileName;
-                iFileName = NULL;
- 				iSession = CMusEngClipSession::NewL( iRect,
-                                                     *this,
-                                                     *this,
-                                                     *this,
-                                                     iSipProfileId );
-                iSession->SetAudioRoutingObserver( this );
-                if ( iSession->AudioRoutingCanBeChanged() )
-                    {
-                    iSession->EnableLoudspeakerL( ELoudspeakerEnabled, ETrue );
-                    }
-                iCallbackService->AsyncEventL( EMusUiAsyncStartMediaGallery );
-                }
-            else
-                {
-                HandleExitL();
-                }
-                
-            break;
-            }
-        case EMusUiAsyncStartTranscoding:
-            {
-            // Parse Target Filename for the transcoding result
-            // and start transcoding:
-            //iSession->TranscodeL( VideoFileNameL() );
-            // Show progress dialog:
-            //iObserver->ShowTranscodingProgressDialogL();
-            iTranscodingGoing = ETrue;
-            break;
-            }  
-        
-        default:
-            {
-            // Not clip specific, let the base class handle
-            CMusUiSendController::HandleAsyncEventL( aEventId );
-            }
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::HandleAsyncEventL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::DeleteEngineSession()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::DeleteEngineSession" );
-    
-    CMusUiSendController::DeleteEngineSession();
-    
-    // Cancel transcoding
-    if ( iSession && iTranscodingGoing )
-        {
-        MUS_LOG( "mus: [MUSUI ]     CMusUiClipSharingController::DeleteEngineSession:\
-                            Canceling transcoding..." );
-        DismissWaitDialog();
-        TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( 
-                                R_MUS_VIEW_NOTE_UNABLE_TO_CONVERT );
-                     iSession->CancelTranscodeL() );
-        }
-        
-    delete iSession;
-    iSession = NULL;
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::DeleteEngineSession" );
-	}
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusEngMceOutSession* CMusUiClipSharingController::EngineOutSession()
-    {
-    return iSession; // Clip session is CMusEngMceOutSession
-    }
-
-
-// -----------------------------------------------------------------------------
-// Handles status changes specific to sending sharing types.
-// Calls base class version for status changes that are not sending specific. 
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::HandleChangedStatusL(
-                        TMusAvailabilityStatus aStatus )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::HandleChangedStatusL" )
-   
-    switch( aStatus )
-        {
-        case EMultimediaSharingAvailable:
-            {
-            MUS_LOG( "mus: [MUSUI ]     EMultimediaSharingAvailable" )
-            
-            if ( iSipRegistrationPending )
-                {
-                iSipRegistrationPending = EFalse;
-            
-                // If fecth dialog is still open, there is no need to do anything
-                if ( !iFileFetchingOngoing )
-                	{
-                	iSipRegistrationPending = EFalse;
-                    // Set callback service, Call StartInvitationL when wait dialog dismissed
-                	TRAPD( err, iSharingObserver.SetWaitDialogCallbackL( 
-                	            &iWaitDialogCallback ) );
-                    // Dismiss pending wait note
-            	    iSharingObserver.DismissWaitDialogL();
-            	    if ( err == KErrNotReady )
-            	        {
-            	        StartInvitationL();	
-            	        }
-                	}
-                }
-            break;
-            }   
-        default:
-            {
-            // Not clip specific, let the base class handle
-            CMusUiSendController::HandleChangedStatusL( aStatus );
-            break;
-            }
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::HandleChangedStatusL" )
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::InviteL( const TDesC& aRecipient )
-    {
-    MUS_LOG_TDESC( "mus: [MUSUI ]    -> CMusUiClipSharingController::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 ]     CMusUiClipSharingController::InviteL: After TRAPD" );
-
-    // If address is in wrong format, Manual Address Entry Dialog
-    // is displayed
-    if ( err != KErrNone )
-        {
-        DismissWaitDialog();
-        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 );
-
-            // If the address has to be queried again...:
-            iTranscode = EFalse;
-            
-            MUS_LOG_TDESC( "mus: [MUSUI ]     CMusUiClipSharingController::InviteL: ",
-                       iFileName->Des() )
-                                                 
-            iSendObserver.ManualAddressEntryL( *iRemoteSipAddressProposal );
-            return;
-            }
-        else
-            {
-            MUS_LOG( "mus: [MUSUI ]     CMusUiLiveSharingController::InviteL: ++iTriedInvitations > 1" );
-            DeleteEngineSession();
-            HandleExitL();
-            return;
-            }
-        }
-        
-
-    if( iTranscode )
-        {
-        MUS_LOG( "mus: [MUSUI ]     Starting transcode..." );
-        iTranscode = EFalse;
-        // Show progress dialog:
-        iClipObserver.ShowTranscodingProgressDialogL();
-        // Start transcoding
-        iTranscodingGoing = ETrue;
-        
-        SetFileNameL( VideoFileNameL() );
-        TRAPD( err, iSession->TranscodeL( *iFileName ) );
-        
-        if ( err != KErrNone )
-            {
-            MUS_LOG1( "mus: [MUSUI ]     Transcoding failed: %d", err );
-            iTranscodingGoing = EFalse;
-            if ( err == KErrNotFound )  // No Video Editor Engine
-                {
-                DismissWaitDialog();
-                MusUiDialogUtil::ShowGlobalErrorDialogL(
-                    R_MUS_LIVE_SHARING_VIEW_NOTE_TRANSCODING_NOT_SUPPORTED );
-                DeleteEngineSession();
-                iVideoToBeSaved = EFalse;
-                HandleExitL();
-                }
-            else
-                {
-                // Unable to convert clip, if transc. leaves.
-                // After note return back to the media gallery.
-                TranscodingFailed();
-                }
-            return;
-            }
-        }
-    else
-        {
-        SetConnectionInitialized( ETrue );
-        ShowInvitingWaitDialogL();
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::InviteL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::HandleSliderValueChangeL( TInt aNewLevel )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiClipSharingController::HandleSliderValueChangeL(%d)",
-              aNewLevel )
-
-    __ASSERT_ALWAYS( !ExitOccured(), User::Leave( KErrDied ) );
-    __ASSERT_ALWAYS( iConnectionEstablished, User::Leave( KErrNotReady ) );
-        
-    iSession->SetPositionL( TTimeIntervalSeconds( aNewLevel ) );
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::HandleSliderValueChangeL" )
-    }
-
-
-
-void CMusUiClipSharingController::OfferToolbarEventL( TInt aCommand )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiClipSharingController::OfferToolbarEventL [%d]",
-                            aCommand );
-                                                    
-    switch ( aCommand )
-        {
-        case EMusuiCmdToolbarPause:
-            {
-            HandleCommandL( EMusuiCmdViewPause );
-            iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarPause,
-                                                    EMusuiCmdToolbarUnPause,
-                                                    ETrue );
-            break;
-            }
-        case EMusuiCmdToolbarUnPause:
-            {
-            HandleCommandL( EMusuiCmdViewContinue );
-            iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarUnPause,
-                                                    EMusuiCmdToolbarPause,
-                                                    ETrue );
-            break;
-            }
-        case EMusuiCmdToolbarFFRev:
-            {
-            iToolbarFFRevSelected = !iToolbarFFRevSelected; 
-            iClipObserver.SetDurationValue( iSession->DurationL().Int() );
-            if ( iToolbarFFRevSelected )
-                {
-                iWasPlayingBeforeWinding = iSession->IsPlayingL();
-                PauseL();
-                }
-            else
-                {
-                StopWindingL();
-                if ( iWasPlayingBeforeWinding )
-                    {
-                    PlayL();
-                    }
-                }
-//            iClipObserver.SetDurationVisible();
-            iSharingObserver.HighlightSelectedToolbarItem( EMusuiCmdToolbarFFRev );
-            break;
-            }
-        default:    // Not clip specific, let the base class handle
-            {
-            CMusUiEventController::OfferToolbarEventL( aCommand );
-            break;
-            }    
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::OfferToolbarEventL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::HandleCommandL(TInt aCommand)
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::HandleCommandL" );
-    
-    __ASSERT_ALWAYS( !ExitOccured(), User::Leave( KErrDied ) );
-
-    switch ( aCommand )
-        {
-        case EMusuiCmdViewPause:
-            {
-            PauseL();
-            iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconPause );
-            break;
-            }
-        case EMusuiCmdViewContinue:
-            {
-            PlayL();
-            iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconPlay );
-            break;
-            }
-
-        case EMusuiCmdViewReplay:
-            {
-            if( !MUS_NO_TOOLBAR )
-                {
-    			if (!AknLayoutUtils::PenEnabled())
-    				{
-    				iEventObserver.SetToolbarVisibility( ETrue );
-            		}
-    
-                if ( ClipEnded() )
-                    {
-                    iEventObserver.SetToolbarVisibility( ETrue );
-                    // Simulate press of play in toolbar
-                    OfferToolbarEventL( EMusuiCmdToolbarUnPause );             
-                    }
-                }
-            break;
-            }
-
-        case EMusuiCmdViewShareVideo:
-            {
-            PauseL();
-            // TODO: Change to video sharing
-            break;
-            }
-        case EMusuiCmdViewShareImage:
-            {
-            PauseL();
-            // TODO: Change to image sharing
-            break;
-            }
-        case EMusuiCmdViewShareLive:
-            {
-            // TODO: Change to live sharing
-            break;
-            }
-
-        case EMusuiCmdViewAudioNormal:
-            {
-            if( !MUS_NO_TOOLBAR )
-                {
-    			if (!AknLayoutUtils::PenEnabled())
-    				{
-    				iEventObserver.SetToolbarVisibility( ETrue );
-            		}
-                }
-            iSession->UnmuteL();
-            break;
-            }
-        case EMusuiCmdViewAudioMute:
-            {
-			if (!AknLayoutUtils::PenEnabled())
-				{
-				iEventObserver.SetToolbarVisibility( ETrue );
-        		}
-
-            iSession->MuteL();
-            break;
-            }
-        case EMusuiCmdViewFastForward:
-            {
-            MUS_LOG( "mus: [MUSUI ]     CMusUiClipSharingController::HandleCommandL: EMusuiCmdViewFastForward" );
-            if ( DoFastForwardingL( ETrue ) )
-                {
-                iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconForward );
-                iClipObserver.SetPositionValueL( iSession->PositionL().Int() );
-                //iClipObserver.SetDurationVisible();
-                }
-            MUS_LOG( "mus: [MUSUI ]     CMusUiClipSharingController::HandleCommandL: EMusuiCmdViewFastForward END" );
-            break;
-            }
-        case EMusuiCmdViewFastReverse:
-            {
-            MUS_LOG( "mus: [MUSUI ]     CMusUiClipSharingController::HandleCommandL: EMusuiCmdViewFastReverse" );
-            if ( DoFastRewindingL( ETrue ) )
-                {
-                iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconRew );
-                iClipObserver.SetPositionValueL( iSession->PositionL().Int() );
-                //iClipObserver.SetDurationVisible();
-                }
-            MUS_LOG( "mus: [MUSUI ]     CMusUiClipSharingController::HandleCommandL: EMusuiCmdViewFastReverse END" );
-            break;
-            }
-        case EMusuiCmdViewFastForwardEnd:
-            {
-            if ( DoFastForwardingL( EFalse ) )
-                {
-                iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconPause );
-                PauseL();
-                }
-            break;
-            }
-        case EMusuiCmdViewFastReverseEnd:
-            {
-            if ( DoFastRewindingL( EFalse ) )
-                {
-                iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconPause );
-                PauseL();
-                }
-            break;
-            }
-        default:
-            {
-            // Try more general handling
-            CMusUiEventController::HandleCommandL( aCommand );
-            break;
-            }
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::HandleCommandL" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SetFileNameL( const TDesC& aFileName )
-    {
-    iFileName = aFileName.AllocL();
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiClipSharingController::ClipEnded()
-    {
-    return iClipEnded;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiClipSharingController::ClipMutedL()
-    {
-    return iSession->IsMutedL();
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiClipSharingController::ClipContainsAudioL()
-    {
-    if ( !iConnectionInitialized || !iSession )
-        {
-        return EFalse; // We cannot be sure yet
-        }
-        
-    return iSession->ContainsAudioL();
-    }
-    
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::CancelTranscodingL()
-    {
-    if ( iSession && iTranscodingGoing )
-        {
-        iTranscodingGoing = EFalse;
-        iSession->CancelTranscodeL();
-        }
-    iVideoToBeSaved = EFalse;
-    HandleExitL();
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::StopWindingL()
-    {
-    MUS_LOG( "mus: [MUSUI ] -> CMusUiClipSharingController::StopWindingL" );
-    
-    if ( DoFastForwardingL( EFalse ) || DoFastRewindingL( EFalse ) )
-        {
-        iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconPause );
-        }
-        
-    MUS_LOG( "mus: [MUSUI ] <- CMusUiClipSharingController::StopWindingL" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiClipSharingController::ToolbarFFRevSelected()
-    {
-    return iToolbarFFRevSelected;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingProgressedL( TInt aPercentage )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingProgressedL ( %d )", aPercentage );
-    if ( aPercentage < KMusOneHundredPercent )
-        {
-        iTranscodingGoing = ETrue;
-        iClipObserver.UpdateClipTranscodingPercentageL( aPercentage );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingProgressedL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingCompletedInitL()
-    {
-    MUS_LOG( 
-        "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingCompletedInitL" );
-    if ( iTranscodingGoing )
-        {
-        iVideoToBeSaved = ETrue;
-        iTranscodingGoing = EFalse;
-        iClipObserver.CancelTranscodingDialogL();
-        MusUiDialogUtil::ShowInformationDialogL( R_MUS_VIEW_NOTE_TRANSCODING_COMPLETE );
-        }
-    MUS_LOG( 
-        "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingCompletedInitL" );
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingCompletedFinalizeL()
-    {
-    MUS_LOG( 
-        "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingCompletedFinalizeL" );
-    SetConnectionInitialized( ETrue );
-    if ( !iTranscodingGoing )
-        {
-        ShowInvitingWaitDialogL();
-        }
-    MUS_LOG( 
-        "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingCompletedFinalizeL" );
-    }
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& CMusUiClipSharingController::FormattedDurationString(
-                            const TTimeIntervalSeconds& aDurationSeconds,
-                            const TTimeIntervalSeconds& aPositionSeconds )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::FormattedDurationString" );
-    _LIT( KDurationAndPositionSeparator, "/" );
-
-    iDurationStringBuffer.SetLength( 0 );
-    TLocale locale;
-    _LIT( KZeroSymbol, "0" );
-
-    TInt durationMinutes( 0 );
-    TInt durationSeconds( aDurationSeconds.Int() );
-    if ( aDurationSeconds.Int() > ( KMusOneMinuteInSeconds - 1 ) )
-        {
-        durationMinutes = (int)( aDurationSeconds.Int() / KMusOneMinuteInSeconds );
-        durationSeconds = durationSeconds - ( durationMinutes * KMusOneMinuteInSeconds );
-        }
-
-    iDurationStringBuffer.AppendNum( durationMinutes );
-    iDurationStringBuffer.Append( locale.TimeSeparator( KMusLocaleMinutesAndSecondsSeparator ) );
-    if ( durationSeconds < KMusNumberValueTen )
-        {
-        iDurationStringBuffer.Append( KZeroSymbol );
-        }
-    iDurationStringBuffer.AppendNum( durationSeconds );
-    iDurationStringBuffer.Append( KDurationAndPositionSeparator );
-
-    TInt positionMinutes( 0 );
-    TInt positionSeconds( aPositionSeconds.Int() );
-    if ( aPositionSeconds.Int() > ( KMusOneMinuteInSeconds - 1 ) )
-        {
-        positionMinutes = (int)( aPositionSeconds.Int() / KMusOneMinuteInSeconds );
-        positionSeconds = positionSeconds - ( positionMinutes * KMusOneMinuteInSeconds );
-        }
-
-    iDurationStringBuffer.AppendNum( positionMinutes );
-    iDurationStringBuffer.Append( locale.TimeSeparator( KMusLocaleMinutesAndSecondsSeparator ) );
-    if ( positionSeconds < KMusNumberValueTen )
-        {
-        iDurationStringBuffer.Append( KZeroSymbol );
-        }
-    iDurationStringBuffer.AppendNum( positionSeconds );
-
-
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::FormattedDurationString" );
-    return iDurationStringBuffer;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::EndOfClip()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::EndOfClip" );
-    iClipEnded = ETrue;
-    
-        TRAP_IGNORE( iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconStop ) );
-        if(!MUS_NO_TOOLBAR)
-            {
-            iSharingObserver.ReplaceToolbarCommand( EMusuiCmdToolbarPause,
-                                                    EMusuiCmdToolbarUnPause,
-                                                    ETrue );
-            }
-    iCloseTimer->Cancel();
-    iCloseTimer->After( iOperatorSpecificFunctionality ?
-                                   KMusTimeToCloseAfterClipEndedOpVariant : 
-                                   KMusTimeToCloseAfterClipEndedStandard );
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::EndOfClip" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingNeeded()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingNeeded" );
-    iTranscode = ETrue;
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingNeeded" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingProgressed( TInt aPercentage )
-    {
-    MUS_LOG1( "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingProgressed %d",
-                            aPercentage );
-    TRAP_IGNORE( TranscodingProgressedL( aPercentage ) )
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingProgressed" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingCompletedInit()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingCompleted" );
-    TRAPD( error, TranscodingCompletedInitL() );
-    if ( error != KErrNone )
-        {
-        HandleError( error );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingCompleted" );
-    }
-    
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingCompletedFinalize()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingCompleted" );
-    TRAPD( error, TranscodingCompletedFinalizeL() );
-    if ( error != KErrNone )
-        {
-        HandleError( error );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingCompleted" );
-    }
-    
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TranscodingFailed()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::TranscodingFailed" );
-    iTranscodingGoing = EFalse;
-    DismissWaitDialog();
-    TRAP_IGNORE( iClipObserver.CancelTranscodingDialogL();
-                 MusUiDialogUtil::ShowGlobalErrorModalDialogL( 
-                                    R_MUS_VIEW_NOTE_UNABLE_TO_CONVERT ) );
-    DeleteEngineSession();
-    delete iFileName;
-    iFileName = NULL;
-    TRAPD( error,
-           iCallbackService->AsyncEventL( EMusUiAsyncStartMediaGallery ) );
-    if ( error != KErrNone )
-        {
-        HandleError( error );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::TranscodingFailed" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SessionRecipientNotFound()
-    {
-    MUS_LOG1( "mus: [MUSUI ]     -> CMusUiClipSharingController::SessionRecipientNotFound [%d]", iTriedInvitations );
-    
-    // If the address has to be queried again...:
-    iTranscode = EFalse;    
-    
-    CMusUiSendController::SessionRecipientNotFound();
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::SessionRecipientNotFound" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SessionTerminated()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::SessionTerminated" );
-    DismissWaitDialog();
-    if ( iTranscodingGoing )
-        {
-        TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( 
-                                R_MUS_VIEW_NOTE_UNABLE_TO_CONVERT ) );
-        }
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::SessionTerminated" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SessionConnectionLost()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::SessionConnectionLost" );
-    DismissWaitDialog();
-    TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( 
-                            R_MUS_LIVE_SHARING_VIEW_NOTE_CONNECTION_LOST ) );
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::SessionConnectionLost" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SessionFailed()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::SessionFailed" );
-    DismissWaitDialog();
-    if ( iTranscodingGoing )
-        {
-        TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( 
-                            R_MUS_VIEW_NOTE_UNABLE_TO_CONVERT ) );
-        }
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::SessionFailed" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::StreamIdle()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::StreamIdle" );
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::StreamIdle" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::StreamStreaming()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::StreamStreaming" );
-    TRAPD( error, StreamStreamingL() );
-    if ( error != KErrNone )
-        {
-        iEventObserver.HandleError( error );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::StreamStreaming" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SessionTimeChanged(
-                        const TTimeIntervalSeconds& aSeconds )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::SessionTimeChanged" );
-    TRAP_IGNORE( SessionTimeChangedL( aSeconds ) );
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::SessionTimeChanged" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::InactivityTimeout()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::InactivityTimeout" );
-    DismissWaitDialog();
-    TRAP_IGNORE( MusUiDialogUtil::ShowGlobalErrorDialogL( 
-                            R_MUS_LIVE_SHARING_VIEW_NOTE_SERVICE_N_A ) );
-    
-    TRAP_IGNORE( iCallbackService->AsyncEventL( EMusUiAsyncHandleExit ) );
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::InactivityTimeout" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// Called when predefined time elapsed 
-// after the clip had reached the end
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::TimerComplete( CMusUiActiveTimer* /*aTimer*/ )
-    {
-    MUS_LOG( "mus: [MUSUI ]  Close time elapsed from clip ending => \
-             closing session" );
-    TRAP_IGNORE( HandleExitL() )
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::StreamStreamingL()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::StreamStreamingL" );
-    
-    if ( ConnectionEstablished() )
-        {
-        iClipEnded = EFalse;
-        iCloseTimer->Cancel();    
-        iEventObserver.ShowNaviPaneIconL( EMusUiNaviIconPlay );
-        }
-        
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::StreamStreamingL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SessionTimeChangedL( const TTimeIntervalSeconds& aSeconds )
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::SessionTimeChangedL" );
-    if ( aSeconds.Int() > -1 )
-        {
-        TTimeIntervalSeconds clipDuration = iSession->DurationL();
-        TTimeIntervalSeconds clipPosition = iSession->PositionL();
-                
-        iSharingObserver.UpdateSessionTime( SessionTimeFormatted( aSeconds ) );
-        iClipObserver.UpdateClipPositionL( clipPosition.Int(),
-                                          FormattedDurationString(  
-                                                clipPosition, 
-                                                clipDuration ) );
-        }
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::SessionTimeChangedL" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMusUiClipSharingController::SessionEstablished()
-// -----------------------------------------------------------------------------
-//
-void CMusUiClipSharingController::SessionEstablished()
-    {
-    MUS_LOG( "mus: [MUSUI ]  -> CMusUiClipSharingController::SessionEstablished" );
-    
-    TRAPD( error, iResourceHandler->RequestVideoPlayerL( ETrue ) );
-    if ( error != KErrNone )
-        {
-        MUS_LOG1( "mus: [MUSUI ]     RequestVideoPlayerL leave code: %d", error )
-        }
-    
-    // Duration setting visible
-    TRAP( error, iClipObserver.SetDurationValue( iSession->DurationL().Int() ) )
-    if ( error != KErrNone )
-        {
-        HandleError( error );
-        }
-    iClipObserver.SetDurationVisible();
-
-    // General handling
-    CMusUiSendController::SessionEstablished(); // Base class handling    
-    
-    MUS_LOG( "mus: [MUSUI ]  <- CMusUiClipSharingController::SessionEstablished" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMusUiClipSharingController::DoFastForwardingL()
-// -----------------------------------------------------------------------------
-//
-TBool CMusUiClipSharingController::DoFastForwardingL( TBool aUseWinding )
-    {
-    if( iFastForward ^ aUseWinding ) 
-        {
-        iSession->FastForwardL( aUseWinding );
-        iFastForward = aUseWinding;
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CMusUiClipSharingController::DoFastRewindingL()
-// -----------------------------------------------------------------------------
-//    
-TBool CMusUiClipSharingController::DoFastRewindingL( TBool aUseWinding )
-    {
-    if( iFastRewind ^ aUseWinding ) 
-        {
-        iSession->FastRewindL( aUseWinding );
-        iFastRewind = aUseWinding;
-        return ETrue;
-        }
-    return EFalse;
-    }
-    
-
-// End of file
-