diff -r 951a5db380a0 -r d87d32eab1a9 videditor/ManualVideoEditor/src/VeiEditVideoView.cpp --- a/videditor/ManualVideoEditor/src/VeiEditVideoView.cpp Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5569 +0,0 @@ -/* -* Copyright (c) 2010 Ixonos Plc. -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the "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: -* Ixonos Plc -* -* Description: -* -*/ - - -// INCLUDE FILES - -// System includes -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -//#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -// User includes -#include "veiapp.h" -#include "veicutaudioview.h" -#include "VeiEditVideoView.h" -#include "VeiEditVideoContainer.h" -#include "manualvideoeditor.hrh" -#include "veieditvideolabelnavi.h" -#include "veicutvideoview.h" -#include "veiappui.h" -#include "VideoEditorCommon.h" -#include "VideoEditorUtils.h" -#include "VeiTimeLabelNavi.h" -#include "veiaddqueue.h" -#include "veitempmaker.h" -#include "videoeditorcommon.h" -#include "VeiImageClipGenerator.h" -#include "VeiTitleClipGenerator.h" -#include "VeiTextDisplay.h" -#include "VeiPopup.h" -#include "VeiVideoEditorSettings.h" -#include "VeiMGFetchVerifier.h" -#include "VeiErrorUi.h" - - -const TInt KTitleScreenMaxTextLength = 100; //2048; - - -void CleanupRestoreOrientation( TAny* object ) - { - LOG( KVideoEditorLogFile, "CleanupRestoreOrientation: in" ); - - CVeiEditVideoView* me = static_cast < CVeiEditVideoView* > ( object ); - me->RestoreOrientation(); - - LOG( KVideoEditorLogFile, "CleanupRestoreOrientation: Out" ); - } - -CVeiEditVideoView* CVeiEditVideoView::NewL( CVeiCutVideoView& aCutView, - CVeiCutAudioView& aCutAudioView, - CSendUi& aSendAppUi ) - { - CVeiEditVideoView* self = CVeiEditVideoView::NewLC( aCutView, aCutAudioView, aSendAppUi ); - CleanupStack::Pop( self ); - return self; - } - -CVeiEditVideoView* CVeiEditVideoView::NewLC( CVeiCutVideoView& aCutView, - CVeiCutAudioView& aCutAudioView, - CSendUi& aSendAppUi ) - { - CVeiEditVideoView* self = new ( ELeave ) CVeiEditVideoView( aCutView, aCutAudioView, aSendAppUi ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -CVeiEditVideoView::CVeiEditVideoView( CVeiCutVideoView& aCutView, - CVeiCutAudioView& aCutAudioView, - CSendUi& aSendAppUi ) - : iCutView( aCutView ), - iCutAudioView( aCutAudioView ), - iSendAppUi( aSendAppUi ), - iOriginalAudioStartPoint( -1 ), - iOriginalAudioDuration( -1 ), - iMemoryCardChecked(EFalse), - iOriginalOrientation( CAknAppUiBase::EAppUiOrientationAutomatic ) - { - iOriginalVideoClipIndex = - 1; - iMovieSavedFlag = ETrue; - SetNewTempFileNeeded( EFalse ); - iMovieFirstAddFlag = ETrue; - iWaitMode = ENotWaiting; - } - -void CVeiEditVideoView::ConstructL() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::ConstructL: in" ); - - BaseConstructL( R_VEI_EDIT_VIDEO_VIEW ); - - CEikStatusPane* sp = StatusPane(); - iNaviPane = ( CAknNavigationControlContainer* ) sp->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ); - - /** General navilabel(mms state, movie size, movie time). - Is visible always except when in moving state */ - iEditLabel = CreateEditNaviLabelL(); - - - /** Navilabel when previewing video in small preview */ - iPreviewLabel = CreatePreviewNaviLabelL(); - - /** Navipane updating timer when editor is on small preview - mode */ - iPreviewUpdatePeriodic = CPeriodic::NewL( CActive::EPriorityLow ); - - /* volume bars are showed when volume is changed in small preview */ - // iVolumeHider = CPeriodic::NewL( CActive::EPriorityLow ); - - iVolumeNavi = iNaviPane->CreateVolumeIndicatorL( - R_AVKON_NAVI_PANE_VOLUME_INDICATOR ); - - /** Navilabel when audio or video clip is in moving state */ - iMoveLabel = CreateMoveNaviLabelL(); - - iTempMaker = CVeiTempMaker::NewL(); - - iErrorUI = CVeiErrorUI::NewL( *iCoeEnv ); - - iMovie = CVedMovie::NewL( NULL ); - iMovie->RegisterMovieObserverL( this ); - - /** All media files are added to video/audio tracks through mediaqueue */ - iMediaQueue = CVeiAddQueue::NewL( *this, * iMovie, * this ); - - iOriginalAudioDuration = TTimeIntervalMicroSeconds( - 1 ); - /* Create recorder with max priority. */ - iRecorder = CMdaAudioRecorderUtility::NewL( *this, NULL, EMdaPriorityMax, - TMdaPriorityPreference( KAudioPrefVideoRecording ) - /*EMdaPriorityPreferenceQuality*/ ); - iAudioRecordPeriodic = CPeriodic::NewL( CActive::EPriorityStandard ); - - /** Popup menus for video editor */ - iPopup = CVeiPopup::NewL( *this ); - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::ConstructL: out" ); - } - -TUid CVeiEditVideoView::Id()const - { - return TUid::Uid( EVeiEditVideoView ); - } - -CAknNavigationDecorator* CVeiEditVideoView::CreateMoveNaviLabelL() - { - CAknNaviLabel* movelabel = new( ELeave )CAknNaviLabel; - movelabel->SetNaviLabelType( CAknNaviLabel::ENavigationLabel ); - - CleanupStack::PushL( movelabel ); - - CAknNavigationDecorator* decoratedFolder = CAknNavigationDecorator::NewL( - iNaviPane, movelabel, CAknNavigationDecorator::ENotSpecified ); - - CleanupStack::Pop( movelabel ); - - CleanupStack::PushL( decoratedFolder ); - decoratedFolder->SetContainerWindowL( *iNaviPane ); - CleanupStack::Pop( decoratedFolder ); - decoratedFolder->MakeScrollButtonVisible( ETrue ); - - return decoratedFolder; - } - -CAknNavigationDecorator* CVeiEditVideoView::CreatePreviewNaviLabelL() - { - CVeiTimeLabelNavi* timelabelnavi = CVeiTimeLabelNavi::NewLC(); - CAknNavigationDecorator* decoratedFolder = CAknNavigationDecorator::NewL( - iNaviPane, timelabelnavi, CAknNavigationDecorator::ENotSpecified ); - CleanupStack::Pop( timelabelnavi ); - - CleanupStack::PushL( decoratedFolder ); - decoratedFolder->SetContainerWindowL( *iNaviPane ); - CleanupStack::Pop( decoratedFolder ); - decoratedFolder->MakeScrollButtonVisible( EFalse ); - - return decoratedFolder; - } - -/** - * Default navilabel. Shows MMS,Size and Time information. - */ -CAknNavigationDecorator* CVeiEditVideoView::CreateEditNaviLabelL() - { - CVeiEditVideoLabelNavi* editvideolabelnavi = CVeiEditVideoLabelNavi::NewLC(); - - editvideolabelnavi->SetState( CVeiEditVideoLabelNavi::EStateInitializing ); - - CAknNavigationDecorator* navidecorator = CAknNavigationDecorator::NewL( - iNaviPane, editvideolabelnavi, CAknNavigationDecorator::ENotSpecified ); - - CleanupStack::Pop( editvideolabelnavi ); - - CleanupStack::PushL( navidecorator ); - navidecorator->SetContainerWindowL( *iNaviPane ); - CleanupStack::Pop( navidecorator ); - navidecorator->MakeScrollButtonVisible( EFalse ); - - return navidecorator; - } - -CVeiEditVideoView::~CVeiEditVideoView() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: In" ); - - if ( iProgressNote ) - { - delete iProgressNote; - iProgressNote = NULL; - } - - if ( iPopup ) - { - delete iPopup; - iPopup = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iContainer" ); - if ( iContainer ) - { - AppUi()->RemoveFromStack( iContainer ); - delete iContainer; - iContainer = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iMediaQueue" ); - if ( iMediaQueue ) - { - delete iMediaQueue; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iMovie" ); - if ( iMovie ) - { - iMovie->Reset(); - //if application is closed from cut video view, observer is not - //registered. - if ( ( EProcessingMovieForCutting != iWaitMode ) && - ( ECuttingAudio != iWaitMode ) ) - { - iMovie->UnregisterMovieObserver( this ); - } - delete iMovie; - iMovie = NULL; - } - - if ( iAudioRecordPeriodic ) - { - iAudioRecordPeriodic->Cancel(); - delete iAudioRecordPeriodic; - } - - if ( iPreviewUpdatePeriodic ) - { - iPreviewUpdatePeriodic->Cancel(); - delete iPreviewUpdatePeriodic; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iTempFile" ); - if ( iTempFile ) - { - TInt err = iEikonEnv->FsSession().Delete( *iTempFile ); - if ( err ) - { - // what to do when error occurs in destructor??? - } - delete iTempFile; - iTempFile = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iSaveToFileName" ); - - if ( iSaveToFileName ) - { - delete iSaveToFileName; - iSaveToFileName = NULL; - } - - if ( iTempRecordedAudio ) - { - TInt err = iEikonEnv->FsSession().Delete( *iTempRecordedAudio ); - if ( err ) - { - // what to do when error occurs in destructor??? - } - delete iTempRecordedAudio; - iTempRecordedAudio = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iTempMaker" ); - - if ( iTempMaker ) - { - delete iTempMaker; - iTempMaker = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iErrorUI" ); - if ( iErrorUI ) - { - delete iErrorUI; - iErrorUI = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iAudioClipInfo" ); - delete iAudioClipInfo; - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iEditLabel" ); - delete iEditLabel; - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iMoveLabel" ); - delete iMoveLabel; - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iPreviewLabel" ); - delete iPreviewLabel; - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iRecorder" ); - if ( iRecorder ) - { - delete iRecorder; - iRecorder = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iVolumeHider" ); - if ( iVolumeHider ) - { - iVolumeHider->Cancel(); - delete iVolumeHider; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: iVolumeNavi" ); - delete iVolumeNavi; - - delete iCallBack; - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::~CVeiEditVideoView: Out" ); - } - -void CVeiEditVideoView::DialogDismissedL( TInt aButtonId ) - { - LOGFMT2( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: In, aButtonId:%d, iWaitMode:%d", aButtonId, iWaitMode ); - - IsEnoughFreeSpaceToSaveL(); - - if ( aButtonId != EAknSoftkeyDone ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: In, 2" ); - CMdaAudioRecorderUtility::TState rState; - rState = CMdaAudioClipUtility::ENotReady; - - if ( iRecorder ) - { - rState = iRecorder->State(); - } - - if (( EOpeningAudioInfo == iWaitMode ) || ( CMdaAudioClipUtility::EOpen == rState )) - { - delete iAudioClipInfo; - iAudioClipInfo = NULL; - iWaitMode = EProcessingError; - iMovie->CancelProcessing(); - } - else - { - iWaitMode = EProcessingError; - iMovie->CancelProcessing(); - } - } - else if ( EProcessingMovieSend == iWaitMode ) - { - //SendMovieL(); - if ( !iCallBack ) - { - TCallBack cb( CVeiEditVideoView::AsyncBackSend, this ); - iCallBack = new ( ELeave ) CAsyncCallBack( cb, CActive::EPriorityStandard ); - } - iCallBack->CallBack(); - } - else if ( EProcessingMovieTrimMms == iWaitMode ) - { - SetNewTempFileNeeded( EFalse ); - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 3, EProcessingMovieTrimMms" ); - - RFs& fs = iEikonEnv->FsSession(); - TEntry entry; - User::LeaveIfError( fs.Entry( *iTempFile, entry )); - TInt tempFileSize = entry.iSize / 1024; - TInt maxMmsSize = STATIC_CAST( CVeiEditVideoLabelNavi*, iEditLabel->DecoratedControl() )->GetMaxMmsSize(); - - LOGFMT2( KVideoEditorLogFile, - "CVeiEditVideoView::DialogDismissedL: 4, tempFileSize:%d, maxMmsSize:%d", tempFileSize, maxMmsSize ); - - if ( iMovie->IsMovieMMSCompatible()) - { - if ( tempFileSize <= maxMmsSize ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 5, MMS SIZE OK -- SEND" ); - iWaitMode = EProcessingMovieSend; - iGivenSendCommand = KSenduiMtmMmsUid; // MMS - - //SendMovieL(); - if ( !iCallBack ) - { - TCallBack cb( CVeiEditVideoView::AsyncBackSend, this ); - iCallBack = new( ELeave )CAsyncCallBack( cb, CActive::EPriorityStandard ); - } - iCallBack->CallBack(); - } - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 6, MMS SIZE FAILED - to TRIMM" ); - TBuf8 < 255 > conv8Filename; - CnvUtfConverter::ConvertFromUnicodeToUtf8( conv8Filename, *iTempFile ); - iMovie->UnregisterMovieObserver( iContainer ); - iMovie->UnregisterMovieObserver( this ); - - AppUi()->ActivateLocalViewL( TUid::Uid( EVeiTrimForMmsView ), TUid::Uid(0), conv8Filename ); - } - } - else - { - // if movie is not mms capable, trimming it does not help, instead its quality should be set - // trimming is made when other compatibility issues are fullfilled - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 7, MMS Compatible FAILED - to TRIMM" ); - TBuf8 < KMaxFileName > conv8Filename; - CnvUtfConverter::ConvertFromUnicodeToUtf8( conv8Filename, *iTempFile ); - - iMovie->UnregisterMovieObserver( iContainer ); - iMovie->UnregisterMovieObserver( this ); - - AppUi()->ActivateLocalViewL( TUid::Uid( EVeiTrimForMmsView ), TUid::Uid( 0 ), conv8Filename ); - } - iMovie->SetQuality( iBackupSaveQuality ); - return ; - } - else if (( EProcessingMovieSave == iWaitMode ) || - ( EProcessingMovieSaveThenQuit == iWaitMode )) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 8, EProcessingMovieSave|EProcessingMovieSaveThenQuit" ); - RFs& fs = iEikonEnv->FsSession(); - - CFileMan* fileman = CFileMan::NewL( fs ); - CleanupStack::PushL( fileman ); - - TInt moveErr( KErrNone ); - - if ( iTempFile->Left( 1 ) == iSaveToFileName->Left( 1 )) - { - moveErr = fileman->Rename( *iTempFile, * iSaveToFileName ); - LOGFMT2( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 9, rename %S to %S", iTempFile, iSaveToFileName ); - } - else - { - moveErr = fileman->Move( *iTempFile, * iSaveToFileName ); - LOGFMT2( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 10, moved %S to %S", iTempFile, iSaveToFileName ); - } - CleanupStack::PopAndDestroy( fileman ); - - delete iTempFile; - iTempFile = NULL; - - if ( moveErr ) - { - ShowGlobalErrorNote( moveErr ); - UpdateEditNaviLabel(); - iWaitMode = ENotWaiting; - return ; - } - - iMovieSavedFlag = ETrue; - - if ( EProcessingMovieSaveThenQuit == iWaitMode ) - { - iMovie->Reset(); - iMovieFirstAddFlag = ETrue; // True for the next edit process. - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 11" ); - UpdateMediaGalleryL(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 12, media gallery updated" ); - - if ( EProcessingMovieSaveThenQuit == iWaitMode ) - { - if ( !iCallBack ) - { - TCallBack cb( CVeiEditVideoView::AsyncBackSaveThenExitL, this ); - iCallBack = new( ELeave )CAsyncCallBack( cb, CActive::EPriorityStandard ); - - } - iCallBack->CallBack(); - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL Out" ); - return ; - } - else if ( EProcessingMoviePreview == iWaitMode && ( iTempFile != NULL )) - { - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModePreview ); - iContainer->PlayVideoFileL( *iTempFile, iFullScreenSelected ); - } - else - { - if ( EProcessingError == iWaitMode ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 13" ); - if ( iTempFile ) - { - RFs& fs = iEikonEnv->FsSession(); - - fs.Delete( *iTempFile ); - delete iTempFile; - iTempFile = NULL; - SetNewTempFileNeeded( ETrue ); - } - - iWaitMode = ENotWaiting; - ShowGlobalErrorNote( iErrorNmb ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 14" ); - UpdateEditNaviLabel(); - } - - if ( EProcessingAudioError == iWaitMode ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 15" ); - ShowErrorNote( R_VEI_ERRORNOTE_AUDIO_INSERTING_FAILED ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: 16" ); - UpdateEditNaviLabel(); - iWaitMode = ENotWaiting; - } - - if ( iChangedFromMMCToPhoneMemory ) - { - HBufC* noteText = StringLoader::LoadLC( R_VED_MMC_NOT_INSERTED, - iEikonEnv ); - CAknInformationNote* informationNote = new( ELeave ) - CAknInformationNote( ETrue ); - informationNote->ExecuteLD( *noteText ); - - CleanupStack::PopAndDestroy( noteText ); - } - } - if ( EProcessingMovieSend != iWaitMode ) - { - iWaitMode = ENotWaiting; - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DialogDismissedL: Out" ); - } - - -TInt CVeiEditVideoView::AsyncBackSend( TAny* aThis ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::AsyncBackSend" ); - - // In the asynchronous version, trap the rest of the functions - // to make sure that the caller's TRequestStatus is always - // completed, also in case of failures. - CVeiEditVideoView* view = static_cast < CVeiEditVideoView* > ( aThis ); - TInt err = KErrNone; - TRAP( err, view->SendMovieL()); - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::AsyncBackSend 1, err:%d", err ); - - view->iWaitMode = ENotWaiting; - User::LeaveIfError( err ); - return KErrNone; - } - -TInt CVeiEditVideoView::AsyncBackSaveThenExitL( TAny* aThis ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::AsyncBackSaveThenExitL In" ); - - // In the asynchronous version, trap the rest of the functions - // to make sure that the caller's TRequestStatus is always - // completed, also in case of failures. - - CVeiEditVideoView* view = static_cast < CVeiEditVideoView* > ( aThis ); - - view->AppUi()->HandleCommandL( EAknCmdExit ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::AsyncBackSaveThenExitL 1" ); - return KErrNone; - } - -void CVeiEditVideoView::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* - aMenuPane ) - { - if ( !iContainer || !iMovie ) - { - return ; - } - if ( aResourceId == R_VEI_EDIT_VIDEO_VIEW_MENU && CVeiEditVideoContainer - ::EModeMixingAudio == iContainer->SelectionMode()) - { - // Dim all the items and replace the with - // R_VEI_EDIT_VIDEO_VIEW_AUDIO_MIXING_MENU - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewInsert, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditVideo, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditAudio, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditImage, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewMovie, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewSettings, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditStartTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditMiddleTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditEndTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewHelp, ETrue ); - aMenuPane->SetItemDimmed( EEikCmdExit, ETrue ); - - aMenuPane->AddMenuItemsL( R_VEI_EDIT_VIDEO_VIEW_AUDIO_MIXING_MENU ); - - return ; - } - - if (( aResourceId == R_VEI_EDIT_VIDEO_VIEW_EDIT_VIDEO_MENU ) || - ( aResourceId == R_VEI_EDIT_VIDEO_VIEW_EDIT_VIDEO_SUBMENU )) - { - // @ : if muted, remove AdjustVolume, if video has no audio, remove AdjustVolume - //if (!iMovie->VideoClipEditedHasAudio(iContainer->CurrentIndex())) - if ( !( iMovie->VideoClipInfo( iContainer->CurrentIndex()))->HasAudio()) - { - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoAdjustVolume ); - } - - if ( iMovie->VideoClipCount() < 2 ) - { - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditVideoMove ); - } - - if ( iMovie->VideoClipIsMuteable( iContainer->CurrentIndex()) == EFalse - ) - { - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditVideoMute ); - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditVideoUnmute ); - } - else if ( iMovie->VideoClipIsMuted( iContainer->CurrentIndex())) - { - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditVideoMute ); - } - else - { - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditVideoUnmute ); - } - // remove "cut" if video duration < 1 sec. because engine/codec(s) do not handle them wholly at the moment - TTimeIntervalMicroSeconds duration = iMovie->VideoClipInfo( - iContainer->CurrentIndex())->Duration(); - if ( duration.Int64() < KMinCutVideoLength ) - { - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditVideoCutting ); - } - } - - if ( aResourceId == R_VEI_EDIT_VIDEO_VIEW_MOVIE_SUBMENU ) - { - if ( STATIC_CAST( CVeiEditVideoLabelNavi* , - iEditLabel->DecoratedControl())->IsMMSAvailable()) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewTrimForMms, ETrue ); - } - - /*TInt tempint; - if (aMenuPane->MenuItemExists(EVeiCmdEditVideoMixAudio, tempint)) - { - if ((iMovie->VideoClipCount() > 0 && - (iMovie->VideoClipEditedHasAudio(0) && - iMovie->VideoClipEditedHasAudio(iMovie->VideoClipCount() - 1))) - && iMovie->AudioClipCount() > 0)*/ - if ( MixingConditionsOk()) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoMixAudio, EFalse ); - } - else - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoMixAudio, ETrue ); - } - //} - } - - if ( aResourceId == R_VEI_EDIT_VIDEO_VIEW_MENU ) - { - if ( iSendKey ) - //Display send menu. - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewInsert, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditVideo, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditAudio, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditImage, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewMovie, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewSettings, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditStartTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditMiddleTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditEndTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewHelp, ETrue ); - aMenuPane->SetItemDimmed( EEikCmdExit, ETrue ); - - ShowAndHandleSendMenuCommandsL(); - - iSendKey = EFalse; - return ; - } - - if ( iMovie->VideoClipCount() == 0 ) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditVideo, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditImage, ETrue ); - } - - - if ( iMovie->VideoClipCount() == 0 && iMovie->AudioClipCount() == 0 ) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditStartTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditMiddleTransition, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditEndTransition, ETrue ); - - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewMovie, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditAudio, ETrue ); - return ; - } - else - { - TInt index = 0; - - aMenuPane->ItemAndPos( EVeiCmdEditVideoViewHelp, index ); - iSendAppUi.AddSendMenuItemL( *aMenuPane, index, EVeiCmdEditVideoViewSend ); - } - /* Remove irrelevant "edit" menus. */ - - if ( iContainer->CursorLocation() != VideoEditor::ECursorOnClip ) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditVideo, ETrue ); - } - /* Checks if title or image */ - if (( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) && - ( iMovie->VideoClipCount() > 0 ) && - ( iMovie->VideoClipInfo( iContainer->CurrentIndex())->Class() - == EVedVideoClipClassGenerated - )) - { - /* Now refine the menu dimming to specific generators. */ - TUid generatorUid = iMovie->VideoClipInfo( - iContainer->CurrentIndex())->Generator()->Uid(); - - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditVideo, ETrue ); - if ( generatorUid == KUidImageClipGenerator ) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditImage, ETrue ) - ; - } - } - else - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditImage, ETrue ); - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - } - - - if ( iContainer->CurrentClipIsFile()) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - } - else - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditVideo, ETrue ); - } - - if ( iContainer->CursorLocation() != VideoEditor::ECursorOnTransition ) - { - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditStartTransition ) - ; - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditEndTransition ); - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewEditMiddleTransition - ); - } - if (( iContainer->CursorLocation() != VideoEditor::ECursorOnAudio ) || - ( iMovie->AudioClipCount() == 0 )) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditAudio, ETrue ); - } - - /* Remove irrelevant transition effect menus. */ - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - aMenuPane->SetItemDimmed( EVeiCmdEditVideoViewEditText, ETrue ); - } - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnTransition ) - { - if ( iContainer->CurrentIndex() == 0 ) - { - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewEditEndTransition ); - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewEditMiddleTransition ); - } - else if ( iContainer->CurrentIndex() < iMovie->VideoClipCount()) - { - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewEditStartTransition ); - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewEditEndTransition ); - } - else - { - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewEditStartTransition ); - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewEditMiddleTransition ); - } - } - } - - if ( aResourceId == R_VEI_EDIT_VIDEO_VIEW_EDIT_START_TRANSITION_SUBMENU ) - { - switch ( iMovie->StartTransitionEffect()) - { - case EVedStartTransitionEffectNone: - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewTransitionNone ); - break; - case EVedStartTransitionEffectFadeFromBlack: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionFadeFromBlack ); - break; - case EVedStartTransitionEffectFadeFromWhite: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionFadeFromWhite ); - break; - default: - break; - } - } - - if ( aResourceId == R_VEI_EDIT_VIDEO_VIEW_EDIT_END_TRANSITION_SUBMENU ) - { - switch ( iMovie->EndTransitionEffect()) - { - case EVedEndTransitionEffectNone: - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewTransitionNone ); - break; - case EVedEndTransitionEffectFadeToBlack: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionFadeToBlack ); - break; - case EVedEndTransitionEffectFadeToWhite: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionFadeToWhite ); - break; - default: - break; - } - } - - if ( aResourceId == R_VEI_EDIT_VIDEO_VIEW_EDIT_MIDDLE_TRANSITION_SUBMENU ) - { - TInt currentindex = iContainer->CurrentIndex() - 1; - switch ( iMovie->MiddleTransitionEffect( currentindex )) - { - case EVedMiddleTransitionEffectNone: - aMenuPane->DeleteMenuItem( EVeiCmdEditVideoViewTransitionNone ); - break; - case EVedMiddleTransitionEffectDipToBlack: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionDipToBlack ); - break; - case EVedMiddleTransitionEffectDipToWhite: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionDipToWhite ); - break; - case EVedMiddleTransitionEffectCrossfade: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionCrossfade ); - break; - case EVedMiddleTransitionEffectWipeLeftToRight: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionWipeFromLeft ); - break; - case EVedMiddleTransitionEffectWipeRightToLeft: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionWipeFromRight ); - break; - case EVedMiddleTransitionEffectWipeTopToBottom: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionWipeFromTop ); - break; - case EVedMiddleTransitionEffectWipeBottomToTop: - aMenuPane->DeleteMenuItem( - EVeiCmdEditVideoViewTransitionWipeFromBottom ); - break; - default: - break; - } - } - } - -void CVeiEditVideoView::HandleCommandL( TInt aCommand ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::HandleCommandL( %d ): In", aCommand ); - - // At the startup HandleCommandL may get called before iContainer - // has been constructed. - if ( !iContainer ) - { - LOG( KVideoEditorLogFile, "\tiContainer == NULL" ); - AppUi()->HandleCommandL( aCommand ); - return ; - } - - TInt index; - switch ( aCommand ) - { - /* Cursor is on transition and up/key key is pressed*/ - case EVeiCmdEditVideoViewTransitionKeyUp: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionKeyUp" ); - BrowseStartTransition( ETrue ); - break; - } - case EVeiCmdEditVideoViewTransitionKeyDown: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionKeyDown" ); - BrowseStartTransition( EFalse ); - break; - } - case EVeiCmdSendMovie: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdSendMovie" ); - if (( iMovie->VideoClipCount() == 0 ) && - ( iMovie->AudioClipCount() == 0 )) - { - iSendKey = EFalse; - } - else - { - MenuBar()->TryDisplayMenuBarL(); - } - break; - } - case EAknSoftkeyDone: - { - LOG( KVideoEditorLogFile, "\tEAknSoftkeyDone" ); - - /*if (CVeiEditVideoContainer::EModeMixingAudio == iContainer->SelectionMode()) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - //iContainer->ArrowsControl(); - break; - } - */ - - if ( CVeiEditVideoContainer::EModeMixingAudio == iContainer->SelectionMode()) - - { - - MixAudio(); - - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - - VideoEditor::TCursorLocation cursorLocation = iContainer->CursorLocation(); - if (( cursorLocation == VideoEditor::ECursorOnClip ) && - ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeSlowMotion )) - - { - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - iContainer->ArrowsControl(); - } - else - { - iOriginalAudioClipIndex = - 1; - iOriginalVideoClipIndex = - 1; - iOriginalAudioStartPoint = TTimeIntervalMicroSeconds( -1 ); - iOriginalAudioDuration = TTimeIntervalMicroSeconds( -1 ); - - - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - } - SetEditorState( EEdit ); - UpdateEditNaviLabel(); - - // Setting the cursor location resets the image in the video display box - iContainer->SetCursorLocation( cursorLocation ); - } - break; - } - - case EAknSoftkeyOk: - { - LOG( KVideoEditorLogFile, "\tEAknSoftkeyOk" ); - - if ( CVeiEditVideoContainer::EModeAdjustVolume == iContainer->SelectionMode()) - - { - AdjustVolumeL(); - SetEditorState( EEdit ); - } - - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - - if (( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) && - ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeSlowMotion )) - - { - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - iContainer->ArrowsControl(); - } - else - { - iOriginalAudioClipIndex = - 1; - iOriginalVideoClipIndex = - 1; - iOriginalAudioStartPoint = TTimeIntervalMicroSeconds( -1 ); - iOriginalAudioDuration = TTimeIntervalMicroSeconds( -1 ); - - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - } - UpdateEditNaviLabel(); - break; - } - case EAknSoftkeyCancel: - case EVeiCmdEditVideoMixAudioCancel: - { - LOG( KVideoEditorLogFile, "\tEAknSoftkeyCancel||EVeiCmdEditVideoMixAudioCancel" ); - - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - - SetEditorState( EEdit ); - - if ( CVeiEditVideoContainer::EModeMixingAudio == iContainer->SelectionMode() || - CVeiEditVideoContainer::EModeAdjustVolume == iContainer->SelectionMode()) - { - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - // Setting the cursor location resets the image in the video display box - iContainer->SetCursorLocation( iContainer->CursorLocation()); - break; - } - - if (( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) && - ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeSlowMotion )) - { - iMovie->VideoClipSetSpeed( iContainer->CurrentIndex(), iOriginalVideoSpeed ); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - - iContainer->ArrowsControl(); - } - else - { - if ( iContainer->CursorLocation() == VideoEditor - ::ECursorOnAudio ) - { - if ( iOriginalAudioStartPoint >= TTimeIntervalMicroSeconds( 0 )) - { - iMovie->AudioClipSetStartTime( iContainer->CurrentIndex(), iOriginalAudioStartPoint ); - iOriginalAudioStartPoint = TTimeIntervalMicroSeconds( -1 ); - iMovie->AudioClipSetCutOutTime( iContainer->CurrentIndex(), iOriginalAudioDuration ); - iOriginalAudioDuration = TTimeIntervalMicroSeconds( -1 ); - } - else - { - index = iContainer->CurrentIndex(); - - iContainer->SetCurrentIndex( iOriginalAudioClipIndex ); - iOriginalAudioClipIndex = - 1; - iOriginalAudioDuration = TTimeIntervalMicroSeconds( -1 ); - - iMovie->RemoveAudioClip( index ); - } - } - else - { - if ( iContainer->SelectionMode() != CVeiEditVideoContainer::EModeDuration ) - { - iMovie->VideoClipSetIndex( iContainer->CurrentIndex(), iOriginalVideoClipIndex ); - iContainer->SetVideoCursorPosition( iOriginalVideoClipIndex ); - iOriginalVideoClipIndex = - 1; - } - else - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - if ( info->Class() == EVedVideoClipClassGenerated ) - { - if ( info->Generator()->Uid() == KUidTitleClipGenerator ) - { - CVeiTitleClipGenerator* generator = - STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - generator->SetDuration( TTimeIntervalMicroSeconds( - iOriginalVideoCutOutTime.Int64() - - iOriginalVideoCutInTime.Int64())); - } - else if ( info->Generator()->Uid() == KUidImageClipGenerator ) - { - CVeiImageClipGenerator* generator = - STATIC_CAST( CVeiImageClipGenerator* , info->Generator()); - generator->SetDuration( TTimeIntervalMicroSeconds( - iOriginalVideoCutOutTime.Int64() - - iOriginalVideoCutInTime.Int64())); - } - } - } - } - } - - if ( iContainer->SelectionMode() == CVeiEditVideoContainer - ::EModePreview ) - { - iContainer->SetBlackScreen( EFalse ); - iContainer->SetRect( AppUi()->ClientRect()); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - iContainer->ArrowsControl(); - } - else - { - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - UpdateEditNaviLabel(); - } - break; - } - case EVeiCmdEditVideoViewSend: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewSend" ); - ShowAndHandleSendMenuCommandsL(); - break; - } - - case EVeiCmdEditVideoViewPreviewLarge: - case EVeiCmdEditVideoViewPreviewSmall: - { - LOG( KVideoEditorLogFile, - "\tEVeiCmdEditVideoViewPreviewLarge||EVeiCmdEditVideoViewPreviewSmall" ); - - if ( CVeiEditVideoContainer::EModeMixingAudio == iContainer->SelectionMode()) - { - MixAudio(); - } - - if ( IsEnoughFreeSpaceToSaveL()) - { - if ( aCommand == EVeiCmdEditVideoViewPreviewLarge ) - { - iFullScreenSelected = ETrue; - } - else - { - iFullScreenSelected = EFalse; - } - iWaitMode = EProcessingMoviePreview; - StartTempFileProcessingL(); - } - break; - } - - /** - * Trim for MMS - */ - case EVeiCmdEditVideoViewTrimForMms: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTrimForMms" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - iWaitMode = EProcessingMovieTrimMms; - StartTempFileProcessingL(); - } - break; - } - /** - * Cut (Audio and Video) - */ - case EVeiCmdEditVideoViewEditVideoCutting: - { - LOG( KVideoEditorLogFile, - "\tEVeiCmdEditVideoViewEditVideoCutting" ); - - if ( IsEnoughFreeSpaceToSaveL()) - { - // Cut video - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) - { - __ASSERT_ALWAYS( iMovie->VideoClipCount() > 0, - User::Panic( _L( "VideoEditor" ), 34 )); - - iCutVideoIndex = iContainer->CurrentIndex(); - iWaitMode = EProcessingMovieForCutting; - iOriginalCutInTime = iMovie->VideoClipCutInTime( iCutVideoIndex ); - iOriginalCutOutTime = iMovie->VideoClipCutOutTime( iCutVideoIndex ); - - iMovie->UnregisterMovieObserver( iContainer ); - iMovie->UnregisterMovieObserver( this ); - - AppUi()->DeactivateActiveViewL(); - - // set file name & clip - iCutView.SetVideoClipAndIndex( *iMovie, iCutVideoIndex ) - ; - - // activate cut view - AppUi()->ActivateLocalViewL( iCutView.Id()); - } - else if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - // Cut audio - { - __ASSERT_ALWAYS( iMovie->AudioClipCount() > 0, - User::Panic( _L( "VideoEditor" ), 34 )); - - iCutAudioIndex = iContainer->CurrentIndex(); - iWaitMode = ECuttingAudio; - iOriginalAudioCutInTime = iMovie->AudioClipCutInTime( iCutAudioIndex ); - iOriginalAudioCutOutTime = iMovie->AudioClipCutOutTime( iCutAudioIndex ); - - iMovie->UnregisterMovieObserver( iContainer ); - iMovie->UnregisterMovieObserver( this ); - - AppUi()->DeactivateActiveViewL(); - - // set file name & clip - iCutAudioView.SetVideoClipAndIndex( *iMovie, iCutAudioIndex ); - // activate cut view - AppUi()->ActivateLocalViewL( TUid::Uid( EVeiCutAudioView )); - } - } - break; - } - /** - * Selection (joystick). - */ - case EVeiCmdEditVideoViewContainerShowMenu: - { - LOG( KVideoEditorLogFile, - "\tEVeiCmdEditVideoViewContainerShowMenu" ); - - //preview popup - if ( iEditorState != EEdit ) - { - if ( iEditorState == CVeiEditVideoView::EQuickPreview ) - { - StopNaviPaneUpdateL(); - iContainer->PauseVideoL(); - LOG( KVideoEditorLogFile, - "\tEVeiCmdEditVideoViewContainerShowMenu, setting R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK" ); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK - ); - Cba()->DrawDeferred(); - } - MenuBar()->SetMenuTitleResourceId( R_VEI_PREVIEW_BAR ); - MenuBar()->TryDisplayMenuBarL(); - MenuBar()->SetMenuTitleResourceId( - R_VEI_MENUBAR_EDIT_VIDEO_VIEW ); - break; - } - switch ( iContainer->CursorLocation()) - { - case VideoEditor::ECursorOnAudio: - { - iPopup->ShowEditAudioPopupList(); - break; - } - case VideoEditor::ECursorOnClip: - { - if ( iMovie->VideoClipInfo( iContainer->CurrentIndex())->Class() == EVedVideoClipClassFile ) - { - iPopup->ShowEditVideoPopupList(); - } - else - { - - TUid generatorUid = iMovie->VideoClipInfo( - iContainer->CurrentIndex())->Generator()->Uid(); - if ( generatorUid == KUidImageClipGenerator ) - // Image - { - iPopup->ShowEditImagePopupList(); - } - else - // Text - { - iPopup->ShowEditTextPopupList(); - } - } - break; - } - /** - * Cursor on video transition. - */ - case VideoEditor::ECursorOnTransition: - { - if ( iContainer->CurrentIndex() == 0 ) - { - iPopup->ShowStartTransitionPopupListL(); - } - else if ( iContainer->CurrentIndex() < iMovie->VideoClipCount()) - { - iPopup->ShowMiddleTransitionPopupListL(); - } - else - { - iPopup->ShowEndTransitionPopupListL(); - } - break; - } - default: - break; - } - break; - } - case EVeiCmdEditVideoViewInsert: - case EVeiCmdEditVideoViewEditVideo: - case EVeiCmdEditVideoViewEditAudio: - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsert||EVeiCmdEditVideoViewEditVideo||EVeiCmdEditVideoViewEditAudio" ); - break; - case EVeiCmdEditVideoViewTransitionNone: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionNone" ); - - if ( iContainer->CurrentIndex() == 0 ) - { - iMovie->SetStartTransitionEffect( EVedStartTransitionEffectNone ); - } - else if ( iContainer->CurrentIndex() < iMovie->VideoClipCount()) - { - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectNone, index ); - } - else - { - iMovie->SetEndTransitionEffect( EVedEndTransitionEffectNone ); - } - break; - } - case EVeiCmdEditVideoViewTransitionFadeFromBlack: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionFadeFromBlack" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() == 0, User::Panic( _L( "VideoEditor" ), 34 )); - iMovie->SetStartTransitionEffect( EVedStartTransitionEffectFadeFromBlack ); - break; - } - case EVeiCmdEditVideoViewTransitionFadeFromWhite: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionFadeFromWhite" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() == 0, User::Panic( _L( "VideoEditor" ), 34 )); - iMovie->SetStartTransitionEffect( EVedStartTransitionEffectFadeFromWhite ); - break; - } - case EVeiCmdEditVideoViewTransitionDipToBlack: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionDipToBlack" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() < iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - __ASSERT_ALWAYS( iContainer->CurrentIndex() > 0, User::Panic( _L( "VideoEditor" ), 34 )); - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectDipToBlack, index ); - break; - } - case EVeiCmdEditVideoViewTransitionDipToWhite: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionDipToWhite" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() < iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - __ASSERT_ALWAYS( iContainer->CurrentIndex() > 0, User::Panic( _L( "VideoEditor" ), 34 )); - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectDipToWhite, index ); - break; - } - case EVeiCmdEditVideoViewTransitionCrossfade: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionCrossfade" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() < iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - __ASSERT_ALWAYS( iContainer->CurrentIndex() > 0, User::Panic( _L( "VideoEditor" ), 34 )); - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectCrossfade, index ); - break; - } - case EVeiCmdEditVideoViewTransitionWipeFromLeft: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionWipeFromLeft" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() < iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - __ASSERT_ALWAYS( iContainer->CurrentIndex() > 0, User::Panic( _L( "VideoEditor" ), 34 )); - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeLeftToRight, index ); - break; - } - case EVeiCmdEditVideoViewTransitionWipeFromRight: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionWipeFromRight" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() < iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - __ASSERT_ALWAYS( iContainer->CurrentIndex() > 0, User::Panic( _L( "VideoEditor" ), 34 )); - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeRightToLeft, index ); - break; - } - case EVeiCmdEditVideoViewTransitionWipeFromTop: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionWipeFromTop" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() < iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - __ASSERT_ALWAYS( iContainer->CurrentIndex() > 0, User::Panic( _L( "VideoEditor" ), 34 )); - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeTopToBottom, index ); - break; - } - case EVeiCmdEditVideoViewTransitionWipeFromBottom: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionWipeFromBottom" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() < iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - __ASSERT_ALWAYS( iContainer->CurrentIndex() > 0, User::Panic( _L( "VideoEditor" ), 34 )); - index = iContainer->CurrentIndex() - 1; - iMovie->SetMiddleTransitionEffect( EVedMiddleTransitionEffectWipeBottomToTop, index ); - break; - } - case EVeiCmdEditVideoViewTransitionFadeToBlack: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionFadeToBlack" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() == iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - iMovie->SetEndTransitionEffect( EVedEndTransitionEffectFadeToBlack ); - break; - } - case EVeiCmdEditVideoViewTransitionFadeToWhite: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewTransitionFadeToWhite" ); - __ASSERT_ALWAYS( iContainer->CurrentIndex() == iMovie->VideoClipCount(), User::Panic( _L( "VideoEditor" ), 34 )); - iMovie->SetEndTransitionEffect( EVedEndTransitionEffectFadeToWhite ); - break; - } - case EVeiCmdEditVideoViewEditStartTransition: - case EVeiCmdEditVideoViewEditMiddleTransition: - case EVeiCmdEditVideoViewEditEndTransition: - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditStartTransition||EVeiCmdEditVideoViewEditMiddleTransition||EVeiCmdEditVideoViewEditEndTransition" ); - break; - case EVeiCmdEditVideoViewSaveTo: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewSaveTo" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - TInt err; - TRAP( err, SaveL( EProcessingMovieSave )); - if ( err != KErrNone ) - { - ShowErrorNote( R_VEI_ERROR_NOTE ); - } - } - break; - } - case EVeiCmdEditVideoMixAudio: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoMixAudio" ); - SetEditorState( EMixAudio ); - break; - } - - case EVeiCmdEditVideoAdjustVolume: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoAdjustVolume" ); - SetEditorState( EAdjustVolume ); - break; - } - - case EVeiCmdEditVideoViewInsertVideo: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertVideo" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - __ASSERT_ALWAYS( iMediaQueue, User::Panic( _L( "CVeiEditVideoView" ), 1 )); - - if ( !iMediaQueue->ShowVideoClipDialogL( iContainer->CursorLocation(), iContainer->CurrentIndex())) - { - return ; - } - } - HandleScreenDeviceChangedL(); - break; - } - case EVeiCmdEditVideoDuplicate: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoDuplicate" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - TEntry fileinfo; - - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - - iWaitMode = EDuplicating; - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) - { - CVedVideoClipInfo* previousInfo = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - RFs& fs = iEikonEnv->FsSession(); - fs.Entry( previousInfo->FileName(), fileinfo ); - - if ( IsEnoughFreeSpaceToSaveL( fileinfo.iSize )) - { - iMovie->InsertVideoClipL( previousInfo->FileName(), iContainer->CurrentIndex() + 1 ); - } - } - else - { - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - CVedAudioClipInfo* currentInfo = iMovie->AudioClipInfo( iContainer->CurrentIndex()); - TTimeIntervalMicroSeconds currentDuration = iMovie->AudioClipEditedDuration( iContainer->CurrentIndex()); - - TInt currentIndex = iContainer->CurrentIndex(); - - for ( TInt i = iMovie->AudioClipCount() - 1; i > currentIndex; i-- ) - { - TTimeIntervalMicroSeconds oldStartTime = iMovie->AudioClipStartTime( i ); - iMovie->AudioClipSetStartTime( i, TTimeIntervalMicroSeconds( oldStartTime.Int64() + currentDuration.Int64())); - } - - TTimeIntervalMicroSeconds currentAudioClipEndTime = iMovie->AudioClipEndTime( currentIndex ); - TTimeIntervalMicroSeconds currentCutInTime = iMovie->AudioClipCutInTime( currentIndex ); - TTimeIntervalMicroSeconds currentCutOutTime = iMovie->AudioClipCutOutTime( currentIndex ); - iMovie->AddAudioClipL( currentInfo->FileName(), currentAudioClipEndTime, currentCutInTime, currentCutOutTime ); - } - } - } - break; - } - - /* - * Insert TITLE text * - */ - case EVeiCmdEditVideoViewInsertText: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertText" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - iPopup->ShowInsertTextPopupList(); - } - break; - } - - case EVeiCmdEditVideoViewInsertTextTitle: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertTextTitle" ); - - if ( IsEnoughFreeSpaceToSaveL()) - { - StoreOrientation(); - CleanupStack::PushL( TCleanupItem( CleanupRestoreOrientation, this )); - AppUi()->SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait ); - - TSize res = TSize( iMovie->Resolution()); - - CVeiTitleClipGenerator* generator = CVeiTitleClipGenerator::NewLC( res, - EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_TITLE_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - - /* Ask for text. */ - HBufC* text = HBufC::NewLC( KTitleScreenMaxTextLength ); - TPtr txtptr( text->Des()); - CAknTextQueryDialog* textQuery = CAknTextQueryDialog::NewL( txtptr ); - CleanupStack::PushL( textQuery ); - - textQuery->SetMaxLength( KTitleScreenMaxTextLength ); - //textQuery->SetPredictiveTextInputPermitted(ETrue); - CleanupStack::Pop( textQuery ); - - if ( !textQuery->ExecuteLD( R_VEI_EDITVIDEO_TITLESCREEN_TEXT_QUERY )) - { - CleanupStack::PopAndDestroy( text ); - CleanupStack::PopAndDestroy( generator ); - CleanupStack::PopAndDestroy( this ); // restore appui orientation - break; - } - - generator->SetTextL( *text ); - CleanupStack::PopAndDestroy( text ); - - /* Insert generator into the movie. */ - TInt err = 0; - index = ( iContainer->CurrentIndex() == iMovie->VideoClipCount()) ? iMovie->VideoClipCount(): iContainer->CurrentIndex() + 1; - TRAP( err, iMovie->InsertVideoClipL( *generator, ETrue, index )); - - CleanupStack::Pop( generator ); - User::LeaveIfError( err ); - - CleanupStack::PopAndDestroy( this ); // restore appui orientation - } - break; - } - /* - * Insert TITLE (fading) text * - */ - case EVeiCmdEditVideoViewInsertTextTitleFading: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertTextTitleFading" ); - - if ( IsEnoughFreeSpaceToSaveL()) - { - - StoreOrientation(); - CleanupStack::PushL( TCleanupItem( CleanupRestoreOrientation, this )); - AppUi()->SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait ); - - TSize res = TSize( iMovie->Resolution()); - CVeiTitleClipGenerator* generator = CVeiTitleClipGenerator::NewLC( res, - EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_TITLE_FADING_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionFade, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - /* Ask for text. */ - HBufC* text = HBufC::NewLC( KTitleScreenMaxTextLength ); - TPtr txtptr( text->Des()); - - CAknTextQueryDialog* textQuery = CAknTextQueryDialog::NewL( txtptr ); - CleanupStack::PushL( textQuery ); - - textQuery->SetMaxLength( KTitleScreenMaxTextLength ); - //textQuery->SetPredictiveTextInputPermitted(ETrue); - CleanupStack::Pop( textQuery ); - - if ( !textQuery->ExecuteLD( R_VEI_EDITVIDEO_TITLESCREEN_TEXT_QUERY )) - { - CleanupStack::PopAndDestroy( text ); - CleanupStack::PopAndDestroy( generator ); - CleanupStack::PopAndDestroy( this ); // restore appui orientation - break; - } - - generator->SetTextL( *text ); - CleanupStack::PopAndDestroy( text ); - - /* Insert generator into the movie. */ - TInt err = 0; - index = ( iContainer->CurrentIndex() == iMovie->VideoClipCount()) ? iMovie->VideoClipCount(): iContainer->CurrentIndex() + 1; - TRAP( err, iMovie->InsertVideoClipL( *generator, ETrue, index )); - CleanupStack::Pop( generator ); - User::LeaveIfError( err ); - - CleanupStack::PopAndDestroy( this ); // restore appui orientation - } - break; - } - /* - * Insert SUBTITLE text * - */ - case EVeiCmdEditVideoViewInsertTextSubTitle: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertTextSubTitle" ); - - if ( IsEnoughFreeSpaceToSaveL()) - { - StoreOrientation(); - CleanupStack::PushL( TCleanupItem( CleanupRestoreOrientation, this )); - AppUi()->SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait ); - - TSize res = TSize( iMovie->Resolution()); - CVeiTitleClipGenerator* generator = CVeiTitleClipGenerator::NewLC( res, - EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_SUBTITLE_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentLeft, - EVeiTitleClipVerticalAlignmentBottom ); - - /* Ask for text. */ - HBufC* text = HBufC::NewLC( KTitleScreenMaxTextLength ); - TPtr txtptr( text->Des()); - CAknTextQueryDialog* textQuery = CAknTextQueryDialog::NewL( txtptr ); - CleanupStack::PushL( textQuery ); - - textQuery->SetMaxLength( KTitleScreenMaxTextLength ); - //textQuery->SetPredictiveTextInputPermitted(ETrue); - CleanupStack::Pop( textQuery ); - - if ( !textQuery->ExecuteLD( R_VEI_EDITVIDEO_TITLESCREEN_TEXT_QUERY )) - { - CleanupStack::PopAndDestroy( text ); - CleanupStack::PopAndDestroy( generator ); - CleanupStack::PopAndDestroy( this ); // restore appui orientation - break; - } - - generator->SetTextL( *text ); - CleanupStack::PopAndDestroy( text ); - - /* Insert generator into the movie. */ - TInt err = 0; - index = ( iContainer->CurrentIndex() == iMovie->VideoClipCount()) ? iMovie->VideoClipCount(): iContainer->CurrentIndex() + 1; - TRAP( err, iMovie->InsertVideoClipL( *generator, ETrue, index )); - CleanupStack::Pop( generator ); - User::LeaveIfError( err ); - - CleanupStack::PopAndDestroy( this ); // restore appui orientation - } - break; - } - /* - * Insert SUBTITLE (fading) text * - */ - case EVeiCmdEditVideoViewInsertTextSubTitleFading: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertTextSubTitleFading" ); - - if ( IsEnoughFreeSpaceToSaveL()) - { - StoreOrientation(); - CleanupStack::PushL( TCleanupItem( CleanupRestoreOrientation, this )); - AppUi()->SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait ); - - TSize res = TSize( iMovie->Resolution()); - CVeiTitleClipGenerator* generator = CVeiTitleClipGenerator::NewLC( res, - EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_SUBTITLE_FADING_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionFade, - EVeiTitleClipHorizontalAlignmentLeft, - EVeiTitleClipVerticalAlignmentBottom ); - - /* Ask for text. */ - HBufC* text = HBufC::NewLC( KTitleScreenMaxTextLength ); - TPtr txtptr( text->Des()); - CAknTextQueryDialog* textQuery = CAknTextQueryDialog::NewL( txtptr ); - CleanupStack::PushL( textQuery ); - - textQuery->SetMaxLength( KTitleScreenMaxTextLength ); - //textQuery->SetPredictiveTextInputPermitted(ETrue); - CleanupStack::Pop( textQuery ); - - if ( !textQuery->ExecuteLD( R_VEI_EDITVIDEO_TITLESCREEN_TEXT_QUERY )) - { - CleanupStack::PopAndDestroy( text ); - CleanupStack::PopAndDestroy( generator ); - CleanupStack::PopAndDestroy( this ); // restore appui orientation - break; - } - - generator->SetTextL( *text ); - CleanupStack::PopAndDestroy( text ); - - /* Insert generator into the movie. */ - TInt err = 0; - index = ( iContainer->CurrentIndex() == iMovie->VideoClipCount()) ? iMovie->VideoClipCount(): iContainer->CurrentIndex() + 1; - TRAP( err, iMovie->InsertVideoClipL( *generator, ETrue, index )); - CleanupStack::Pop( generator ); - User::LeaveIfError( err ); - - CleanupStack::PopAndDestroy( this ); // restore appui orientation - } - break; - } - /* - * Insert CREDIT text * - */ - case EVeiCmdEditVideoViewInsertTextCredits: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertTextCredits" ); - - if ( IsEnoughFreeSpaceToSaveL()) - { - StoreOrientation(); - CleanupStack::PushL( TCleanupItem( CleanupRestoreOrientation, this )); - AppUi()->SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait ); - - TSize res = TSize( iMovie->Resolution()); - CVeiTitleClipGenerator* generator = CVeiTitleClipGenerator::NewLC( res, - EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_CREDITS_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionScrollBottomToTop, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - - /* Ask for text. */ - HBufC* text = HBufC::NewLC( KTitleScreenMaxTextLength ); - TPtr txtptr( text->Des()); - CAknTextQueryDialog* textQuery = CAknTextQueryDialog::NewL( txtptr ); - CleanupStack::PushL( textQuery ); - - textQuery->SetMaxLength( KTitleScreenMaxTextLength ); - //textQuery->SetPredictiveTextInputPermitted(ETrue); - CleanupStack::Pop( textQuery ); - - if ( !textQuery->ExecuteLD( R_VEI_EDITVIDEO_TITLESCREEN_TEXT_QUERY )) - { - CleanupStack::PopAndDestroy( text ); - CleanupStack::PopAndDestroy( generator ); - CleanupStack::PopAndDestroy( this ); - break; - } - generator->SetTextL( *text ); - CleanupStack::PopAndDestroy( text ); - - /* Insert generator into the movie. */ - TInt err = 0; - index = ( iContainer->CurrentIndex() == iMovie->VideoClipCount()) ? iMovie->VideoClipCount(): iContainer->CurrentIndex() + 1; - TRAP( err, iMovie->InsertVideoClipL( *generator, ETrue, index )); - CleanupStack::Pop( generator ); - User::LeaveIfError( err ); - - CleanupStack::PopAndDestroy( this ); // restore appui orientation - } - break; - } - - /* - * Edit Text * - */ - case EVeiCmdEditVideoViewEditTextMove: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextMove" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - - index = iContainer->CurrentIndex(); - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) - { - iOriginalVideoClipIndex = index; - } - else - { - User::Panic( _L( "VideoEditor" ), 34 ); - } - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeMove ); - UpdateEditNaviLabel(); - } - break; - } - case EVeiCmdEditVideoViewEditTextChangeDuration: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextChangeDuration" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - index = iContainer->CurrentIndex(); - - iOriginalVideoStartPoint = iMovie->VideoClipStartTime( index ); - iOriginalVideoCutInTime = iMovie->VideoClipCutInTime( index ); - iOriginalVideoCutOutTime = iMovie->VideoClipCutOutTime( index ); - - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeDuration ); - UpdateEditNaviLabel(); - } - break; - } - case EVeiCmdEditVideoViewEditTextChangeText: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextChangeText" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - StoreOrientation(); - CleanupStack::PushL( TCleanupItem( CleanupRestoreOrientation, this )); - AppUi()->SetOrientationL( CAknAppUiBase::EAppUiOrientationPortrait ); - - Cba()->DrawDeferred(); - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - HBufC* text = HBufC::NewLC( KTitleScreenMaxTextLength ); - *text = (( CVeiTitleClipGenerator* )info->Generator())->Text(); - - TPtr txtptr( text->Des()); - CAknTextQueryDialog* textQuery = CAknTextQueryDialog::NewL( txtptr ); - CleanupStack::PushL( textQuery ); - - textQuery->SetMaxLength( KTitleScreenMaxTextLength ); - //textQuery->SetPredictiveTextInputPermitted(ETrue); - CleanupStack::Pop( textQuery ); - - if ( !textQuery->ExecuteLD( R_VEI_EDITVIDEO_TITLESCREEN_TEXT_QUERY )) - { - CleanupStack::PopAndDestroy( text ); - CleanupStack::PopAndDestroy( this ); // restore appui orientation - break; - } - generator->SetTextL( *text ); - CleanupStack::PopAndDestroy( text ); - UpdateEditNaviLabel(); - - CleanupStack::PopAndDestroy( this ); // restore appui orientation - } - break; - } - - case EVeiCmdEditVideoViewEditTextSetTextColor: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextSetTextColor" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - - TRgb color = generator->TextColor(); - if ( !iPopup->ShowColorSelectorL( color )) - { - break; - } - generator->SetTextColorL( color ); - } - break; - } - case EVeiCmdEditVideoViewEditTextSetBackGround: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextSetBackGround" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - - // ask for color or image - TBool imageSelected; - TInt err = iPopup->ShowTitleScreenBackgroundSelectionPopupL( imageSelected ); - if ( err != KErrNone ) - { - break; - } - - if ( imageSelected ) - { - CDesCArrayFlat* selectedFiles = new( ELeave )CDesCArrayFlat( 1 ); - CleanupStack::PushL( selectedFiles ); - - CVeiMGFetchVerifier* mgFetchVerifier = CVeiMGFetchVerifier::NewLC(); - - if ( MGFetch::RunL( *selectedFiles, EImageFile, EFalse, mgFetchVerifier ) == EFalse ) - { - /* User cancelled the dialog. */ - CleanupStack::PopAndDestroy( mgFetchVerifier ); - CleanupStack::PopAndDestroy( selectedFiles ); - break; - } - - CleanupStack::PopAndDestroy( mgFetchVerifier ); - - if ( !iWaitDialog ) - { - iWaitDialog = new( ELeave )CAknWaitDialog( REINTERPRET_CAST( CEikDialog** , &iWaitDialog ), ETrue ); - iWaitDialog->ExecuteLD( R_VEI_WAIT_DIALOG_INSERTING_IMAGE ); - } - - - TRAP( err, generator->SetBackgroundImageL(( *selectedFiles )[0], * this )); - - if ( err ) - { - if ( iWaitDialog ) - { - CancelWaitDialog(); - } - ShowErrorNote( R_VEI_ERRORNOTE_IMAGE_INSERTING_FAILED ); - } - - CleanupStack::PopAndDestroy( selectedFiles ); - } - else - { - TRgb color = generator->BackgroundColor(); - if ( !iPopup->ShowColorSelectorL( color )) - { - break; - } - generator->SetBackgroundColorL( color ); - } - } - break; - } - case EVeiCmdEditVideoViewEditTextStyle: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextStyle" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - /* Ask for style. */ - iPopup->ShowTitleScreenStyleSelectionPopupL(); - } - break; - } - /* - * Edit text, AddColorEffect * - */ - case EVeiCmdEditVideoViewEditTextAddColorEffect: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextAddColorEffect" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - iPopup->ShowEffectSelectionPopupListL(); - } - break; - } - /* - * Edit text style * - */ - case EVeiCmdEditVideoViewEditTextStyleTitle: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextStyleTitle" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_TITLE_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - } - break; - } - case EVeiCmdEditVideoViewEditTextStyleTitleFading: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextStyleTitleFading" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_TITLE_FADING_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionFade, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - } - break; - } - case EVeiCmdEditVideoViewEditTextStyleSubTitle: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextStyleSubTitle" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_SUBTITLE_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionNone, - EVeiTitleClipHorizontalAlignmentLeft, - EVeiTitleClipVerticalAlignmentBottom ); - - } - break; - } - case EVeiCmdEditVideoViewEditTextStyleSubTitleFading: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextStyleSubTitleFading" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_SUBTITLE_FADING_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionFade, - EVeiTitleClipHorizontalAlignmentLeft, - EVeiTitleClipVerticalAlignmentBottom ); - } - break; - } - case EVeiCmdEditVideoViewEditTextStyleCredit: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextStyleCredit" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , info->Generator()); - - HBufC* descriptiveName = StringLoader::LoadLC( R_VEI_EDIT_VIEW_CREDITS_NAME, iEikonEnv ); - generator->SetDescriptiveNameL( *descriptiveName ); - CleanupStack::PopAndDestroy( descriptiveName ); - generator->SetTransitionAndAlignmentsL( EVeiTitleClipTransitionScrollBottomToTop, - EVeiTitleClipHorizontalAlignmentCenter, - EVeiTitleClipVerticalAlignmentCenter ); - } - break; - } - /* - * Edit text, Duplicate * - */ - case EVeiCmdEditVideoViewEditTextDuplicate: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditTextDuplicate" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* previousInfo = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - CVeiTitleClipGenerator* generator = STATIC_CAST( CVeiTitleClipGenerator* , previousInfo->Generator()); - - iWaitMode = EDuplicating; - - CVeiTitleClipGenerator* generator2 = CVeiTitleClipGenerator::NewLC( iMovie->Resolution(), - generator->Transition(), - generator->HorizontalAlignment(), - generator->VerticalAlignment()); - - generator2->SetDescriptiveNameL( generator->DescriptiveName()); - generator2->SetTransitionAndAlignmentsL( generator->Transition(), - generator->HorizontalAlignment(), - generator->VerticalAlignment() ); - generator2->SetTextL( generator->Text()); - generator2->SetTextColorL( generator->TextColor()); - - generator2->SetBackgroundColorL( generator->BackgroundColor()); - if ( generator->BackgroundImage()) - { - generator2->SetBackgroundImageL( generator->BackgroundImage()); - } - - generator2->SetDuration( generator->Duration()); - - TInt err = 0; - index = ( iContainer->CurrentIndex() == iMovie->VideoClipCount()) ? iMovie->VideoClipCount(): iContainer->CurrentIndex() + 1; - TRAP( err, iMovie->InsertVideoClipL( *generator2, ETrue, index )); - - CleanupStack::Pop( generator2 ); - User::LeaveIfError( err ); - } - break; - } - /** - * Insert Image - */ - case EVeiCmdEditVideoViewInsertImage: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertImage" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - TTimeIntervalMicroSeconds duration( 5000000 ); - - CDesCArrayFlat* selectedFiles = new( ELeave )CDesCArrayFlat( 1 ); - CleanupStack::PushL( selectedFiles ); - - CVeiMGFetchVerifier* mgFetchVerifier = CVeiMGFetchVerifier::NewLC(); - - if ( MGFetch::RunL( *selectedFiles, EImageFile, EFalse, mgFetchVerifier ) == EFalse ) - { - /* User cancelled the dialog. */ - CleanupStack::PopAndDestroy( mgFetchVerifier ); - CleanupStack::PopAndDestroy( selectedFiles ); - break; - } - - CleanupStack::PopAndDestroy( mgFetchVerifier ); - - if ( !iWaitDialog ) - { - iWaitDialog = new( ELeave )CAknWaitDialog( REINTERPRET_CAST( CEikDialog** , &iWaitDialog ), ETrue ); - iWaitDialog->ExecuteLD( R_VEI_WAIT_DIALOG_INSERTING_IMAGE ); - } - - RFs& fs = iEikonEnv->FsSession(); - - TRAPD( err, iGenerator = CVeiImageClipGenerator::NewL(( *selectedFiles )[0], - TSize( KMaxVideoFrameResolutionX, KMaxVideoFrameResolutionY ), - duration, - KRgbBlack, - KVideoClipGenetatorDisplayMode, - fs, - *this )); - if ( err ) - { - if ( iWaitDialog ) - { - CancelWaitDialog(); - } - ShowErrorNote( R_VEI_ERRORNOTE_IMAGE_INSERTING_FAILED ); - } - - CleanupStack::PopAndDestroy( selectedFiles ); - } - break; - } - - /** - * Edit Image * - */ - case EVeiCmdEditVideoViewEditImageMove: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditImageMove" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - - index = iContainer->CurrentIndex(); - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) - { - iOriginalVideoClipIndex = index; - } - else - { - User::Panic( _L( "VideoEditor" ), 34 ); - } - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeMove ); - UpdateEditNaviLabel(); - } - break; - } - - case EVeiCmdEditVideoViewEditImageChangeDuration: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditImageChangeDuration" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - index = iContainer->CurrentIndex(); - - iOriginalVideoStartPoint = iMovie->VideoClipStartTime( index ); - iOriginalVideoCutInTime = iMovie->VideoClipCutInTime( index ); - iOriginalVideoCutOutTime = iMovie->VideoClipCutOutTime( index ); - - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeDuration ); - UpdateEditNaviLabel(); - } - break; - } - case EVeiCmdEditVideoViewEditImageBackGround: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditImageBackGround" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - CVeiImageClipGenerator* generator = STATIC_CAST( CVeiImageClipGenerator* , info->Generator()); - - // ask for color - TRgb color = generator->BackgroundColor(); - if ( !iPopup->ShowColorSelectorL( color )) - { - break; - } - - generator->SetBackgroundColor( color ); - } - break; - } - case EVeiCmdEditVideoViewEditImageAddColorEffect: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditImageAddColorEffect" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - iPopup->ShowEffectSelectionPopupListL(); - } - break; - } - // * DUPLICATE Image * - case EVeiCmdEditVideoViewEditImageDuplicate: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditImageDuplicate" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - CVedVideoClipInfo* previousInfo = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - CVeiImageClipGenerator* generator = STATIC_CAST( CVeiImageClipGenerator* , previousInfo->Generator()); - - RFs& fs = iEikonEnv->FsSession(); - - iWaitMode = EDuplicating; - - iGenerator = CVeiImageClipGenerator::NewL( generator->ImageFilename(), - TSize( KMaxVideoFrameResolutionX, KMaxVideoFrameResolutionY ), - previousInfo->Duration(), - generator->BackgroundColor(), - KVideoClipGenetatorDisplayMode, - fs, - *this ); - } - break; - } - - /** - * Insert -> Sound clip - */ - case EVeiCmdEditVideoViewInsertAudio: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertAudio" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - if ( !iMediaQueue->ShowAudioClipDialogL()) - { - break; - } - } - HandleScreenDeviceChangedL(); - break; - } - /** - * Insert -> New sound clip - */ - case EVeiCmdEditVideoViewInsertNewAudio: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewInsertNewAudio" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - InsertNewAudio(); - } - break; - } - - case EVeiCmdEditVideoViewEditAudioSetDuration: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditAudioSetDuration" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - index = iContainer->CurrentIndex(); - - iOriginalAudioStartPoint = iMovie->AudioClipStartTime( index ); - iOriginalAudioDuration = iMovie->AudioClipEditedDuration( index ); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeDuration ); - UpdateEditNaviLabel(); - } - break; - } - case EVeiCmdEditVideoViewSettings: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewSettings" ); - AppUi()->ActivateLocalViewL( TUid::Uid( EVeiSettingsView )); - break; - } - case EVeiCmdEditVideoViewRecord: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewRecord" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - /* Set the mode, CBAs and Navi label. */ - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeRecording ); - - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY ); - Cba()->DrawDeferred(); - UpdateEditNaviLabel(); - - iRecordedAudioMaxDuration = TTimeIntervalMicroSeconds( - 1 ); - for ( TInt i = 0; i < iMovie->AudioClipCount(); i++ ) - { - - if ( iMovie->AudioClipStartTime( i ) > iContainer->RecordedAudioStartTime()) - { - TInt64 startTimeInt = iContainer->RecordedAudioStartTime().Int64(); - TInt64 nextStartTimeInt = iMovie->AudioClipStartTime( i ).Int64(); - iRecordedAudioMaxDuration = TTimeIntervalMicroSeconds( nextStartTimeInt - startTimeInt ); - break; - } - } - - iRecorder->RecordL(); - const TUint delay = 1000 * 1000 / 10; - - iAudioRecordPeriodic->Start( delay, delay, TCallBack( CVeiEditVideoView::UpdateAudioRecording, this )); - - iContainer->SetRecordedAudioDuration( TTimeIntervalMicroSeconds( 0 )); - } - break; - } - case EVeiCmdEditVideoViewRecordCancel: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewRecordCancel" ); - // cancel recording - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - iContainer->SetRecordedAudioStartTime( TTimeIntervalMicroSeconds( 0 )); - iContainer->SetCursorLocation( VideoEditor::ECursorOnAudio ); - Cba()->DrawDeferred(); - - UpdateEditNaviLabel(); - break; - } - /* - * Stop previewing - */ - case EVeiCmdPlayViewStop: - case EVeiCmdCutVideoViewStop: - case EVeiCmdEditVideoViewRecordStop: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdPlayViewStop||EVeiCmdCutVideoViewStop||EVeiCmdEditVideoViewRecordStop" ); - if ( EditorState() == EQuickPreview ) - { - iContainer->StopVideo( EFalse ); - iContainer->SetFinishedStatus( ETrue ); - StopNaviPaneUpdateL(); - LOG( KVideoEditorLogFile, "\tEVeiCmdPlayViewStop||EVeiCmdCutVideoViewStop||EVeiCmdEditVideoViewRecordStop, setting R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK" ); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK ); - Cba()->DrawDeferred(); - break; - } - - // stop recording - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - UpdateEditNaviLabel(); - - iRecorder->Stop(); - iAudioRecordPeriodic->Cancel(); - - if ( iAudioClipInfo ) - { - delete iAudioClipInfo; - iAudioClipInfo = NULL; - } - - iProgressNote = new( ELeave )CAknProgressDialog( REINTERPRET_CAST( CEikDialog** , &iProgressNote ), ETrue ); - - iProgressNote->SetCallback( this ); - iProgressNote->ExecuteDlgLD( R_VEI_PROGRESS_NOTE ); - HBufC* stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_INSERTING_AUDIO, iEikonEnv ); - CleanupStack::PushL( stringholder ); - - iProgressNote->SetTextL( *stringholder ); - CleanupStack::PopAndDestroy( this ); // stringholder - - iProgressNote->GetProgressInfoL()->SetFinalValue( 100 ); - iWaitMode = EOpeningAudioInfo; - - iAudioClipInfo = CVedAudioClipInfo::NewL( *iTempRecordedAudio, *this ); - break; - } - case EVeiCmdPlayViewPause: - case EVeiCmdEditVideoViewRecordPause: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdPlayViewPause||EVeiCmdEditVideoViewRecordPause" ); - if ( EditorState() == EQuickPreview ) - { - iContainer->PauseVideoL(); - StopNaviPaneUpdateL(); - - LOG( KVideoEditorLogFile, "\tEVeiCmdPlayViewPause||EVeiCmdEditVideoViewRecordPause, setting R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK" ); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK ); - Cba()->DrawDeferred(); - } - else - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY ); - Cba()->DrawDeferred(); - - // Pause recording - // Cba is set to CONTINUE_STOP in DoUpdateAudioRecording() - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeRecordingPaused ); - iRecorder->Stop(); - UpdateEditNaviLabel(); - } - break; - } - /* - * Preview continue: - */ - case EVeiCmdCutVideoViewPlay: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdCutVideoViewPlay" ); - - if ( !iUpdateTemp && !iTempFile && 1 == iMovie->VideoClipCount() ) - { - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModePreview ); - iContainer->PlayVideo( iMovie->VideoClipInfo( 0 )->DescriptiveName(), iFullScreenSelected ); - } - else - { - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModePreview ); - iContainer->PlayVideo( *iTempFile, iFullScreenSelected ); - } - - // @: think should this be put under condition play was started - // (actually play starts when "loadingComplete" event comes to NotifyVideoDisplayEvent - //StartNaviPaneUpdateL(); - break; - } - - case EVeiCmdCutVideoTakeSnapshot: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdCutVideoTakeSnapshot" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - iContainer->TakeSnapshotL(); - } - break; - } - - case EVeiCmdCutVideoViewContinue: - case EVeiCmdEditVideoViewContinue: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdCutVideoViewContinue||EVeiCmdEditVideoViewContinue" ); - if (( iRecorder->State() != CMdaAudioClipUtility::ERecording ) && - ( iRecorder->State() != CMdaAudioClipUtility::ENotReady ) ) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY ); - Cba()->DrawDeferred(); - - // Continue recording - iRecorder->RecordL(); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeRecording ); - - UpdateEditNaviLabel(); - } - break; - } - case EVeiCmdEditVideoViewEditAudioMove: - case EVeiCmdEditVideoViewEditVideoMove: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditAudioMove||EVeiCmdEditVideoViewEditVideoMove" ); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - - index = iContainer->CurrentIndex(); - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - iOriginalAudioStartPoint = iMovie->AudioClipStartTime( index ); - iOriginalAudioDuration = iMovie->AudioClipEditedDuration( index ); - } - else if ( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) - { - iOriginalVideoClipIndex = index; - } - else - { - User::Panic( _L( "VideoEditor" ), 34 ); - } - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeMove ); - UpdateEditNaviLabel(); - break; - } - /** - * Edit video clip -> Add colour effect - */ - case EVeiCmdEditVideoViewEditVideoColorEffect: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditVideoColorEffect" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - iPopup->ShowEffectSelectionPopupListL(); - } - break; - } - /** - * Use slow motion - */ - case EVeiCmdEditVideoViewEditVideoSlowMotion: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditVideoSlowMotion" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - iOriginalVideoSpeed = iMovie->VideoClipSpeed( iContainer->CurrentIndex()); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeSlowMotion ); - iContainer->SetSlowMotionStartValueL( iOriginalVideoSpeed ); - iContainer->ArrowsControl(); - } - break; - } - case EVeiCmdEditVideoViewEditVideoMute: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditVideoMute" ); - SetNewTempFileNeeded( ETrue ); - iMovie->VideoClipSetMuted( iContainer->CurrentIndex(), ETrue ); - break; - } - case EVeiCmdEditVideoViewEditVideoUnmute: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditVideoUnmute" ); - SetNewTempFileNeeded( ETrue ); - iMovie->VideoClipSetMuted( iContainer->CurrentIndex(), EFalse ); - break; - } - case EVeiCmdEditVideoViewEditAudioRemove: - case EVeiCmdEditVideoViewEditVideoRemove: - case EVeiCmdEditVideoViewEditTextRemove: - case EVeiCmdEditVideoViewEditImageRemove: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewEditAudioRemove||EVeiCmdEditVideoViewEditVideoRemove||EVeiCmdEditVideoViewEditTextRemove||EVeiCmdEditVideoViewEditImageRemove" ); - RemoveCurrentClipL(); - break; - } - /** - * Back - */ - case EAknSoftkeyBack: - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::HandleCommandL: EAknSoftkeyBack" ); - LOGFMT( KVideoEditorLogFile, "\tiFullScreenSelected: %d", iFullScreenSelected ); - - if ( EditorState() != EEdit || iFullScreenSelected ) - { - iFullScreenSelected = EFalse; - iContainer->StopVideo( ETrue ); - StopNaviPaneUpdateL(); - UpdateEditNaviLabel(); - break; - } - else if ( !iMovieSavedFlag && ( iMovie->VideoClipCount() > 0 || iMovie->AudioClipCount() > 0 )) - { - HBufC* saveConfirmationString; // String holding the text shown in dialog. - CAknQueryDialog* dlg; // Save confirmation dialog. - TInt saveEditedVideo; // Query result. - - saveConfirmationString = StringLoader::LoadLC( R_VEI_CONFIRM_EXIT_SAVE, iEikonEnv ); - dlg = new( ELeave )CAknQueryDialog( *saveConfirmationString, CAknQueryDialog::ENoTone ); - saveEditedVideo = dlg->ExecuteLD( R_VEI_CONFIRMATION_QUERY ); - - if ( !saveEditedVideo ) - // Do not save. - { - // Activate videos view. - AppUi()->HandleCommandL( EAknCmdExit ); - - iMovie->Reset(); - - iMovieSavedFlag = ETrue; // Movie is saved. - iMovieFirstAddFlag = ETrue; // True for the next edit process. - - AppUi()->HandleCommandL( aCommand ); - } - else - { - if ( SaveL( EProcessingMovieSaveThenQuit )) - // Quit after saving? - { - //iMovieSavedFlag = ETrue; // Movie is saved. - iMovieFirstAddFlag = ETrue; // True for the next edit process. - iWaitMode = EProcessingMovieSaveThenQuit; - } - } - - CleanupStack::PopAndDestroy( saveConfirmationString ); - } - // No changes to clip(s) or no clip(s) in time line. - else - { - // Remove all clips from edit view (for future use). - iMovie->Reset(); - - iMovieSavedFlag = ETrue; // Movie is saved. - iMovieFirstAddFlag = ETrue; // True for the next edit process. - AppUi()->HandleCommandL( aCommand ); - } - - break; - } - // - // Options->Help - // - case EVeiCmdEditVideoViewHelp: - { - LOG( KVideoEditorLogFile, "\tEVeiCmdEditVideoViewHelp" ); - // CS Help launching is handled in Video Editor's AppUi. - AppUi()->HandleCommandL( EVeiCmdEditVideoViewHelp ); - break; - } - /** - * Exit - */ - case EEikCmdExit: - { - LOG( KVideoEditorLogFile, "\tEEikCmdExit" ); - // Edited movie is not saved yet and there are video or audio clip(s) at the time line. - if ( !iMovieSavedFlag && ( iMovie->VideoClipCount() > 0 || iMovie->AudioClipCount() > 0 )) - { - HBufC* stringholder; // String holding the text shown in dialog. - - CAknQueryDialog* dlg; // Save confirmation dialog. - TInt queryok; // Query result. - - stringholder = StringLoader::LoadLC( R_VEI_CONFIRM_EXIT_SAVE, iEikonEnv ); - - dlg = new( ELeave )CAknQueryDialog( *stringholder, CAknQueryDialog::ENoTone ); - queryok = dlg->ExecuteLD( R_VEI_CONFIRMATION_QUERY ); - - if ( !queryok ) - { - iMovie->Reset(); - AppUi()->HandleCommandL( aCommand ); - } - else - { - SaveL( EProcessingMovieSaveThenQuit ); - iWaitMode = EProcessingMovieSaveThenQuit; - } - - CleanupStack::PopAndDestroy( stringholder ); - } - else - // No changes to clip(s) or no clip(s) in time line. - { - iMovie->Reset(); // Remove all clips from edit view. - AppUi()->HandleCommandL( aCommand ); // Let appUi handle the exit. - } - break; - } - default: - { - LOG( KVideoEditorLogFile, "\tdefault" ); - AppUi()->HandleCommandL( aCommand ); - break; - } - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::HandleCommandL: Out" ); - } - -void CVeiEditVideoView::HandleResourceChange( TInt aType ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::HandleResourceChange() In, aType:%d", aType ); - - if ( KAknsMessageSkinChange == aType ) - { - // Handle skin change in the navi label controls - they do not receive - // it automatically since they are not in the control stack - iPreviewLabel->DecoratedControl()->HandleResourceChange( aType ); - iEditLabel->DecoratedControl()->HandleResourceChange( aType ); - iVolumeNavi->DecoratedControl()->HandleResourceChange( aType ); - iMoveLabel->DecoratedControl()->HandleResourceChange( aType ); - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::HandleResourceChange() Out" ); - } - -void CVeiEditVideoView::SetEditorState( TEditorState aState ) - { - LOGFMT3( KVideoEditorLogFile, "CVeiEditVideoView::SetEditorState: in, aState:%d, iEditorState:%d, iFullScreenSelected:%d", aState, iEditorState, iFullScreenSelected ); - - CAknTitlePane* titlePane; - CEikStatusPane* statusPane; - TResourceReader reader1; - - iEditorState = aState; - - switch ( aState ) - { - case EPreview: - /* - if ( iFullScreenSelected ) - { - // @: this need more elaborating - // problem is: after large preview signal and battery pane are black in some phone models - //statusPane = ( ( CAknAppUi* )iEikonEnv->EikAppUi() )->StatusPane(); - //statusPane ->MakeVisible( EFalse ); - Cba()->MakeVisible( EFalse ); - Cba()->DrawDeferred(); - } - else - { - iEditorState = EQuickPreview; - statusPane = ( ( CAknAppUi* )iEikonEnv->EikAppUi() )->StatusPane(); - - titlePane = (CAknTitlePane*) statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ); - iCoeEnv->CreateResourceReaderLC( reader1, R_VEI_PREVIEW_VIEW_TITLE_NAME ); - titlePane->SetFromResourceL( reader1 ); - CleanupStack::PopAndDestroy(); //reader1 - - LOG(KVideoEditorLogFile, "CVeiEditVideoView::SetEditorState, 1, setting R_VEI_SOFTKEYS_PREVIEW_PAUSE_BACK"); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PREVIEW_PAUSE_BACK ); - Cba()->DrawDeferred(); - } - */ - Cba()->MakeVisible( EFalse ); - Cba()->DrawDeferred(); - break; - case EQuickPreview: - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::SetEditorState: 2, iContainer->PreviewState():%d", iContainer->PreviewState()); - statusPane = (( CAknAppUi* )iEikonEnv->EikAppUi())->StatusPane(); - - titlePane = ( CAknTitlePane* )statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle )); - iCoeEnv->CreateResourceReaderLC( reader1, R_VEI_PREVIEW_VIEW_TITLE_NAME ); - titlePane->SetFromResourceL( reader1 ); - CleanupStack::PopAndDestroy(); //reader1 - - if (( iContainer->PreviewState() == CVeiEditVideoContainer::EStatePaused ) || - ( iContainer->PreviewState() == CVeiEditVideoContainer::EStateStopped )) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SetEditorState, 3, setting R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK" ); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK ); - } - else if (( iContainer->PreviewState() == CVeiEditVideoContainer::EStateOpening ) || - ( iContainer->PreviewState() == CVeiEditVideoContainer::EStateGettingFrame ) || - ( iContainer->PreviewState() == CVeiEditVideoContainer::EStateBuffering )) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SetEditorState, 4, setting R_AVKON_SOFTKEYS_EMPTY" ); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY ); - } - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SetEditorState, 5, setting R_VEI_SOFTKEYS_PREVIEW_PAUSE_BACK" ); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PREVIEW_PAUSE_BACK ); - } - Cba()->DrawDeferred(); - break; - } - case EEdit: - iContainer->SetRect( AppUi()->ClientRect()); - statusPane = (( CAknAppUi* )iEikonEnv->EikAppUi())->StatusPane(); - // @: this needs more elaborating - //statusPane ->MakeVisible( ETrue ); - - titlePane = ( CAknTitlePane* )statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle )); - iCoeEnv->CreateResourceReaderLC( reader1, R_VEI_EDIT_VIDEO_VIEW_TITLE_NAME ); - titlePane->SetFromResourceL( reader1 ); - CleanupStack::PopAndDestroy(); //reader1 - - Cba()->MakeVisible( ETrue ); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - break; - - case EMixAudio: - iContainer->SetRect( AppUi()->ClientRect()); - statusPane = (( CAknAppUi* )iEikonEnv->EikAppUi())->StatusPane(); - - titlePane = ( CAknTitlePane* )statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle )); - iCoeEnv->CreateResourceReaderLC( reader1, R_VEI_AUDIO_MIX_VIEW_TITLE_NAME ); - titlePane->SetFromResourceL( reader1 ); - CleanupStack::PopAndDestroy(); //reader1 - - Cba()->MakeVisible( ETrue ); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_DONE ); - Cba()->DrawDeferred(); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeMixingAudio ); - - break; - - case EAdjustVolume: - iContainer->SetRect( AppUi()->ClientRect()); - statusPane = (( CAknAppUi* )iEikonEnv->EikAppUi())->StatusPane(); - - titlePane = ( CAknTitlePane* )statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle )); - iCoeEnv->CreateResourceReaderLC( reader1, R_VEI_ADJUST_VOLUME_VIEW_TITLE_NAME ); - titlePane->SetFromResourceL( reader1 ); - CleanupStack::PopAndDestroy(); //reader1 - - Cba()->MakeVisible( ETrue ); - //Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_DONE); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OK_CANCEL ); - Cba()->DrawDeferred(); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeAdjustVolume ); - - break; - - - default: - { - break; - } - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SetEditorState: Out" ); - } - - -void CVeiEditVideoView::SendMovieL() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL() -- SENDING" ); - - TEntry fileinfo; - - RFs& fs = iEikonEnv->FsSession(); - // Rename movie from xxxx.$$$ to defaultfilename from settingsview. - // looks better in attachment list.. - - // Get default movie name from settings view - - TPtr temppeet = iTempFile->Des(); - - TParse parse; - parse.Set( iMovieSaveSettings.DefaultVideoName(), &temppeet, NULL ); - - TFileName orgPathAndName = parse.FullName(); - - TVedVideoFormat movieQuality = iMovie->Format(); - if ( movieQuality == EVedVideoFormatMP4 ) - { - orgPathAndName.Replace( orgPathAndName.Length() - 4, 4, KExtMp4 ); - } - else - { - orgPathAndName.Replace( orgPathAndName.Length() - 4, 4, KExt3gp ); - } - - fs.Replace( *iTempFile, orgPathAndName ); - iTempFile->Des() = orgPathAndName; - - fs.Entry( *iTempFile, fileinfo ); - - DEBUGLOG_ARG( TInt tempFileSize = fileinfo.iSize / 1024 ); - LOGFMT3( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL() 1, iWaitMode:%d, tempFileSize:%d, ValidateServiceL:%d", iWaitMode, tempFileSize, iSendAppUi.ValidateServiceL( iGivenSendCommand, TSendingCapabilities( 0, tempFileSize, TSendingCapabilities::ESupportsAttachments ))); - - if ( EProcessingMovieSend == iWaitMode - /*&& (iSendAppUi.ValidateServiceL( - iGivenSendCommand, - TSendingCapabilities( 0, - tempFileSize, - TSendingCapabilities::ESupportsAttachments ) ) ) */ ) - { - RFs shareFServer; - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL: shareFServer connect." ); - - User::LeaveIfError( shareFServer.Connect()); - shareFServer.ShareProtected(); - CleanupClosePushL < RFs > ( shareFServer ); - - RFile openFileHandle; - - TInt err = openFileHandle.Open( shareFServer, * iTempFile, EFileRead | EFileShareReadersOnly ); - if ( KErrNone != err ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL 2: Could not open file %S with EFileShareReadersOnly. Trying EFileShareAny", iTempFile ); - User::LeaveIfError( openFileHandle.Open( shareFServer, * iTempFile, EFileRead | EFileShareAny )); - } - - CMessageData* messageData = CMessageData::NewLC(); - messageData->AppendAttachmentHandleL( openFileHandle ); - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL() 3" ); - - iSendAppUi.CreateAndSendMessageL( iGivenSendCommand, messageData, KNullUid, EFalse ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL() 4" ); - CleanupStack::PopAndDestroy( messageData ); - - CleanupStack::PopAndDestroy( &shareFServer ); // shareFServer.Close(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL 5: shareFServer closed." ); - } - - DoUpdateEditNaviLabelL(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SendMovieL() Out" ); - } - - -void CVeiEditVideoView::StartTempFileProcessingL() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL: In" ); - - RFs& fs = iEikonEnv->FsSession(); - - TBool fileExists( ETrue ); - if ( iTempFile ) - { - fileExists = BaflUtils::FileExists( fs, * iTempFile ); - } - - /* to save from unnecessary processing before preview - prerequisites: - -user selected preview - -no movie modifying actions taken by user before preview (iUpdateTemp is EFalse) - */ - if ( EProcessingMoviePreview == iWaitMode && !iUpdateTemp && !iTempFile && 1 == iMovie->VideoClipCount()) - { - if ( iFullScreenSelected ) - { - iContainer->SetBlackScreen( ETrue ); - iContainer->SetRect( AppUi()->ApplicationRect()); - } - - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModePreview ); - iContainer->PlayVideoFileL( iMovie->VideoClipInfo( 0 )->DescriptiveName(), iFullScreenSelected ); - } - else if ( EProcessingMovieTrimMms == iWaitMode && !iUpdateTemp && !iTempFile && 1 == iMovie->VideoClipCount() && !FitsToMmsL()) - { - /* - Read documentation of FitsToMmsL() in the header file - */ - TBuf8 < KMaxFileName > conv8Filename; - CnvUtfConverter::ConvertFromUnicodeToUtf8( conv8Filename, iMovie->VideoClipInfo( 0 )->DescriptiveName()); - iMovie->UnregisterMovieObserver( iContainer ); - iMovie->UnregisterMovieObserver( this ); - AppUi()->ActivateLocalViewL( TUid::Uid( EVeiTrimForMmsView ), TUid::Uid( 0 ), conv8Filename ); - } - else if ( iUpdateTemp || !fileExists || ( !iTempFile )) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL() 1, -- NEW TEMP" ); - - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY ); - Cba()->DrawDeferred(); - if ( iTempFile && fileExists ) - { - User::LeaveIfError( fs.Delete( *iTempFile )); - delete iTempFile; - iTempFile = NULL; - } - - if ( !IsEnoughFreeSpaceToSaveL()) // modifies iMemoryInUse - { - return ; - } - - iTempFile = HBufC::NewL( KMaxFileName ); - iTempMaker->GenerateTempFileName( *iTempFile, iMemoryInUse, iMovie->Format()); - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL 2, iTempFile:%S", iTempFile ); - - TVeiSettings movieSaveSettings; - - STATIC_CAST( CVeiAppUi* , AppUi())->ReadSettingsL( movieSaveSettings ); - - TInt settingsSaveQuality = movieSaveSettings.SaveQuality(); - CVedMovie::TVedMovieQuality saveQuality; - - switch ( settingsSaveQuality ) - { - case TVeiSettings::EMmsCompatible: - { - saveQuality = CVedMovie::EQualityMMSInteroperability; - break; - } - case TVeiSettings::EMedium: - { - saveQuality = CVedMovie::EQualityResolutionMedium; - break; - } - case TVeiSettings::EBest: - { - saveQuality = CVedMovie::EQualityResolutionHigh; - break; - } - case TVeiSettings::EAuto: default: - { - saveQuality = CVedMovie::EQualityAutomatic; - break; - } - } - - iMovie->SetQuality( saveQuality ); - iBackupSaveQuality = saveQuality; - - if ( EProcessingMovieTrimMms == iWaitMode ) - { - if ( saveQuality != CVedMovie::EQualityMMSInteroperability ) - { - iMovie->SetQuality( CVedMovie::EQualityMMSInteroperability ); - SetNewTempFileNeeded( ETrue ); - } - else - { - SetNewTempFileNeeded( EFalse ); - } - } - - TInt err; - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL 3, calling iMovie->Process(%S)", iTempFile ); - TRAP( err, iMovie->ProcessL( *iTempFile, * this )); - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL 4, err:%d", err ); - if ( err ) - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - ShowGlobalErrorNote( err ); - } - } - else - /* use old temp file*/ - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL() 5, -- OLD TEMP" ); - if ( EProcessingMovieSend == iWaitMode ) - { - SendMovieL(); - } - else if ( EProcessingMovieTrimMms == iWaitMode ) - { - if ( iMovie->IsMovieMMSCompatible()) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL 6, MMS COMPATIBLE" ); - - TEntry entry; - User::LeaveIfError( fs.Entry( *iTempFile, entry )); - TInt tempFileSize = entry.iSize / 1024; - TInt maxMmsSize = STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->GetMaxMmsSize(); - - if ( tempFileSize < maxMmsSize ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL() 7, -- MMS SIZE OK" ); - iWaitMode = EProcessingMovieSend; - SendMovieL(); - } - else - { - SetNewTempFileNeeded( EFalse ); - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL() 8, -- TRIM MMS" ); - - TBuf8 < KMaxFileName > conv8Filename; - CnvUtfConverter::ConvertFromUnicodeToUtf8( conv8Filename, * iTempFile ); - iMovie->UnregisterMovieObserver( iContainer ); - iMovie->UnregisterMovieObserver( this ); - AppUi()->ActivateLocalViewL( TUid::Uid( EVeiTrimForMmsView ), TUid::Uid( 0 ), conv8Filename ); - } - } - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL() 9, -- NO MMS COMPATIBLE" ); - - TInt err; - if ( EProcessingMovieTrimMms == iWaitMode ) - { - iMovie->SetQuality( CVedMovie::EQualityMMSInteroperability ); - } - - TRAP( err, iMovie->ProcessL( *iTempFile, * this )); - - if ( err ) - { - ShowGlobalErrorNote( err ); - } - } - } - else if ( EProcessingMoviePreview == iWaitMode ) - { - if ( iFullScreenSelected ) - { - iContainer->SetBlackScreen( ETrue ); - iContainer->SetRect( AppUi()->ApplicationRect()); - } - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModePreview ); - iContainer->PlayVideoFileL( *iTempFile, iFullScreenSelected ); - } - else if (( EProcessingMovieSave == iWaitMode ) || ( EProcessingMovieSaveThenQuit == iWaitMode )) - { - CFileMan* fileman = CFileMan::NewL( fs ); - CleanupStack::PushL( fileman ); - - if ( iTempFile->Left( 1 ) == iSaveToFileName->Left( 1 )) - { - fileman->Rename( *iTempFile, * iSaveToFileName ); - } - else - { - fileman->Move( *iTempFile, * iSaveToFileName ); - } - - CleanupStack::PopAndDestroy( fileman ); - - HBufC* stringholder = StringLoader::LoadL( R_VEI_NOTE_VIDEO_SAVED, iEikonEnv ); - CleanupStack::PushL( stringholder ); - iWaitMode = ENotWaiting; - ShowInformationNoteL( *stringholder ); - iMovieSavedFlag = ETrue; - CleanupStack::PopAndDestroy( stringholder); - - UpdateMediaGalleryL(); - } - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StartTempFileProcessingL: Out" ); - } - -void CVeiEditVideoView::InsertNewAudio() - { - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY ); - Cba()->DrawDeferred(); - - iContainer->SetRecordedAudio( ETrue ); - - TInt64 startTimeInt = 0; - TInt64 durationInt = 1000000; - TInt currIndex( 0 ); - - if ((( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) || - ( iContainer->CursorLocation() == VideoEditor::ECursorOnEmptyAudioTrack )) && - ( iMovie->AudioClipCount() > 0 )) - { - currIndex = iContainer->CurrentIndex() + 1; - startTimeInt = iMovie->AudioClipEndTime( iContainer->CurrentIndex()).Int64(); - } - else - { - currIndex = iMovie->AudioClipCount() - 1; - if ( currIndex >= 0 ) - { - startTimeInt = iMovie->AudioClipEndTime( currIndex ).Int64(); - } - else - { - currIndex = 0; - } - } - - while ( currIndex < iMovie->AudioClipCount()) - { - // safety margin: it is not possible to insert new audio if there is less than 1s between clips - TInt64 adjustedClipStartTimeInt = iMovie->AudioClipStartTime( currIndex ).Int64() - 1000000; - - if ( startTimeInt > adjustedClipStartTimeInt ) - { - startTimeInt = iMovie->AudioClipEndTime( currIndex ).Int64(); - currIndex++; - } - else - { - break; - } - } - - if ( currIndex < iMovie->AudioClipCount()) - { - TInt64 endTimeInt = startTimeInt + durationInt; - TInt64 nextStartTimeInt = iMovie->AudioClipStartTime( currIndex ).Int64(); - - if ( endTimeInt > nextStartTimeInt ) - { - durationInt = nextStartTimeInt - startTimeInt; - } - } - - iContainer->SetRecordedAudioStartTime( TTimeIntervalMicroSeconds( startTimeInt )); - iContainer->SetRecordedAudioDuration( TTimeIntervalMicroSeconds( durationInt )); - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeRecordingSetStart ); - iContainer->SetCursorLocation( VideoEditor::ECursorOnAudio ); - - UpdateEditNaviLabel(); - - /* Create temp file. */ - if ( iTempRecordedAudio ) - { - delete iTempRecordedAudio; - iTempRecordedAudio = NULL; - } - - iTempRecordedAudio = HBufC::NewL( KMaxFileName ); - iTempMaker->GenerateTempFileName( *iTempRecordedAudio, iMemoryInUse, iMovie->Format(), ETrue ); - - /* Open the file, this is asynchronous so we'll come to our callback. */ - iRecorder->OpenFileL( *iTempRecordedAudio ); - } - -TBool CVeiEditVideoView::IsEnoughFreeSpaceToSaveL( TInt aBytesToAdd )const - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::IsEnoughFreeSpaceToSaveL: in" ); - RFs& fs = iEikonEnv->FsSession(); - - TBool spaceBelowCriticalLevel( EFalse ); - - TInt sizeEstimate = iMovie->GetSizeEstimateL(); - sizeEstimate += aBytesToAdd; - - if ( iEditorState == EQuickPreview ) - { - TInt snapShotSize = iContainer->SnapshotSize(); - if ( snapShotSize != 0 ) - { - sizeEstimate = snapShotSize; - } - } - - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::IsEnoughFreeSpaceToSaveL: 2, needed space: %d", sizeEstimate ); - - if ( iMemoryInUse == CAknMemorySelectionDialog::EPhoneMemory ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::IsEnoughFreeSpaceToSaveL: " ); - spaceBelowCriticalLevel = SysUtil::DiskSpaceBelowCriticalLevelL( &fs, sizeEstimate, EDriveC ); - } - else - { - LOG( KVideoEditorLogFile, "\tMmc selected" ); - - spaceBelowCriticalLevel = SysUtil::MMCSpaceBelowCriticalLevelL( &fs, sizeEstimate ); - } - - if ( spaceBelowCriticalLevel ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::IsEnoughFreeSpaceToSaveL: 3, space is below critical level" ); - ShowErrorNote( R_VEI_MEMORY_RUNNING_OUT ); - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::IsEnoughFreeSpaceToSaveL out" ); - - return !spaceBelowCriticalLevel; - } - - -TBool CVeiEditVideoView::IsEnoughFreeSpaceToSave2L( TInt aBytesToAdd )const - { - RFs& fs = iEikonEnv->FsSession(); - TBool spaceBelowCriticalLevel( EFalse ); - TInt sizeEstimate = iMovie->GetSizeEstimateL(); - sizeEstimate += aBytesToAdd; - - if ( iMemoryInUse == CAknMemorySelectionDialog::EPhoneMemory ) - { - spaceBelowCriticalLevel = SysUtil::DiskSpaceBelowCriticalLevelL( &fs, sizeEstimate, EDriveC ); - } - else - { - spaceBelowCriticalLevel = SysUtil::MMCSpaceBelowCriticalLevelL( &fs, sizeEstimate ); - } - - if ( !spaceBelowCriticalLevel ) - { - return ETrue; - } - else - { - return EFalse; - } - } - -TBool CVeiEditVideoView::FitsToMmsL() - { - /* - Read documentation of FitsToMmsL() in the header file - */ - LOG( KVideoEditorLogFile, "CVeiEditVideoView::FitsToMmsL() in" ); - TInt maxMmsSize = STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->GetMaxMmsSize(); - - CVedMovie::TVedMovieQuality origQuality = iMovie->Quality(); - iMovie->SetQuality( CVedMovie::EQualityMMSInteroperability ); - TInt videoTimeLineSize = iMovie->GetSizeEstimateL() / 1024; - iMovie->SetQuality( origQuality ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::FitsToMmsL() out" ); - videoTimeLineSize = videoTimeLineSize * 1.1; - return videoTimeLineSize < maxMmsSize; - } - -void CVeiEditVideoView::BrowseStartTransition( TBool aUpOrDown ) - { - TInt currentEffect; - TInt currentIndex = iContainer->CurrentIndex(); - - if ( currentIndex == 0 ) - { - currentEffect = iMovie->StartTransitionEffect(); - if ( aUpOrDown ) - { - if ( !( TVedStartTransitionEffect( currentEffect - 1 ) < EVedStartTransitionEffectNone )) - { - iMovie->SetStartTransitionEffect( TVedStartTransitionEffect( currentEffect - 1 )); - } - else - { - iMovie->SetStartTransitionEffect( TVedStartTransitionEffect( EVedStartTransitionEffectLast - 1 )); - } - } - else - { - if ( !( TVedStartTransitionEffect( currentEffect + 1 ) >= EVedStartTransitionEffectLast )) - { - iMovie->SetStartTransitionEffect( TVedStartTransitionEffect( currentEffect + 1 )); - } - else - { - iMovie->SetStartTransitionEffect( TVedStartTransitionEffect( EVedStartTransitionEffectNone )); - } - } - } - else if ( currentIndex < iMovie->VideoClipCount()) - { - currentEffect = iMovie->MiddleTransitionEffect( currentIndex - 1 ); - - if ( aUpOrDown ) - { - if ( !( TVedMiddleTransitionEffect( currentEffect - 1 ) < EVedMiddleTransitionEffectNone )) - { - iMovie->SetMiddleTransitionEffect( TVedMiddleTransitionEffect( currentEffect - 1 ), currentIndex - 1 ); - } - else - { - iMovie->SetMiddleTransitionEffect( TVedMiddleTransitionEffect( EVedMiddleTransitionEffectLast - 1 ), currentIndex - 1 ); - } - } - else - { - if ( !( TVedMiddleTransitionEffect( currentEffect + 1 ) >= EVedMiddleTransitionEffectLast )) - { - iMovie->SetMiddleTransitionEffect( TVedMiddleTransitionEffect( currentEffect + 1 ), currentIndex - 1 ); - } - else - { - iMovie->SetMiddleTransitionEffect( TVedMiddleTransitionEffect( EVedMiddleTransitionEffectNone ), currentIndex - 1 ); - } - } - } - else - { - currentEffect = iMovie->EndTransitionEffect(); - - if ( aUpOrDown ) - { - if ( !( TVedEndTransitionEffect( currentEffect - 1 ) < EVedEndTransitionEffectNone )) - { - iMovie->SetEndTransitionEffect( TVedEndTransitionEffect( currentEffect - 1 )); - } - else - { - iMovie->SetEndTransitionEffect( TVedEndTransitionEffect( EVedEndTransitionEffectLast - 1 )); - } - } - else - { - if ( !( TVedEndTransitionEffect( currentEffect + 1 ) >= EVedEndTransitionEffectLast )) - { - iMovie->SetEndTransitionEffect( TVedEndTransitionEffect( currentEffect + 1 )); - } - else - { - iMovie->SetEndTransitionEffect( TVedEndTransitionEffect( EVedEndTransitionEffectNone )); - } - } - } - - } - -void CVeiEditVideoView::ShowErrorNote( const TInt aResourceId, TInt /*aError*/ )const - { - CVeiErrorUI::ShowErrorNote( *iEikonEnv, aResourceId ); - } - -void CVeiEditVideoView::ShowGlobalErrorNote( const TInt aError )const - { - iErrorUI->ShowGlobalErrorNote( aError ); - } - -void CVeiEditVideoView::ShowInformationNoteL( const TDesC& aMessage )const - { - CAknInformationNote* note = new( ELeave )CAknInformationNote( ETrue ); - note->ExecuteLD( aMessage ); - } - -void CVeiEditVideoView::ShowVolumeLabelL( TInt aVolume ) - { - STATIC_CAST( CVeiTimeLabelNavi* , iPreviewLabel->DecoratedControl())->SetVolumeIconVisibilityL( ETrue ); - - if ( iVolumeHider && iVolumeHider->IsActive()) - { - iVolumeHider->Cancel(); - } - if ( aVolume == 0 ) - { - STATIC_CAST( CVeiTimeLabelNavi* , iPreviewLabel->DecoratedControl())->SetVolumeIconVisibilityL( EFalse ); - HideVolume(); - return ; - } - - iNaviPane->PushL( *iVolumeNavi ); - if ( !iVolumeHider ) - { - iVolumeHider = CPeriodic::NewL( CActive::EPriorityLow ); - } - iVolumeHider->Start( 1000000, 1000000, TCallBack( CVeiEditVideoView::HideVolumeCallbackL, this )); - - STATIC_CAST( CAknVolumeControl* , iVolumeNavi->DecoratedControl())->SetValue( aVolume ); - - if ( aVolume > KMinVolume + 1 ) - { - STATIC_CAST( CVeiTimeLabelNavi* , iPreviewLabel->DecoratedControl())->SetLeftArrowVisibilityL( ETrue ); - } - else - { - STATIC_CAST( CVeiTimeLabelNavi* , iPreviewLabel->DecoratedControl())->SetLeftArrowVisibilityL( EFalse ); - } - - if ( aVolume < KMaxVolume ) - { - STATIC_CAST( CVeiTimeLabelNavi* , iPreviewLabel->DecoratedControl())->SetRightArrowVisibilityL( ETrue ); - } - else - { - STATIC_CAST( CVeiTimeLabelNavi* , iPreviewLabel->DecoratedControl())->SetRightArrowVisibilityL( EFalse ); - } - - } - -void CVeiEditVideoView::RemoveCurrentClipL() - { - if ( !iContainer ) - { - return ; - } - TParse fp; - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - if ( iMovie->AudioClipCount() == 0 ) - { - return ; - } - CVedAudioClipInfo* audioclipinfo = iMovie->AudioClipInfo( iContainer->CurrentIndex()); - fp.Set( audioclipinfo->FileName(), NULL, NULL ); - } - else - { - if ( iMovie->VideoClipCount() == 0 ) - { - return ; - } - - /* Get filename to remove query. */ - TBool isFile( iMovie->VideoClipInfo( iContainer->CurrentIndex())->Class() == EVedVideoClipClassFile ); - CVedVideoClipInfo* videoclipinfo = iMovie->VideoClipInfo( iContainer->CurrentIndex()); - - if ( isFile ) - { - fp.Set( videoclipinfo->FileName(), NULL, NULL ); - } - else - { - fp.Set( videoclipinfo->DescriptiveName(), NULL, NULL ); - } - } - - HBufC* stringholder = StringLoader::LoadL( R_VEI_REMOVE_CLIP_QUERY, fp.Name(), iEikonEnv ); - CleanupStack::PushL( stringholder ); - CAknQueryDialog* dlg = new( ELeave )CAknQueryDialog( *stringholder, CAknQueryDialog::ENoTone ); - TInt queryok = dlg->ExecuteLD( R_VEI_CONFIRMATION_QUERY ); - CleanupStack::PopAndDestroy( stringholder ); - - if ( queryok ) - { - TUint currentIndex = iContainer->GetAndDecrementCurrentIndex(); - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - iMovie->RemoveAudioClip( currentIndex ); - } - else if ( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) - { - iMovie->RemoveVideoClip( currentIndex ); - } - else - { - ShowErrorNote( R_VEI_ERROR_NOTE ); - } - } - } - - -TInt CVeiEditVideoView::AddClipL( const TDesC& aFilename, TBool aStartNow ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::AddClipL: In" ); - - if ( !iContainer ) - { - iContainer = new( ELeave )CVeiEditVideoContainer( *iMovie, * this ); - iContainer->SetMopParent( this ); - iContainer->ConstructL( AppUi()->ClientRect()); - AppUi()->AddToStackL( *this, iContainer ); - } - - iMediaQueue->InsertMediaL( aFilename ); - - if ( aStartNow ) - { - iMediaQueue->StartProcessingL(); - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::AddClipL: Out" ); - return KErrNone; - } - - -void CVeiEditVideoView::AddNext() - { - iMediaQueue->GetNext(); - } - -TBool CVeiEditVideoView::SaveL( TWaitMode aQuitAfterSaving ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SaveL: In" ); - RFs& fs = iEikonEnv->FsSession(); - - TParse file; - TFileName newname; - - // Get default movie name from settings view - CAknMemorySelectionDialog::TMemory memory( iMovieSaveSettings.MemoryInUse()); - - if ( memory == CAknMemorySelectionDialog::EPhoneMemory ) - { - newname = PathInfo::PhoneMemoryRootPath(); - } - else - { - newname = PathInfo::MemoryCardRootPath(); - } - - newname.Append( PathInfo::VideosPath()); - - TVedVideoFormat movieQuality = iMovie->Format(); - if ( movieQuality == EVedVideoFormatMP4 ) - { - newname.Append( KExtMp4 ); - } - else - { - newname.Append( KExt3gp ); - } - - file.Set( iMovieSaveSettings.DefaultVideoName(), &newname, NULL ); - - TInt error( KErrNone ); - error = fs.MkDirAll( file.DriveAndPath()); - - if (( error != KErrAlreadyExists ) && ( error != KErrNone )) - { - return EFalse; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SaveL: 2" ); - if ( IsEnoughFreeSpaceToSaveL()) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::SaveL: 3" ); - //FileNameQuery - newname.Zero(); - newname.Append( file.FullName()); - - CApaApplication::GenerateFileName( fs, newname ); - CAknFileNamePromptDialog* dlg = CAknFileNamePromptDialog::NewL(); - CleanupStack::PushL( dlg ); - - HBufC* filenametitle = StringLoader::LoadLC( R_VEI_QUERY_FILE_NAME, iEikonEnv ); - - dlg->SetTitleL( *filenametitle ); - CleanupStack::PopAndDestroy( filenametitle ); - - TBool namegiven = dlg->ExecuteL( newname ); - CleanupStack::PopAndDestroy( dlg ); - - if ( namegiven ) - { - newname.Insert( 0, file.DriveAndPath()); - - file.Set( newname, NULL, NULL ); - - if ( BaflUtils::FileExists( fs, newname )) - { - TBool overWrite; - CAknQueryDialog* queryDlg; - - HBufC* overWriteConfirmationString; - overWriteConfirmationString = StringLoader::LoadLC( R_VEI_CONFIRM_OVERWRITE, file.Name(), iEikonEnv ); - queryDlg = new( ELeave )CAknQueryDialog( *overWriteConfirmationString, CAknQueryDialog::ENoTone ); - overWrite = queryDlg->ExecuteLD( R_VEI_CONFIRMATION_QUERY ); - - CleanupStack::PopAndDestroy( overWriteConfirmationString ); - if ( !overWrite ) - { - return EFalse; - } - } - - iWaitMode = aQuitAfterSaving; - - if ( iSaveToFileName ) - { - delete iSaveToFileName; - iSaveToFileName = NULL; - } - - iSaveToFileName = HBufC::NewL( newname.Length()); - *iSaveToFileName = newname; - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::SaveL: 4, iSaveToFileName:%S", iSaveToFileName ); - StartTempFileProcessingL(); - - return ETrue; - } - else - { - return EFalse; - } - } - - else - { - return EFalse; - } - } - - -// ---------------------------------------------------------------------------- -// CVeiEditVideoView::CheckMemoryCardAvailability() -// -// Checks the memory card availability if MMC is selected as save store in -// application settings. An information note is shown in following -// situations: -// - MMC not inserted -// - MMC corrupted (unformatted) -// [- MMC is read-only (not implemented)] -// -// If note is popped up, this function waits until it's dismissed. -// ---------------------------------------------------------------------------- -// -void CVeiEditVideoView::CheckMemoryCardAvailabilityL() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CheckMemoryCardAvailability(): in" ); - - // Read the video editor settings from ini file. - - iChangedFromMMCToPhoneMemory = EFalse; - - TVeiSettings settings; - STATIC_CAST( CVeiAppUi* , AppUi())->ReadSettingsL( settings ); - - CAknMemorySelectionDialog::TMemory memoryInUse( settings.MemoryInUse()); - - // Check the MMC accessibility only if MMC is used as saving store. - if ( memoryInUse == CAknMemorySelectionDialog::EMemoryCard ) - { - RFs& fs = iEikonEnv->FsSession(); - TDriveInfo driveInfo; - - User::LeaveIfError( fs.Drive( driveInfo, KMmcDrive )); - - // Media is not present (MMC card not inserted). - if ( driveInfo.iType == EMediaNotPresent ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CheckMemoryCardAvailability(): no media" ); - iChangedFromMMCToPhoneMemory = ETrue; - - settings.MemoryInUse() = CAknMemorySelectionDialog::EPhoneMemory; - STATIC_CAST( CVeiAppUi* , AppUi())->WriteSettingsL( settings ); - } - // Media is present - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CheckMemoryCardAvailability(): media present" ); - - TVolumeInfo volumeInfo; - TInt volumeErr = fs.Volume( volumeInfo, KMmcDrive ); - LOGFMT( KVideoEditorLogFile, "CEditVideoView::CheckMemoryCardAvailability() Volume(): %d", volumeErr ); - - // Show note if media is corrupted/unformatted. - if ( volumeErr == KErrCorrupt ) - { - HBufC* noteText = StringLoader::LoadLC( R_VED_MMC_NOT_INSERTED, iEikonEnv ); - CAknInformationNote* informationNote = new( ELeave )CAknInformationNote( ETrue ); - informationNote->ExecuteLD( *noteText ); - - CleanupStack::PopAndDestroy( noteText ); - - settings.MemoryInUse() = CAknMemorySelectionDialog::EPhoneMemory; - STATIC_CAST( CVeiAppUi* , AppUi())->WriteSettingsL( settings ); - } - } - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CheckMemoryCardAvailability(): out" ); - } - -void CVeiEditVideoView::UpdateEditNaviLabel()const - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::UpdateEditNaviLabel(): In" ); - if ( !iContainer ) - { - return ; - } - - TRAPD( err, DoUpdateEditNaviLabelL()); - - if ( err != KErrNone ) - { - ShowGlobalErrorNote( err ); - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::UpdateEditNaviLabel(): In" ); - } - -void CVeiEditVideoView::DoUpdateEditNaviLabelL()const - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL(): In" ); - - HBufC* buf; - - CAknNavigationDecorator* currentDecorator = iNaviPane->Top(); - - iNaviPane->Pop( iMoveLabel ); - iNaviPane->Pop( iPreviewLabel ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL(): navi labels popped" ); - - TBool leftArrowVisible = EFalse; - TBool rightArrowVisible = EFalse; - - TInt currentIndex = iContainer->CurrentIndex(); - - TInt test = iContainer->SelectionMode(); - - // Draw the time indicators to the navi pane in Small preview state. - // However, if the volume indicator is being show, do not draw the time label - if ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModePreview && !iFullScreenSelected && !iVolumeHider ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL(): iContainer->SelectionMode() == CVeiEditVideoContainer::EModePreview && !iFullScreenSelected && !iVolumeHider" ); - - TTime elapsed( iContainer->PlaybackPositionL().Int64()); - TTime total( iContainer->TotalLength().Int64()); - - TBuf < 16 > elapsedBuf; - TBuf < 16 > totalBuf; - - HBufC* dateFormatString; - - // check if time is over 99:59 - if (( total.Int64() / 1000 ) < 3600000 ) - { - dateFormatString = iEikonEnv->AllocReadResourceLC( R_QTN_TIME_DURAT_MIN_SEC ); - } - else - { - dateFormatString = iEikonEnv->AllocReadResourceLC( R_QTN_TIME_DURAT_LONG ); - } - - elapsed.FormatL( elapsedBuf, * dateFormatString ); - total.FormatL( totalBuf, * dateFormatString ); - CleanupStack::PopAndDestroy( dateFormatString ); - - CDesCArrayFlat* strings = new CDesCArrayFlat( 2 ); - CleanupStack::PushL( strings ); - strings->AppendL( elapsedBuf ); - strings->AppendL( totalBuf ); - HBufC* stringholder = StringLoader::LoadL( R_VEI_NAVI_TIME, * strings, iEikonEnv ); - CleanupStack::PopAndDestroy( strings ); - CleanupStack::PushL( stringholder ); - - STATIC_CAST( CVeiTimeLabelNavi* , iPreviewLabel->DecoratedControl())->SetLabelL( stringholder->Des()); - - CleanupStack::PopAndDestroy( stringholder ); - - iNaviPane->PushL( *iPreviewLabel ); - } - - - else if ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeMove ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL(): iContainer->SelectionMode() == CVeiEditVideoContainer::EModeMove" ); - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - buf = StringLoader::LoadLC( R_VEI_MOVE_AUDIO_NAVILABEL, iEikonEnv ); - - TTimeIntervalMicroSeconds startTime = iMovie->AudioClipStartTime( currentIndex ); - - if (( currentIndex == 0 ) && ( startTime > TTimeIntervalMicroSeconds( 0 ))) - { - leftArrowVisible = ETrue; - } - else - { - if ( currentIndex >= 1 ) - { - TTimeIntervalMicroSeconds prevEndTime = iMovie->AudioClipEndTime( currentIndex - 1 ); - TTimeIntervalMicroSeconds modifiedStartTime = TTimeIntervalMicroSeconds( startTime.Int64() - 100000 ); - - if ( modifiedStartTime > prevEndTime ) - { - leftArrowVisible = ETrue; - } - } - } - - if ( currentIndex < ( iMovie->AudioClipCount() - 1 )) - { - TTimeIntervalMicroSeconds modifiedEndTime = TTimeIntervalMicroSeconds( iMovie->AudioClipEndTime( currentIndex ).Int64() + 100000 ); - TTimeIntervalMicroSeconds nextStartTime = iMovie->AudioClipStartTime( currentIndex + 1 ); - if ( modifiedEndTime < nextStartTime ) - { - rightArrowVisible = ETrue; - } - } - - if ( currentIndex == iMovie->AudioClipCount() - 1 ) - { - rightArrowVisible = ETrue; - } - } - else - { - buf = StringLoader::LoadLC( R_VEI_MOVE_VIDEO_NAVILABEL, iEikonEnv ); - - if ( currentIndex > 0 ) - { - leftArrowVisible = ETrue; - } - if ( currentIndex < iMovie->VideoClipCount() - 1 ) - { - rightArrowVisible = ETrue; - } - } - - STATIC_CAST( CAknNaviLabel* , iMoveLabel->DecoratedControl())->SetTextL( *buf ); - - CleanupStack::PopAndDestroy( buf ); - - iMoveLabel->DrawNow(); - - iMoveLabel->MakeScrollButtonVisible( ETrue ); - iMoveLabel->SetScrollButtonDimmed( CAknNavigationDecorator::ELeftButton, !leftArrowVisible ); - iMoveLabel->SetScrollButtonDimmed( CAknNavigationDecorator::ERightButton, !rightArrowVisible ); - - iNaviPane->PushL( *iMoveLabel ); - } - else if ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeDuration ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL(): iContainer->SelectionMode() == CVeiEditVideoContainer::EModeDuration" ); - - buf = StringLoader::LoadLC( R_VEI_NAVI_PANE_DURATION, iEikonEnv ); - - STATIC_CAST( CAknNaviLabel* , iMoveLabel->DecoratedControl())->SetTextL( *buf ); - - CleanupStack::PopAndDestroy( buf ); - - iMoveLabel->DrawNow(); - - if ( currentDecorator ) - { - iMoveLabel->MakeScrollButtonVisible( ETrue ); - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - TTimeIntervalMicroSeconds editedDuration = iMovie->AudioClipEditedDuration( currentIndex ); - TTimeIntervalMicroSeconds duration = iMovie->AudioClipInfo( currentIndex )->Duration(); - - if ( editedDuration > TTimeIntervalMicroSeconds( 100000 )) - { - leftArrowVisible = ETrue; - } - - if ( editedDuration < duration ) - { - rightArrowVisible = ETrue; - } - } - else - // Cursor on generated video clip - { - TTimeIntervalMicroSeconds duration = iMovie->VideoClipInfo( currentIndex )->Duration(); - if ( duration > TTimeIntervalMicroSeconds( 100000 )) - { - leftArrowVisible = ETrue; - } - rightArrowVisible = ETrue; - } - - iMoveLabel->SetScrollButtonDimmed( CAknNavigationDecorator::ELeftButton, !leftArrowVisible ); - iMoveLabel->SetScrollButtonDimmed( CAknNavigationDecorator::ERightButton, !rightArrowVisible ); - iNaviPane->PushL( *iMoveLabel ); - } - } - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL(): else-branch" ); - - TInt maxMmsSize = STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->GetMaxMmsSize(); - - CVedMovie::TVedMovieQuality origQuality = iMovie->Quality(); - iMovie->SetQuality( CVedMovie::EQualityMMSInteroperability ); - - TInt videoTimeLineSize = iMovie->GetSizeEstimateL() / 1024; - - iMovie->SetQuality( origQuality ); - - // Navipanes MMS icon control. - if ( videoTimeLineSize < maxMmsSize ) - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetMmsAvailableL( ETrue ); - } - else - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetMmsAvailableL( EFalse ); - } - - TInt size = iMovie->GetSizeEstimateL() / 1024; - /* If in recording state, show last audio clip end time+ recorded audio clip duration in navipane*/ - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL: iMovie->GetSizeEstimateL() OK : %d", size ); - TTimeIntervalMicroSeconds audioEndTime( 0 ); - if ((( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeRecording ) || - ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeRecordingPaused ))) - { - TInt audioCount = iMovie->AudioClipCount(); - /* check that cursor is on last audio clip */ - if (( audioCount > 0 ) && ( iContainer->CurrentIndex() == audioCount - 1 )) - { - audioEndTime = iMovie->AudioClipEndTime( audioCount - 1 ); - } - audioEndTime = audioEndTime.Int64() + iContainer->RecordedAudioDuration().Int64(); - /* - * Get recorded audio clip size and add it to engine size estimate - * The size won't match with size estimate that engine gives when recorded audio clip is added, - * - */ - RFs& fs = iEikonEnv->FsSession(); - TEntry entry; - - User::LeaveIfError( fs.Entry( *iTempRecordedAudio, entry )); - TInt recordedClipSize = entry.iSize / 1024; - size += recordedClipSize; - } - - if ( audioEndTime > iMovie->Duration()) - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetDurationLabelL( audioEndTime.Int64()); - } - else - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetDurationLabelL( iMovie->Duration().Int64()); - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL: iMovie->Duration() OK : %Ld", iMovie->Duration().Int64()); - } - - // Video line size to navipane. - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetSizeLabelL( size ); - - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL: SetSizeLabelL(%d) OK", size ); - - // Get default memory from settings view - - if ( iMemoryInUse == CAknMemorySelectionDialog::EPhoneMemory ) - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetMemoryInUseL( ETrue ); - } - else - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetMemoryInUseL( EFalse ); - } - - if ( IsEnoughFreeSpaceToSave2L()) - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetMemoryAvailableL( ETrue ); - } - else - { - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetMemoryAvailableL( EFalse ); - } - if ( !currentDecorator ) - { - iNaviPane->PushL( *iEditLabel ); - } - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoUpdateEditNaviLabelL(): Out" ); - } - -void CVeiEditVideoView::NotifyQueueProcessingStarted( MVeiQueueObserver::TProcessing aMode ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueProcessingStarted: in" ); - - if ( iProgressNote ) - { - delete iProgressNote; - iProgressNote = NULL; - } - - if ( iWaitDialog ) - { - CancelWaitDialog(); - } - - HBufC* stringholder; - - switch ( aMode ) - { - case MVeiQueueObserver::EProcessingAudio: - - iProgressNote = new( ELeave )CAknProgressDialog( REINTERPRET_CAST( CEikDialog** , &iProgressNote ), ETrue ); - - iProgressNote->SetCallback( this ); - - iProgressNote->ExecuteDlgLD( R_VEI_PROGRESS_NOTE_WITH_CANCEL ); - - - stringholder = StringLoader::LoadLC( R_VEI_PROGRESS_NOTE_INSERTING_AUDIO, iEikonEnv ); - iProgressNote->SetTextL( *stringholder ); - CleanupStack::PopAndDestroy( stringholder ); - - iWaitMode = EOpeningAudioInfo; - iProgressNote->GetProgressInfoL()->SetFinalValue( 100 ); - break; - case MVeiQueueObserver::EProcessingVideo: - - iWaitDialog = new( ELeave )CAknWaitDialog( REINTERPRET_CAST( CEikDialog** , &iWaitDialog ), ETrue ); - iWaitDialog->ExecuteLD( R_VEI_WAIT_DIALOG_INSERTING_VIDEO ); - break; - default: - iProgressNote = new( ELeave )CAknProgressDialog( REINTERPRET_CAST( CEikDialog** , &iProgressNote ), ETrue ); - - iProgressNote->SetCallback( this ); - - iProgressNote->ExecuteDlgLD( R_VEI_PROGRESS_NOTE ); - UpdateInsertingProgressNoteL( 1 ); - iProgressNote->GetProgressInfoL()->SetFinalValue( 100 ); - break; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueProcessingStarted: out" ); - } - -void CVeiEditVideoView::NotifyQueueProcessingProgressed( TInt aProcessedCount, TInt aPercentage ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueProcessingProgressed: in" ); - if ( iProgressNote ) - { - UpdateInsertingProgressNoteL( aProcessedCount ); - iProgressNote->GetProgressInfoL()->SetAndDraw( aPercentage ); - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueProcessingProgressed: out" ); - } - -TBool CVeiEditVideoView::NotifyQueueClipFailed( const TDesC& aFilename, TInt aError ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueClipFailed: in, aError:%d", aError ); - - TBool result; - if ( aError == CVeiAddQueue::EInsertingSingleClip ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueClipFailed: 1" ); - ShowErrorNote( R_VEI_VIDEO_FAILED ); - result = ETrue; - } - else - { - TBool continueProcessing; - CAknQueryDialog* dlg; - HBufC* failedContinueString; - - failedContinueString = StringLoader::LoadLC( R_VEI_WARNING_NOTE_INSERTING_FAILED, aFilename, iEikonEnv ); - dlg = new( ELeave )CAknQueryDialog( *failedContinueString, CAknQueryDialog::ENoTone ); - continueProcessing = dlg->ExecuteLD( R_VEI_CONFIRMATION_QUERY ); - - CleanupStack::PopAndDestroy( failedContinueString ); - - result = continueProcessing; - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueClipFailed: out" ); - - return result; - } - -void CVeiEditVideoView::NotifyQueueEmpty( TInt /*aInserted*/, TInt DEBUGLOG_ARG( aFailed )) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueEmpty: in, aFailed:%d", aFailed ); - if ( iProgressNote ) - { - iProgressNote->GetProgressInfoL()->SetAndDraw( 100 ); - TRAP_IGNORE( iProgressNote->ProcessFinishedL()); - } - if ( iWaitDialog ) - { - CancelWaitDialog(); - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyQueueEmpty: out" ); - } - - -void CVeiEditVideoView::NotifyMovieProcessingStartedL( CVedMovie& /*aMovie*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingStartedL: in" ); - - iPercentProcessed = 0; - - iProgressNote = new( ELeave )CAknProgressDialog( REINTERPRET_CAST( CEikDialog** , &iProgressNote ), ETrue ); - iProgressNote->SetCallback( this ); - iProgressNote->ExecuteDlgLD( R_VEI_PROGRESS_NOTE_WITH_CANCEL ); - - HBufC* stringholder; - - if (( EProcessingMovieSend == iWaitMode ) && ( KSenduiMtmBtUid == iGivenSendCommand )) - { - stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_PROCESSING, iEikonEnv ); - } - else if ( EProcessingMovieSend == iWaitMode ) - { - stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_SEND, iEikonEnv ); - } - else if ( EProcessingMoviePreview == iWaitMode ) - { - stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_PROCESSING, iEikonEnv ); - } - else if ( EProcessingMovieTrimMms == iWaitMode ) - { - stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_PROCESSING, iEikonEnv ); - } - else - { - stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_SAVING, iEikonEnv ); - } - - CleanupStack::PushL( stringholder ); - - iProgressNote->SetTextL( *stringholder ); - CleanupStack::PopAndDestroy( stringholder ); - - iProgressNote->GetProgressInfoL()->SetFinalValue( 100 ); - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingStartedL: out" ); - } - -void CVeiEditVideoView::NotifyMovieProcessingProgressed( CVedMovie& /*aMovie*/, TInt aPercentage ) - { - iPercentProcessed = aPercentage; - User::ResetInactivityTime(); - iProgressNote->GetProgressInfoL()->SetAndDraw( aPercentage ); - } - -void CVeiEditVideoView::NotifyMovieProcessingCompleted( CVedMovie& aMovie, TInt aError ) - { - LOGFMT2( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingCompleted: in, aError:%d, iPercentProcessed:%d", aError, iPercentProcessed ); - - aMovie.SetMovieSizeLimit( 0 ); // Movie size limit not in use - - if ( aError == KErrNone ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingCompleted: 2" ); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - Cba()->DrawDeferred(); - SetNewTempFileNeeded( EFalse ); - iProgressNote->GetProgressInfoL()->SetAndDraw( 100 ); - TRAP_IGNORE( iProgressNote->ProcessFinishedL()); - } - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingCompleted: 3" ); - if ( iProgressNote ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingCompleted: 4" ); - iWaitMode = EProcessingError; - TRAP_IGNORE( iProgressNote->GetProgressInfoL()->SetAndDraw( 100 )); - iErrorNmb = aError; - TRAP_IGNORE( iProgressNote->ProcessFinishedL()); - } - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingCompleted: 5" ); - if ( iTempFile ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingCompleted: 6" ); - RFs& fs = iEikonEnv->FsSession(); - - fs.Delete( *iTempFile ); - delete iTempFile; - iTempFile = NULL; - SetNewTempFileNeeded( ETrue ); - } - } - - // SetEditorState() must be called because of its side effects eventhough state has not changed, - // it sets CBAs. CBAs are set to empty before calling ProcessL() - if ( EMixAudio != iEditorState ) - { - SetEditorState( EEdit ); - } - else - { - SetEditorState( EMixAudio ); - } - - iContainer->SetBlackScreen( EFalse ); - iContainer->SetRect( AppUi()->ClientRect()); - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieProcessingCompleted: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipAdded( CVedMovie& /*aMovie*/, TInt aIndex ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipAdded: in" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - - if ( iMovieFirstAddFlag ) - { - CVedVideoClipInfo* info = iMovie->VideoClipInfo( aIndex ); - - if ( EVedVideoClipClassGenerated != info->Class()) - { - SetNewTempFileNeeded( EFalse ); - iMovieSavedFlag = ETrue; - } - iMovieFirstAddFlag = EFalse; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipAdded: Completed" ); - - STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->SetState( CVeiEditVideoLabelNavi::EStateEditView ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipAdded: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipAddingFailed( CVedMovie& /*aMovie*/, TInt DEBUGLOG_ARG( aError )) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipAddingFailed: in, aError:%d", aError ); - if ( iProgressNote ) - { - iProgressNote->GetProgressInfoL()->SetAndDraw( 100 ); - TRAP_IGNORE( iProgressNote->ProcessFinishedL()); - } - - if ( iWaitDialog ) - { - CancelWaitDialog(); - } - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipAddingFailed: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipRemoved( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipRemoved: in" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipRemoved: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipIndicesChanged( CVedMovie& /*aMovie*/, TInt /*aOldIndex*/, TInt /*aNewIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipIndicesChanged: in" ); - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipIndicesChanged: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipTimingsChanged( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipTimingsChanged: in" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipTimingsChanged: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipColorEffectChanged( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipColorEffectChanged: in" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipColorEffectChanged: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipAudioSettingsChanged( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipAudioSettingsChanged: in" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipAudioSettingsChanged: out" ); - } - -void CVeiEditVideoView::NotifyStartTransitionEffectChanged( CVedMovie& /*aMovie*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyStartTransitionEffectChanged: in" ); - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyStartTransitionEffectChanged: out" ); - } - -void CVeiEditVideoView::NotifyMiddleTransitionEffectChanged( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMiddleTransitionEffectChanged: in" ); - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMiddleTransitionEffectChanged: out" ); - } - -void CVeiEditVideoView::NotifyEndTransitionEffectChanged( CVedMovie& /*aMovie*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyEndTransitionEffectChanged: in" ); - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyEndTransitionEffectChanged: out" ); - } - -void CVeiEditVideoView::NotifyAudioClipAdded( CVedMovie& aMovie, TInt aIndex ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipAdded: in" ); - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - - if ( iProgressNote ) - { - iProgressNote->GetProgressInfoL()->SetAndDraw( 100 ); - TRAP_IGNORE( iProgressNote->ProcessFinishedL()); - } - - iOriginalAudioClipIndex = iContainer->CurrentIndex(); - - if ( iOriginalAudioClipIndex > aIndex ) - { - iOriginalAudioClipIndex--; - } - iContainer->SetCurrentIndex( aIndex ); - - iOriginalAudioStartPoint = TTimeIntervalMicroSeconds( - 1 ); - CVedAudioClipInfo* audioclipinfo = aMovie.AudioClipInfo( aIndex ); - iOriginalAudioDuration = audioclipinfo->Duration(); - - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipAdded: out" ); - } - -void CVeiEditVideoView::NotifyAudioClipAddingFailed( CVedMovie& /*aMovie*/, TInt DEBUGLOG_ARG( aError )) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipAddingFailed: in, aError:%d", aError ); - if ( iProgressNote ) - { - iProgressNote->GetProgressInfoL()->SetAndDraw( 100 ); - TRAP_IGNORE( iProgressNote->ProcessFinishedL()); - } - - if ( iWaitDialog ) - { - CancelWaitDialog(); - } - ShowErrorNote( R_VEI_ERRORNOTE_AUDIO_INSERTING_FAILED ); - - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipAddingFailed: out" ); - } - -void CVeiEditVideoView::NotifyAudioClipRemoved( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipRemoved: in" ); - if ( iTempRecordedAudio ) - { - delete iTempRecordedAudio; - iTempRecordedAudio = NULL; - } - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipRemoved: out" ); - } - -void CVeiEditVideoView::NotifyAudioClipIndicesChanged( CVedMovie& /*aMovie*/, TInt /*aOldIndex*/, TInt /*aNewIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipIndicesChanged: in" ); - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipIndicesChanged: out" ); - } - -void CVeiEditVideoView::NotifyAudioClipTimingsChanged( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipTimingsChanged: in" ); - iMovieSavedFlag = EFalse; - SetNewTempFileNeeded( ETrue ); - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipTimingsChanged: out" ); - } - -void CVeiEditVideoView::NotifyMovieReseted( CVedMovie& /*aMovie*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieReseted: in" ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieReseted: out" ); - } - -void CVeiEditVideoView::NotifyAudioClipInfoReady( CVedAudioClipInfo& aInfo, TInt aError ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipInfoReady: in, aError:%d", aError ); - TInt err( KErrNone ); - - if ( aError == KErrNone ) - { - if ( aInfo.Type() == EVedAudioTypeUnrecognized ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipInfoReady: 2: EVedAudioTypeUnrecognized" ); - - aError = KErrNotSupported; - - /*TPtrC filename = aInfo.FileName(); - - iTempRecordedAudio = HBufC::NewL(KMaxFileName); - iTempMaker->GenerateTempFileName( *iTempRecordedAudio, iMovie ); - - TRAP_IGNORE( iConverter->StartConversionL( filename, *iTempRecordedAudio) ); - - delete iTempRecordedAudio; - iTempRecordedAudio = NULL; - */ - } - else if (( aInfo.Type() == EVedAudioTypeAMR ) || - ( aInfo.Type() == EVedAudioTypeAMRWB ) || - ( aInfo.Type() == EVedAudioTypeMP3 ) || - ( aInfo.Type() == EVedAudioTypeAAC_LC ) || - ( aInfo.Type() == EVedAudioTypeAAC_LTP ) || - ( aInfo.Type() == EVedAudioTypeWAV )) - { - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipInfoReady: 3" ); - TInt index = 0; - TInt64 startTimeInt = 0; - TInt64 durationInt = aInfo.Duration().Int64(); - - if ((( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) || - ( iContainer->CursorLocation() == VideoEditor::ECursorOnEmptyAudioTrack )) && - ( iMovie->AudioClipCount() > 0 )) - { - index = iContainer->CurrentIndex() + 1; - startTimeInt = iMovie->AudioClipEndTime( iContainer->CurrentIndex()).Int64(); - } - - while ( index < iMovie->AudioClipCount()) - { - if ( TTimeIntervalMicroSeconds( startTimeInt ) == iMovie->AudioClipStartTime( index )) - { - startTimeInt = iMovie->AudioClipEndTime( index ).Int64(); - index++; - } - else - { - break; - } - } - - if ( index < iMovie->AudioClipCount()) - { - TInt64 endTimeInt = startTimeInt + durationInt; - TInt64 nextStartTimeInt = iMovie->AudioClipStartTime( index ).Int64(); - if ( endTimeInt > nextStartTimeInt ) - { - durationInt = nextStartTimeInt - startTimeInt; - } - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipInfoReady: 4" ); - TRAP( err, iMovie->AddAudioClipL( aInfo.FileName(), - TTimeIntervalMicroSeconds( startTimeInt ), - TTimeIntervalMicroSeconds( 0 ), - TTimeIntervalMicroSeconds( durationInt ))); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipInfoReady: 5" ); - } - } - if (( aError != KErrNone ) || ( err != KErrNone )) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipInfoReady: 6" ); - if ( aError != KErrCancel ) - { - if ( aError ) - { - iErrorNmb = aError; - } - else - { - iErrorNmb = err; - } - } - iWaitMode = EProcessingAudioError; - - iProgressNote->GetProgressInfoL()->SetAndDraw( 100 ); - TRAP_IGNORE( iProgressNote->ProcessFinishedL()); - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipInfoReady: out" ); - } - - - -void CVeiEditVideoView::NotifyVideoClipGeneratorSettingsChanged( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipGeneratorSettingsChanged: in" ); - if ( iWaitDialog ) - { - iWaitDialog->ProcessFinishedL(); - } - - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - UpdateEditNaviLabel(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipGeneratorSettingsChanged: out" ); - } - -void CVeiEditVideoView::NotifyVideoClipDescriptiveNameChanged( CVedMovie& /*aMovie*/, TInt /*aIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipDescriptiveNameChanged: in and out" ); - } - -void CVeiEditVideoView::NotifyMovieQualityChanged( CVedMovie& /*aMovie*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieQualityChanged: in" ); - - // If there are text generator inserted into the movie, they need - // to be notified that the movie resolution has changed so that - // they can re-calculate the the wrapping etc. parameters. - /* TInt clipCount = iMovie->VideoClipCount(); - for (TInt i = 0; i < clipCount; i++) - { - CVedVideoClipInfo* clipInfo = iMovie->VideoClipInfo(i); - if (clipInfo->Class() == EVedVideoClipClassGenerated) - { - TUid generatorUid = clipInfo->Generator()->Uid(); - if (generatorUid == KUidTitleClipGenerator) - { - CVeiTitleClipGenerator* generator = static_cast(clipInfo->Generator()); - generator->RefreshTextFrameParametersL(); - } - } - }*/ - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieQualityChanged: out" ); - } - -void CVeiEditVideoView::NotifyMovieOutputParametersChanged( CVedMovie& /*aMovie*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyMovieOutputParametersChanged: in and out" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - } - -void CVeiEditVideoView::NotifyAudioClipDynamicLevelMarkInserted( CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipDynamicLevelMarkInserted: in and out" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - } - -void CVeiEditVideoView::NotifyAudioClipDynamicLevelMarkRemoved( CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyAudioClipDynamicLevelMarkRemoved: in and out" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - } - -void CVeiEditVideoView::NotifyVideoClipDynamicLevelMarkInserted( CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipDynamicLevelMarkInserted: in and out" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - } - -void CVeiEditVideoView::NotifyVideoClipDynamicLevelMarkRemoved( CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyVideoClipDynamicLevelMarkRemoved: in and out" ); - SetNewTempFileNeeded( ETrue ); - iMovieSavedFlag = EFalse; - } - -void CVeiEditVideoView::MoscoStateChangeEvent( CBase* aObject, TInt aPreviousState, TInt aCurrentState, TInt aErrorCode ) - { - LOGFMT3( KVideoEditorLogFile, "CVeiEditVideoView::MoscoStateChangeEvent: In: aPreviousState:%d, aCurrentState:%d, aErrorCode:%d", aPreviousState, aCurrentState, aErrorCode ); - - if ( aObject == iRecorder ) - { - if ( aErrorCode != KErrNone ) - { - ShowErrorNote( R_VEI_RECORDING_FAILED ); - - if ( iTempRecordedAudio ) - { - TInt err = iEikonEnv->FsSession().Delete( *iTempRecordedAudio ); - if ( err ){ - - } - delete iTempRecordedAudio; - iTempRecordedAudio = NULL; - } - - iContainer->SetSelectionMode( CVeiEditVideoContainer::EModeNavigation ); - TRAP_IGNORE( Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK )); - Cba()->DrawDeferred(); - UpdateEditNaviLabel(); - - iRecorder->Close(); - } - else if ( aCurrentState == CMdaAudioClipUtility::ERecording ) - { - const TUint delay = 1000 * 1000 / 10; - - if ( !iAudioRecordPeriodic->IsActive()) - { - iAudioRecordPeriodic->Start( delay, delay, TCallBack( CVeiEditVideoView::UpdateAudioRecording, this )); - } - - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PAUSE_STOP ); - Cba()->DrawDeferred(); - } - else if ( aPreviousState == CMdaAudioClipUtility::ENotReady ) - { - TRAP_IGNORE( Cba()->SetCommandSetL( R_VEI_SOFTKEYS_RECORD_CANCEL )); - Cba()->DrawDeferred(); - } - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::MoscoStateChangeEvent: Out" ); - } - - -void CVeiEditVideoView::DoActivateL( const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoActivateL: In" ); - if ( !iMemoryCardChecked ) - { - CheckMemoryCardAvailabilityL(); - iMemoryCardChecked = ETrue; - } - - if ( !iContainer ) - { - iContainer = new( ELeave )CVeiEditVideoContainer( *iMovie, * this ); - iContainer->SetMopParent( this ); - iContainer->ConstructL( AppUi()->ClientRect()); - AppUi()->AddToStackL( *this, iContainer ); - } - - SetEditorState( EEdit ); - - // Add Context Pane icon - - /* TUid contextPaneUid; - contextPaneUid.iUid = EEikStatusPaneUidContext; - - CEikStatusPane* sp = StatusPane(); - CEikStatusPaneBase::TPaneCapabilities subPane = sp->PaneCapabilities( contextPaneUid ); - - if ( subPane.IsPresent() && subPane.IsAppOwned() ) - { - CAknContextPane* contextPane = (CAknContextPane*)sp->ControlL( contextPaneUid); - - TFileName mbmPath( VideoEditorUtils::IconFileNameAndPath(KManualVideoEditorIconFileId) ); - }*/ - - // Quality is taken from settings and set to engine. - STATIC_CAST( CVeiAppUi* , AppUi())->ReadSettingsL( iMovieSaveSettings ); - - TInt settingsSaveQuality = iMovieSaveSettings.SaveQuality(); - CVedMovie::TVedMovieQuality saveQuality; - - switch ( settingsSaveQuality ) - { - case TVeiSettings::EMmsCompatible: saveQuality = CVedMovie::EQualityMMSInteroperability; - break; - case TVeiSettings::EMedium: saveQuality = CVedMovie::EQualityResolutionMedium; - break; - case TVeiSettings::EBest: saveQuality = CVedMovie::EQualityResolutionHigh; - break; - case TVeiSettings::EAuto: default: - saveQuality = CVedMovie::EQualityAutomatic; - break; - } - - iMovie->SetQuality( saveQuality ); - iMemoryInUse = iMovieSaveSettings.MemoryInUse(); - - if (( EProcessingMovieForCutting == iWaitMode ) || - ( EProcessingMovieTrimMms == iWaitMode ) || - ( ECuttingAudio == iWaitMode )) - { - iMovie->RegisterMovieObserverL( this ); - iMovie->RegisterMovieObserverL( iContainer ); - } - - if ( EProcessingMovieForCutting == iWaitMode ) - { - // miksi laitetaan jos ollaan oltu rimmaamassa? - //SetNewTempFileNeeded(ETrue); - - TTimeIntervalMicroSeconds cutin; - TTimeIntervalMicroSeconds cutout; - cutin = iMovie->VideoClipCutInTime( iCutVideoIndex ); - cutout = iMovie->VideoClipCutOutTime( iCutVideoIndex ); - - if (( cutin != TTimeIntervalMicroSeconds( 0 )) || - ( cutout != iMovie->VideoClipInfo( iCutVideoIndex )->Duration())) - { - iMovieSavedFlag = EFalse; - } - - if (( cutin != iOriginalCutInTime ) || ( cutout != iOriginalCutOutTime ) ) - { - SetNewTempFileNeeded( ETrue ); - iContainer->DrawNow(); - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_EMPTY ); - iContainer->UpdateThumbnailL( iCutVideoIndex ); - } - iContainer->SetCursorLocation( VideoEditor::ECursorOnClip ); - } - else if ( ECuttingAudio == iWaitMode ) - { - - //SetNewTempFileNeeded(ETrue); - - TTimeIntervalMicroSeconds cutin; - TTimeIntervalMicroSeconds cutout; - cutin = iMovie->AudioClipCutInTime( iCutAudioIndex ); - cutout = iMovie->AudioClipCutOutTime( iCutAudioIndex ); - - if (( cutin != TTimeIntervalMicroSeconds( 0 )) || - ( cutout != iMovie->AudioClipInfo( iCutAudioIndex )->Duration())) - { - iMovieSavedFlag = EFalse; - } - - TTimeIntervalMicroSeconds currentEndTime; - TTimeIntervalMicroSeconds nextStartTime; - - for ( TInt i = iContainer->CurrentIndex(); i < ( iMovie->AudioClipCount() - 1 ); i++ ) - { - currentEndTime = iMovie->AudioClipEndTime( i ); - nextStartTime = iMovie->AudioClipStartTime( i + 1 ); - - if ( nextStartTime < currentEndTime ) - // what is the reason behind? - // is this a typo, should it be like this?: - //if ( nextStartTime != currentEndTime ) - { - nextStartTime = currentEndTime; - iMovie->AudioClipSetStartTime( i + 1, nextStartTime ); - } - } - if (( cutin != iOriginalAudioCutInTime ) || ( cutout != iOriginalAudioCutOutTime )) - { - SetNewTempFileNeeded( ETrue ); - iContainer->DrawNow(); - } - - iContainer->SetCursorLocation( VideoEditor::ECursorOnAudio ); - } - - iNaviPane->PushL( *iEditLabel ); - - iSendKey = EFalse; - iWaitMode = ENotWaiting; - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::DoActivateL: out" ); - } - -void CVeiEditVideoView::HandleForegroundEventL( TBool aForeground ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::HandleForegroundEventL: in: %d", aForeground ); - - if ( !aForeground ) - { - // If the application is closing down, calling PauseVideoL could result in - // a callback from the MMF player after the container is already deleted, - // causing KERN-EXEC 3 - if ( static_cast < CVeiAppUi* > ( AppUi())->AppIsOnTheWayToDestruction()) - { - iContainer->PrepareForTerminationL(); - return ; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::HandleForegroundEventL 1" ); - //if ( (EditorState() != EEdit ) && iContainer) - if ( EPreview == EditorState() || EQuickPreview == EditorState()) - { - iContainer->PauseVideoL(); - } - // In phones with clamshell (läppäpuhelin) background can be activated with closing the shell - // iContainer's OfferKeyEvent do not get this kind of shell events - if ( EPreview == EditorState()) - // large preview - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::HandleForegroundEventL 2" ); - SetEditorState( CVeiEditVideoView::EEdit ); - iContainer->SetBlackScreen( EFalse ); - SetFullScreenSelected( EFalse ); - iContainer->StopVideo( ETrue ); - } - - if (( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeRecordingPaused ) || ( iContainer->SelectionMode() == CVeiEditVideoContainer::EModeRecording )) - { - HandleCommandL( EVeiCmdEditVideoViewRecordStop ); - } - DoDeactivate(); - } - else - { - if ( EditorState() != EEdit ) - { - if ( EMixAudio != EditorState() && EAdjustVolume != EditorState()) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::HandleForegroundEventL: 3, setting R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK" ); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_PREVIEW_PLAY_BACK ); - } - Cba()->DrawDeferred(); - } - - /* When view is activated some clips can be deleted or - names can be changed.. So check that all video and audio clips are still available.*/ - if ( iMovie ) - { - TInt i; - TFileName clipName; - RFs& fs = iEikonEnv->FsSession(); - - for ( i = 0; i < iMovie->VideoClipCount(); i++ ) - { - if ( iMovie->VideoClipInfo( i )->Class() == EVedVideoClipClassFile ) - { - clipName = iMovie->VideoClipInfo( i )->FileName(); - - if ( !BaflUtils::FileExists( fs, clipName )) - { - iContainer->GetAndDecrementCurrentIndex(); - - iMovie->RemoveVideoClip( i ); - i--; - UpdateMediaGalleryL(); - } - clipName.Zero(); - } - } - - for ( i = 0; i < iMovie->AudioClipCount(); i++ ) - { - clipName = iMovie->AudioClipInfo( i )->FileName(); - - if ( !BaflUtils::FileExists( fs, clipName )) - { - iContainer->GetAndDecrementCurrentIndex(); - - iMovie->RemoveAudioClip( i ); - i--; - UpdateMediaGalleryL(); - } - clipName.Zero(); - } - - } - - UpdateEditNaviLabel(); - HandleScreenDeviceChangedL(); - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::HandleForegroundEventL: out" ); - } - -void CVeiEditVideoView::DoDeactivate() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView:DoDeactivate: In" ); - - iNaviPane->Pop( iEditLabel ); - - if ( iVolumeHider ) - { - iVolumeHider->Cancel(); - delete iVolumeHider; - iVolumeHider = NULL; - } - - LOG( KVideoEditorLogFile, "CVeiEditVideoView:DoDeactivate: Out" ); - } - - -TTimeIntervalMicroSeconds CVeiEditVideoView::OriginalAudioDuration()const - { - return iOriginalAudioDuration; - } - -TInt CVeiEditVideoView::UpdateNaviPreviewing( TAny* aThis ) - { - STATIC_CAST( CVeiEditVideoView* , aThis )->DoUpdateEditNaviLabelL(); - return 1; - } - - -TInt CVeiEditVideoView::UpdateAudioRecording( TAny* aThis ) - { - STATIC_CAST( CVeiEditVideoView* , aThis )->DoUpdateAudioRecording(); - return 1; - } - -void CVeiEditVideoView::DoUpdateAudioRecording() - { - if ( iRecorder->State() != CMdaAudioClipUtility::ERecording ) - { - iAudioRecordPeriodic->Cancel(); - Cba()->SetCommandSetL( R_VEI_SOFTKEYS_CONTINUE_STOP ); - Cba()->DrawDeferred(); - } - else - { - TTimeIntervalMicroSeconds duration = iRecorder->Duration(); - - iContainer->SetRecordedAudioDuration( duration ); - iContainer->DrawTrackBoxes(); - - UpdateEditNaviLabel(); - - // !!!*** Safety margin of 0.5s because cropping does not work, remove when cropping fixed. ***!!! - duration = TTimeIntervalMicroSeconds( duration.Int64()); - - if (( iRecordedAudioMaxDuration >= TTimeIntervalMicroSeconds( 0 )) && ( duration > iRecordedAudioMaxDuration )) - { - TRAP_IGNORE( HandleCommandL( EVeiCmdEditVideoViewRecordStop )); - } - } - } - -void CVeiEditVideoView::CancelWaitDialog( TInt aError ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::CancelWaitDialog: In, aError:%d", aError ); - if ( iWaitDialog ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CancelWaitDialog: 2" ); - iWaitDialog->ProcessFinishedL(); - } - - if ( aError ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CancelWaitDialog: 3" ); - ShowGlobalErrorNote( aError ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CancelWaitDialog: 4" ); - } - Cba()->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK ); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CancelWaitDialog: 5" ); - Cba()->DrawDeferred(); - LOG( KVideoEditorLogFile, "CVeiEditVideoView::CancelWaitDialog: Out" ); - } - -void CVeiEditVideoView::NotifyImageClipGeneratorInitializationComplete( CVeiImageClipGenerator& /*aGenerator*/, TInt aError ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::NotifyImageClipGeneratorInitializationComplete: in, aError:%d", aError ); - if ( aError != KErrNone ) - { - ShowGlobalErrorNote( aError ); - delete iGenerator; - iGenerator = 0; - return ; - } - - // insert the generator into movie - TInt index = ( iContainer->CurrentIndex() == iMovie->VideoClipCount()) ? iMovie->VideoClipCount(): iContainer->CurrentIndex() + 1; - iMovie->InsertVideoClipL( *iGenerator, ETrue, index ); - - // Generator is no longer our concern - iGenerator = 0; - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyImageClipGeneratorInitializationComplete: out" ); - } - - -void CVeiEditVideoView::NotifyTitleClipBackgroundImageLoadComplete( CVeiTitleClipGenerator& /*aGenerator*/, TInt aError ) - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::NotifyTitleClipBackgroundImageLoadComplete: in, aError:%d", aError ); - if ( aError != KErrNone ) - { - ShowGlobalErrorNote( aError ); - delete iGenerator; - iGenerator = 0; - return ; - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::NotifyTitleClipBackgroundImageLoadComplete: out" ); - } - -void CVeiEditVideoView::UpdateInsertingProgressNoteL( TInt aProcessed ) - { - TInt queueCount = iMediaQueue->Count(); - - CArrayFix < TInt > * numbers = new CArrayFixFlat < TInt > ( 2 ); - CleanupStack::PushL( numbers ); - numbers->AppendL( aProcessed ); - numbers->AppendL( queueCount ); - - HBufC* stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_INSERTING_MEDIA, * numbers, iEikonEnv ); - - CleanupStack::PushL( stringholder ); - - iProgressNote->SetTextL( *stringholder ); - iProgressNote->DrawNow(); // otherwise text is not drawn at all - CleanupStack::PopAndDestroy( stringholder ); - CleanupStack::PopAndDestroy( numbers ); - } - -void CVeiEditVideoView::MmsSendCompatibleCheck() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::MmsSendCompatibleCheck(): in" ); - - TInt maxMmsSize = STATIC_CAST( CVeiEditVideoLabelNavi* , iEditLabel->DecoratedControl())->GetMaxMmsSize()* 1024; - - CVedMovie::TVedMovieQuality origQuality = iMovie->Quality(); - iMovie->SetQuality( CVedMovie::EQualityMMSInteroperability ); - TInt sizeEstimate = 0; - TRAP_IGNORE( sizeEstimate = iMovie->GetSizeEstimateL()); - iMovie->SetQuality( origQuality ); - - LOGFMT2( KVideoEditorLogFile, "CVeiEditVideoView::MmsSendCompatibleCheck(): maxMmsSize: %d, sizeEstimate: %d", maxMmsSize, sizeEstimate ); - - TInt movieSizeLimit = ( TInt )( maxMmsSize* 0.9 ); - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::MmsSendCompatibleCheck(): testing, test:%d", movieSizeLimit ); - - if ( sizeEstimate < ( TInt )( maxMmsSize* 1.1 )) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::MmsSendCompatibleCheck(): SetMovieSizeLimit..ok" ); - iMovie->SetMovieSizeLimit( movieSizeLimit ); - } - - TVeiSettings movieSaveSettings; - - if ( iMovie->IsMovieMMSCompatible()) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::MmsSendCompatibleCheck: MMSCompatible YES" ); - iWaitMode = EProcessingMovieTrimMms; - StartTempFileProcessingL(); - } - else - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::MmsSendCompatibleCheck: MMSCompatible NO" ); - iWaitMode = EProcessingMovieTrimMms; - movieSaveSettings.SaveQuality() = TVeiSettings::EMmsCompatible; - StartTempFileProcessingL(); - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::MmsSendCompatibleCheck(): out" ); - } - -// Screen twisting -/* -/* experimental code trying to fix this: -EECO-6W39YS -Manual Video Editor: Wrong layout displays if switching phone mode during large preview playing - -void CVeiEditVideoView::HandleScreenDeviceChangedL() -{ -LOG(KVideoEditorLogFile, "CVeiEditVideoView::HandleScreenDeviceChangedL() in"); -if ( iContainer ) -{ -// Orientation changed. Resize container rect and update component -//positions. - - -// iContainer->SetRect( ClientOrApplicationRect( iFullScreenSelected ) ); -// -// iContainer->SetRect( AppUi()->ClientRect() ); -// - -if(CVeiEditVideoContainer::EModePreview == iContainer->SelectionMode() && iFullScreenSelected && -CVeiEditVideoContainer::EStatePlaying == iContainer->PreviewState()) -{ -LOG(KVideoEditorLogFile, "CVeiEditVideoView::HandleScreenDeviceChangedL() 1"); -iContainer->SetBlackScreen( ETrue ); -iContainer->SetRect( ClientOrApplicationRect( iFullScreenSelected ) ); -return; -} -LOG(KVideoEditorLogFile, "CVeiEditVideoView::HandleScreenDeviceChangedL() 2"); -iContainer->SetCursorLocation( iContainer->CursorLocation() ); -iContainer->ArrowsControl(); - -iContainer->DrawDeferred(); -} -LOG(KVideoEditorLogFile, "CVeiEditVideoView::HandleScreenDeviceChangedL() out"); -} - */ -/* Screen twisting */ -void CVeiEditVideoView::HandleScreenDeviceChangedL() - { - if ( iContainer ) - { - // Orientation changed. Resize container rect and update component - //positions. - iContainer->SetRect( AppUi()->ClientRect()); - - iContainer->SetCursorLocation( iContainer->CursorLocation()); - iContainer->ArrowsControl(); - - iContainer->DrawDeferred(); - } - } - -void CVeiEditVideoView::HideVolume() - { - iNaviPane->Pop( iVolumeNavi ); - - delete iVolumeHider; - iVolumeHider = NULL; - } - -TInt CVeiEditVideoView::HideVolumeCallbackL( TAny* aPtr ) - { - CVeiEditVideoView* view = ( CVeiEditVideoView* )aPtr; - view->HideVolume(); - return 0; - } - -void CVeiEditVideoView::UpdateMediaGalleryL() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::UpdateMediaGalleryL(): In" ); - - - // Publish & Subscribe API used to make the saved file name available to AIW provider - if ( iSaveToFileName ) - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::UpdateMediaGalleryL(): Calling RProperty::Define(KUidVideoEditorProperties, VideoEditor::EPropertyFilename, RProperty::EText); " ); - TInt err = RProperty::Define( KUidVideoEditorProperties, VideoEditor::EPropertyFilename, RProperty::EText ); - if ( err != KErrAlreadyExists ) - { - User::LeaveIfError( err ); - } - User::LeaveIfError( RProperty::Set( KUidVideoEditorProperties, VideoEditor::EPropertyFilename, iSaveToFileName->Des())); - } - LOG( KVideoEditorLogFile, "CVeiEditVideoView::UpdateMediaGalleryL(): Out" ); - } - -void CVeiEditVideoView::SetFullScreenSelected( TBool aFullScreenSelected ) - { - iFullScreenSelected = aFullScreenSelected; - } - -void CVeiEditVideoView::StartNaviPaneUpdateL() - { - if ( iPreviewUpdatePeriodic ) - { - if ( iPreviewUpdatePeriodic->IsActive()) - { - iPreviewUpdatePeriodic->Cancel(); - } - - iPreviewUpdatePeriodic->Start( 100000, 100000, TCallBack( CVeiEditVideoView::UpdateNaviPreviewing, this )); - } - } - -void CVeiEditVideoView::ShowAndHandleSendMenuCommandsL() - { - /* Show send menu, postcard dimmed */ - CArrayFix < TUid > * mtmToDim = new( ELeave )CArrayFixFlat < TUid > ( 3 ); - TUid userSelection; - CleanupStack::PushL( mtmToDim ); - /* - this uid is empirically got with one device 19.10.2006 - there is currently (19.10.2006) no constans found in headers for Web Upload - */ - - const TInt KSenduiMtmOwnWebUploadIntValue = 536873429; - const TUid KSenduiMtmOwnWebUpload = - { - KSenduiMtmOwnWebUploadIntValue - }; - - mtmToDim->AppendL( KSenduiMtmPostcardUid ); - mtmToDim->AppendL( KSenduiMtmAudioMessageUid ); - mtmToDim->AppendL( KSenduiMtmOwnWebUpload ); - - - userSelection = iSendAppUi.ShowSendQueryL( NULL, TSendingCapabilities( 0, 0, TSendingCapabilities::ESupportsAttachments ), mtmToDim ); - CleanupStack::PopAndDestroy( mtmToDim ); - - iGivenSendCommand = userSelection; - - if ( IsEnoughFreeSpaceToSaveL()) - { - switch ( userSelection.iUid ) - { - case KSenduiMtmSmtpUidValue: - case KSenduiMtmImap4UidValue: - case KSenduiMtmPop3UidValue: - { - LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::ShowAndHandleSendMenuCommandsL: MTM UID: %d", userSelection.iUid ); - iWaitMode = EProcessingMovieSend; - StartTempFileProcessingL(); - break; - } - case KSenduiMtmIrUidValue: - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::ShowAndHandleSendMenuCommandsL: MTM UID: KSenduiMtmIrUidValue" ); - iWaitMode = EProcessingMovieSend; - StartTempFileProcessingL(); - break; - } - case KSenduiMtmMmsUidValue: - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::ShowAndHandleSendMenuCommandsL: MTM UID: KSenduiMtmMmsUidValue" ); - iWaitMode = EProcessingMovieTrimMms; - MmsSendCompatibleCheck(); - break; - } - case KSenduiMtmBtUidValue: - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::ShowAndHandleSendMenuCommandsL: MTM UID: KSenduiMtmBtUidValue" ); - iWaitMode = EProcessingMovieSend; - StartTempFileProcessingL(); - break; - } - /*case KSenduiMtmOwnWebUploadIntValue: // 0x200009D5 - { - LOG(KVideoEditorLogFile, "CVeiEditVideoView::ShowAndHandleSendMenuCommandsL 6: MTM UID: 536873429"); - iWaitMode = EProcessingMovieSend; - StartTempFileProcessingL(); - break; - } - */ - default: - break; - - } - } - } - -void CVeiEditVideoView::StopNaviPaneUpdateL() - { - DoUpdateEditNaviLabelL(); - - if ( iPreviewUpdatePeriodic && iPreviewUpdatePeriodic->IsActive()) - { - iPreviewUpdatePeriodic->Cancel(); - } - } - -TRect CVeiEditVideoView::ClientOrApplicationRect( TBool aFullScreenSelected )const - { - if ( aFullScreenSelected ) - { - return AppUi()->ApplicationRect(); - } - else - { - return AppUi()->ClientRect(); - } - - } - -TBool CVeiEditVideoView::MixingConditionsOk()const - { - // prerequisites for sound mixing: at least one video with audio and one imported audio exist - if ( iMovie->VideoClipCount() > 0 && iMovie->AudioClipCount() > 0 ) - { - for ( TInt i = 0; i < iMovie->VideoClipCount(); i++ ) - { - //if (iMovie->VideoClipEditedHasAudio(i)) - if ( iMovie->VideoClipInfo( i )->HasAudio()) - { - return ETrue; - } - } - } - return EFalse; - } - -/*void CVeiEditVideoView::MixAudio() -{ - -//TReal gainVideoNew(0); -//TReal gainAudioNew(0); - -TInt gainVideoNew(0); -TInt gainAudioNew(0); - -TInt gainVideoCurrent = iMovie->GetVideoClipVolumeGainL(KVedClipIndexAll); -TInt gainAudioCurrent = iMovie->GetAudioClipVolumeGainL(KVedClipIndexAll); - -// video clips are faded -if (iContainer->AudioMixingRatio() > 0) -{ -//@ : think how to tackle situations where value is form x.0, adding 0.5 gets wrong int -//Math::Round(fadevideo, iContainer->AudioMixingRatio()*(KVolumeMaxGain/10), 2); - -gainVideoNew = iContainer->AudioMixingRatio()*(KVolumeMaxGain/10); -gainVideoNew += 0.5; // for making real to int rounding work in constructor of TVedDynamicLevelMark -gainVideoNew = 0 - gainVideoNew; -} -// audio clips are faded -else if (iContainer->AudioMixingRatio() < 0) -{ -//@ : think how to tackle situations where value is form x.0, adding 0.5 gets wrong int -//Math::Round(fadeaudio, iContainer->AudioMixingRatio()*(KVolumeMaxGain/10), 2); -gainAudioNew = iContainer->AudioMixingRatio()*(KVolumeMaxGain/10); -gainAudioNew -= 0.5; // for making real to int rounding work in constructor of TVedDynamicLevelMark -} - -if (gainVideoNew != gainVideoCurrent) -{ -iMovie->SetVideoClipVolumeGainL(KVedClipIndexAll, gainVideoNew); -} -if (gainAudioNew != gainAudioCurrent) -{ -iMovie->SetAudioClipVolumeGainL(KVedClipIndexAll, gainAudioNew); -} -} - */ - -void CVeiEditVideoView::MixAudio() - { - TReal fadevideo( 0 ); - TReal fadeaudio( 0 ); - - // video clips are faded - if ( iContainer->AudioMixingRatio() > 0 ) - { - //@ : think how to tackle situations where value is form x.0, adding 0.5 gets wrong int - //Math::Round(fadevideo, iContainer->AudioMixingRatio()*(KVolumeMaxGain/10), 2); - - fadevideo = iContainer->AudioMixingRatio()*( KVolumeMaxGain / 10 ); - fadevideo += 0.5; // for making real to int rounding work in constructor of TVedDynamicLevelMark - fadevideo = 0-fadevideo; - fadeaudio = 0; - } - // audio clips are faded - else if ( iContainer->AudioMixingRatio() < 0 ) - { - //@ : think how to tackle situations where value is form x.0, adding 0.5 gets wrong int - //Math::Round(fadeaudio, iContainer->AudioMixingRatio()*(KVolumeMaxGain/10), 2); - - fadeaudio = iContainer->AudioMixingRatio()*( KVolumeMaxGain / 10 ); - fadeaudio -= 0.5; // for making real to int rounding work in constructor of TVedDynamicLevelMark - fadevideo = 0; - } - - // video clips are faded - if ( iContainer->AudioMixingRatio() > 0 && iMovie->VideoClipCount() > 0 ) - { - TInt gain = iMovie->GetVideoClipVolumeGainL( KVedClipIndexAll ); ///(KVolumeMaxGain/10); - TInt gainNew = ( TInt )fadevideo; - if ( gainNew != gain ) - { - iMovie->SetAudioClipVolumeGainL( KVedClipIndexAll, 0 ); - iMovie->SetVideoClipVolumeGainL( KVedClipIndexAll, gainNew ); - } - } - // audio clips are faded - else if ( iContainer->AudioMixingRatio() < 0 && iMovie->AudioClipCount() > 0 ) - { - TInt gain = iMovie->GetAudioClipVolumeGainL( KVedClipIndexAll ); ///(KVolumeMaxGain/10); - TInt gainNew = ( TInt )fadeaudio; - if ( gainNew != gain ) - { - iMovie->SetVideoClipVolumeGainL( KVedClipIndexAll, 0 ); - iMovie->SetAudioClipVolumeGainL( KVedClipIndexAll, gainNew ); - } - } - else - //if marks set back to position '0' - { - if ( 0 != iMovie->GetVideoClipVolumeGainL( KVedClipIndexAll )) - { - iMovie->SetVideoClipVolumeGainL( KVedClipIndexAll, 0 ); - } - if ( 0 != iMovie->GetAudioClipVolumeGainL( KVedClipIndexAll )) - { - iMovie->SetAudioClipVolumeGainL( KVedClipIndexAll, 0 ); - } - } - } - -void CVeiEditVideoView::AdjustVolumeL() - { - TReal adjustVolume = iContainer->Volume()*( KVolumeMaxGain / 10 ); - // to make rounding to int work correctly in constructor of TVedDynamicLevelMark - // @ : if adjustvolume is x.0, rounding does not work, think how to fix problem - if ( 0 < adjustVolume ) - { - adjustVolume += 0.5; - } - else - { - adjustVolume -= 0.5; - } - - if ( iContainer->CursorLocation() == VideoEditor::ECursorOnClip ) - { - TReal currentVolume = iMovie->GetVideoClipVolumeGainL( iContainer->CurrentIndex()); ///(KVolumeMaxGain/10); - if ( 0 == iContainer->Volume()) - { - if ( 0 != ( TInt )currentVolume ) - { - iMovie->SetVideoClipVolumeGainL( iContainer->CurrentIndex(), 0 ); - } - } - else if (( TInt )currentVolume != ( TInt )adjustVolume ) - { - iMovie->SetVideoClipVolumeGainL( iContainer->CurrentIndex(), ( TInt )adjustVolume ); - } - } - else if ( iContainer->CursorLocation() == VideoEditor::ECursorOnAudio ) - { - TReal currentVolume = iMovie->GetAudioClipVolumeGainL( iContainer->CurrentIndex()); ///(KVolumeMaxGain/10); - if ( 0 == iContainer->Volume()) - { - if ( 0 != ( TInt )currentVolume ) - { - iMovie->SetAudioClipVolumeGainL( iContainer->CurrentIndex(), 0 ); - } - } - else if (( TInt )currentVolume != ( TInt )adjustVolume ) - { - iMovie->SetAudioClipVolumeGainL( iContainer->CurrentIndex(), ( TInt )adjustVolume ); - } - } - } - -void CVeiEditVideoView::StoreOrientation() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StoreOrientation: in" ); - - iOriginalOrientation = AppUi()->Orientation(); - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::StoreOrientation: out" ); - } - -void CVeiEditVideoView::RestoreOrientation() - { - LOG( KVideoEditorLogFile, "CVeiEditVideoView::RestoreOrientation: in" ); - - TRAP_IGNORE( AppUi()->SetOrientationL( iOriginalOrientation )); - - LOG( KVideoEditorLogFile, "CVeiEditVideoView::RestoreOrientation: out" ); - } - -void CVeiEditVideoView::SetNewTempFileNeeded( const TBool aUpdateNeeded ) - { - iUpdateTemp = aUpdateNeeded; - } - -// End of File