videditor/VideoEditorCommon/src/VeiAddQueue.cpp
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- 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