--- a/videditor/VideoEditorCommon/src/VeiAddQueue.cpp Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,524 +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 <bautils.h>
-#include <coemain.h>
-#include <mgfetch.h>
-
-// User includes
-#include "Veiaddqueue.h"
-#include "Veiimageclipgenerator.h"
-#include "VeiMGFetchVerifier.h"
-#include "VideoEditorUtils.h"
-#include "VideoEditorDebugUtils.h"
-
-
-EXPORT_C CVeiAddQueue* CVeiAddQueue::NewL( MVedAudioClipInfoObserver& aView, CVedMovie& aMovie, MVeiQueueObserver& aObserver )
- {
- CVeiAddQueue* self = CVeiAddQueue::NewLC( aView, aMovie, aObserver );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-
-EXPORT_C CVeiAddQueue* CVeiAddQueue::NewLC( MVedAudioClipInfoObserver& aView, CVedMovie& aMovie, MVeiQueueObserver& aObserver )
- {
- CVeiAddQueue* self = new (ELeave) CVeiAddQueue( aView, aMovie, aObserver );
- CleanupStack::PushL( self );
- self->ConstructL();
-
- return self;
- }
-
-CVeiAddQueue::CVeiAddQueue( MVedAudioClipInfoObserver& aView, CVedMovie& aMovie, MVeiQueueObserver& aObserver ) :
- CActive(CActive::EPriorityStandard), iObserver( &aObserver ), iMovie( aMovie ), iView( aView )
- {
- }
-
-void CVeiAddQueue::ConstructL()
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::ConstructL");
-
- CActiveScheduler::Add(this);
- iInsertVideoDialogOn = EFalse;
- iWaitScheduler = new (ELeave) CActiveSchedulerWait;
- iMovie.RegisterMovieObserverL( this );
- }
-
-EXPORT_C CVeiAddQueue::~CVeiAddQueue()
- {
- iAddQueue.ResetAndDestroy();
- delete iWaitScheduler;
-
- if ( iAudioClipInfo )
- {
- delete iAudioClipInfo;
- iAudioClipInfo = NULL;
- }
-
- iMovie.UnregisterMovieObserver( this );
-
- iObserver = NULL;
- iGenerator = NULL;
- }
-
-
-EXPORT_C TBool CVeiAddQueue::ShowAudioClipDialogL()
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::ShowAudioClipDialogL() in");
- // Audio insert dialog for single file
- CDesCArrayFlat* selectedFiles = new ( ELeave ) CDesCArrayFlat( 1 );
- CleanupStack::PushL(selectedFiles);
-
- CVeiMGFetchVerifier* mgFetchVerifier = CVeiMGFetchVerifier::NewLC();
-
- if ( MGFetch::RunL( *selectedFiles, EAudioFile, EFalse, mgFetchVerifier ) == EFalse )
- {
- // User cancelled the dialog.
- CleanupStack::PopAndDestroy( mgFetchVerifier );
- CleanupStack::PopAndDestroy( selectedFiles );
- return EFalse;
- }
-
- CleanupStack::PopAndDestroy( mgFetchVerifier );
-
- if ( iAudioClipInfo )
- {
- delete iAudioClipInfo;
- iAudioClipInfo = NULL;
- }
- iObserver->NotifyQueueProcessingStarted( MVeiQueueObserver::EProcessingAudio );
- // AudioClipInfoReady notifier is in EditVideoView
- iAudioClipInfo = CVedAudioClipInfo::NewL( ( *selectedFiles )[0], iView );
-
- CleanupStack::PopAndDestroy( selectedFiles );
- LOG(KVideoEditorLogFile, "CVeiAddQueue::ShowAudioClipDialogL() out");
- return ETrue;
- }
-
-
-
-EXPORT_C TBool CVeiAddQueue::ShowVideoClipDialogL( VideoEditor::TCursorLocation aLocation, TInt aCurrentIndex )
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::ShowVideoClipDialogL In");
- // Video insert dialog for single file
- CDesCArrayFlat* selectedFiles = new ( ELeave ) CDesCArrayFlat( 1 );
- CleanupStack::PushL(selectedFiles);
-
- CVeiMGFetchVerifier* mgFetchVerifier = CVeiMGFetchVerifier::NewLC();
-
- if ( MGFetch::RunL( *selectedFiles, EVideoFile, EFalse, mgFetchVerifier ) == EFalse )
- {
- CleanupStack::PopAndDestroy( mgFetchVerifier );
- CleanupStack::PopAndDestroy( selectedFiles );
- return EFalse;
- }
-
- CleanupStack::PopAndDestroy( mgFetchVerifier );
-
- TInt insertIndex;
- iInsertVideoDialogOn = ETrue;
-
- // Video clip is added next to selected video clip. If cursor is not on videotrack, clip is
- // inserted last.
- if ( iMovie.VideoClipCount() == 0 )
- {
- insertIndex = 0;
- }
- else if ( aLocation == VideoEditor::ECursorOnAudio || aLocation == VideoEditor::ECursorOnTransition )
- {
- insertIndex = iMovie.VideoClipCount();
- }
- else
- {
- insertIndex = aCurrentIndex + 1;
- }
-
- HBufC* filename = HBufC::NewLC( (*selectedFiles )[0].Length() );
- *filename = (*selectedFiles )[0];
- iAddQueue.Append( filename );
-
- iFailedCount = 0;
- iInsertedCount = 0;
-
- iTotalCount = iAddQueue.Count();
-
- iObserver->NotifyQueueProcessingStarted( MVeiQueueObserver::EProcessingVideo );
- AddNextL( insertIndex );
-
- CleanupStack::Pop(filename);
- CleanupStack::PopAndDestroy( selectedFiles );
- LOG(KVideoEditorLogFile, "CVeiAddQueue::ShowVideoClipDialogL Out");
- return ETrue;
- }
-
-
-EXPORT_C void CVeiAddQueue::InsertMediaL( const TDesC& aFilename )
- {
- // aFilename is added to queue. Queue processing is started with StartProcessingL() function.
- RFs& fs = CCoeEnv::Static()->FsSession();
-
- if ( BaflUtils::FileExists( fs, aFilename ) )
- {
- HBufC* filename = HBufC::NewLC( aFilename.Length() );
- *filename = aFilename;
- iAddQueue.Append( filename );
-
- iTotalCount = iAddQueue.Count();
-
- CleanupStack::Pop( filename );
- }
- }
-
-EXPORT_C TInt CVeiAddQueue::Count() const
- {
- return iTotalCount;
- }
-
-EXPORT_C void CVeiAddQueue::StartProcessingL()
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::StartProcessingL");
-
- iFailedCount = 0;
- iInsertedCount = 0;
-
- iTotalCount = iAddQueue.Count();
-
- if ( iTotalCount > 0 )
- {
- iObserver->NotifyQueueProcessingStarted();
-
- AddNextL();
- }
- }
-
-TInt CVeiAddQueue::AddNextL( TInt aPosition )
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: In");
-
-// Image params
- TTimeIntervalMicroSeconds imageDuration( 5000000 );
-
- RFs& fs = CCoeEnv::Static()->FsSession();
- TInt insertErr( KErrNone );
- TInt insertPosition;
-
- for( TInt i=0;i<iTotalCount;i++ )
- {
- insertErr = KErrNone;
-
- if ( iAddQueue.Count() > 0 )
- {
- TInt percentage;
- percentage = STATIC_CAST( TInt, ( TReal(iInsertedCount+iFailedCount) / TReal(iTotalCount) )*100 + 0.5 );
- iObserver->NotifyQueueProcessingProgressed( iInsertedCount+iFailedCount+1, percentage );
-
- TDesC* filename = iAddQueue[0];
-
- TBool fileExists = BaflUtils::FileExists( fs, *filename );
-
- TParse file;
- file.Set( *iAddQueue[0], NULL, NULL );
-
- // Do not allow inserting DRM protected content.
- if( VideoEditorUtils::IsDrmProtectedL(*filename) )
- {
- LOGFMT(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: DRM protected file is rejected: %S", &filename);
- insertErr = KErrAccessDenied;
- }
-
- if ( file.ExtPresent() && fileExists && KErrNone == insertErr )
- {
- if ( (file.Ext().CompareF( KExt3gp )== 0) ||
- (file.Ext().CompareF( KExtMp4 )== 0 ))
- {
- if ( aPosition == -1 )
- {
- insertPosition = iMovie.VideoClipCount();
- }
- else
- {
- insertPosition = aPosition;
- }
- LOG(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: 2");
- iMovie.InsertVideoClipL( *filename, insertPosition );
- LOG(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: 3");
- }
- else
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: 4");
- TRAP( insertErr,
- iGenerator = CVeiImageClipGenerator::NewL(
- file.FullName(),
- TSize(KMaxVideoFrameResolutionX,KMaxVideoFrameResolutionY),
- imageDuration,
- KRgbBlack,
- KVideoClipGenetatorDisplayMode,
- fs,
- *this)
- );
- LOG(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: 5");
- }
-
- }
- if ( fileExists && insertErr == KErrNone )
- {
- iWaitScheduler->Start();
- }
- else
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: 7");
- if ( iInsertVideoDialogOn )
- {
- insertErr = EInsertingSingleClip;
- }
- else
- {
- insertErr = EInsertingFromGallery;
- }
- TFileName fileName = file.Name();
- TBool cntn = iObserver->NotifyQueueClipFailed( fileName, insertErr );
- if ( !cntn )
- {
- iAddQueue.Reset();
- break;
- }
- iFailedCount++;
- }
-
- delete iAddQueue[0];
- iAddQueue.Remove( 0 );
- } // if
- } // for
- LOGFMT2(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: 8, iInsertedCount:%d, iFailedCount:%d", iInsertedCount, iFailedCount);
- iObserver->NotifyQueueEmpty( iInsertedCount, iFailedCount );
- LOG(KVideoEditorLogFile, "CVeiAddQueue::AddNextL: Out");
- return insertErr;
- }
-
-EXPORT_C void CVeiAddQueue::GetNext()
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::GetNext: In");
- if (iWaitScheduler->IsStarted() )
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::GetNext: 1");
- iWaitScheduler->AsyncStop();
- }
- LOG(KVideoEditorLogFile, "CVeiAddQueue::GetNext: Out");
- }
-
-void CVeiAddQueue::DoCancel()
- {
- }
-
-void CVeiAddQueue::RunL()
- {
- }
-
-
-void CVeiAddQueue::NotifyImageClipGeneratorInitializationComplete(
- CVeiImageClipGenerator& /*aGenerator*/, TInt DEBUGLOG_ARG(aError) )
- {
- LOGFMT(KVideoEditorLogFile, "CVeiAddQueue::NotifyImageClipGeneratorInitializationComplete: in, aError:%d", aError);
- TRAP_IGNORE( iMovie.InsertVideoClipL(*iGenerator, ETrue, 0) );
-
- // Generator is no longer our concern
- iGenerator = NULL;
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyImageClipGeneratorInitializationComplete: out");
- }
-
-
-void CVeiAddQueue::NotifyVideoClipAdded(CVedMovie& /*aMovie*/, TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAdded: In");
- iInsertedCount++;
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAdded: Out");
- }
-
-void CVeiAddQueue::NotifyVideoClipAddingFailed(CVedMovie& /*aMovie*/, TInt DEBUGLOG_ARG(aError) )
- {
- LOGFMT(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAddingFailed: In, aError:%d", aError);
- TInt error;
-
- if ( iInsertVideoDialogOn )
- {
- error = EInsertingSingleClip;
- }
- else
- {
- error = EInsertingFromGallery;
- }
-
-
- TParse file;
- file.Set( *iAddQueue[0], NULL, NULL );
-
- TFileName fileName = file.Name();
- TBool ifContinue = iObserver->NotifyQueueClipFailed( fileName, error );
- if ( ifContinue && (error == EInsertingFromGallery) )
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAddingFailed: 1");
- iObserver->NotifyQueueProcessingStarted();
- GetNext();
- }
- else
- {
- // @: release iWaitScheduler
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAddingFailed: 2");
- iWaitScheduler->AsyncStop();
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAddingFailed: 3");
- }
- iFailedCount++;
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAddingFailed: Out");
- }
-
-void CVeiAddQueue::NotifyVideoClipRemoved(CVedMovie& /*aMovie*/, TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipRemoved: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipIndicesChanged(CVedMovie& /*aMovie*/, TInt /*aOldIndex*/,
- TInt /*aNewIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipIndicesChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipTimingsChanged(CVedMovie& /*aMovie*/,
- TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipTimingsChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipColorEffectChanged(CVedMovie& /*aMovie*/,
- TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipColorEffectChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipAudioSettingsChanged(CVedMovie& /*aMovie*/,
- TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipAudioSettingsChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipGeneratorSettingsChanged(CVedMovie& /*aMovie*/,
- TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipGeneratorSettingsChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipDescriptiveNameChanged(CVedMovie& /*aMovie*/,
- TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipDescriptiveNameChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyStartTransitionEffectChanged(CVedMovie& /*aMovie*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyStartTransitionEffectChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyMiddleTransitionEffectChanged(CVedMovie& /*aMovie*/,
- TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyMiddleTransitionEffectChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyEndTransitionEffectChanged(CVedMovie& /*aMovie*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyEndTransitionEffectChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyAudioClipAdded(CVedMovie& /*aMovie*/, TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyAudioClipAdded: In and out");
- }
-
-void CVeiAddQueue::NotifyAudioClipAddingFailed(CVedMovie& /*aMovie*/, TInt DEBUGLOG_ARG(aError) )
- {
- LOGFMT(KVideoEditorLogFile, "CVeiAddQueue::NotifyAudioClipAddingFailed: In and out, aError:%d", aError);
- }
-
-void CVeiAddQueue::NotifyAudioClipRemoved(CVedMovie& /*aMovie*/, TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyAudioClipRemoved: In and out");
- }
-
-void CVeiAddQueue::NotifyAudioClipIndicesChanged(CVedMovie& /*aMovie*/, TInt /*aOldIndex*/,
- TInt /*aNewIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyAudioClipIndicesChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyAudioClipTimingsChanged(CVedMovie& /*aMovie*/,
- TInt /*aIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyAudioClipTimingsChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyMovieQualityChanged(CVedMovie& /*aMovie*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyMovieQualityChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyMovieReseted(CVedMovie& /*aMovie*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyMovieReseted: In and out");
- }
-
-void CVeiAddQueue::NotifyMovieOutputParametersChanged(CVedMovie& /*aMovie*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyMovieOutputParametersChanged: In and out");
- }
-
-void CVeiAddQueue::NotifyAudioClipDynamicLevelMarkInserted(CVedMovie& /*aMovie*/,
- TInt /*aClipIndex*/,
- TInt /*aMarkIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyAudioClipDynamicLevelMarkInserted: In and out");
- }
-
-void CVeiAddQueue::NotifyAudioClipDynamicLevelMarkRemoved(CVedMovie& /*aMovie*/,
- TInt /*aClipIndex*/,
- TInt /*aMarkIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyAudioClipDynamicLevelMarkRemoved: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipDynamicLevelMarkInserted(CVedMovie& /*aMovie*/,
- TInt /*aClipIndex*/,
- TInt /*aMarkIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipDynamicLevelMarkInserted: In and out");
- }
-
-void CVeiAddQueue::NotifyVideoClipDynamicLevelMarkRemoved(CVedMovie& /*aMovie*/,
- TInt /*aClipIndex*/,
- TInt /*aMarkIndex*/)
- {
- LOG(KVideoEditorLogFile, "CVeiAddQueue::NotifyVideoClipDynamicLevelMarkRemoved: In and out");
- }
-
-// End of File