videditor/SimpleVideoEditor/inc/SimpleVideoEditorImpl.h
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- a/videditor/SimpleVideoEditor/inc/SimpleVideoEditorImpl.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +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: 
-*
-*/
-
-  
-#ifndef _SIMPLEVIDEOEDITORIMPL_H_
-#define _SIMPLEVIDEOEDITORIMPL_H_
-
-//<IBUDSW>
-
-// INCLUDES
-#include <e32std.h>
-#include <coemain.h>
-#include <ConeResLoader.h> 
-#include <aknappui.h>
-#include <VedMovie.h>
-#include <aknprogressdialog.h>
-#include <aknwaitdialog.h> 
-#include <VedAudioClipInfo.h>
-#include "SimpleVideoEditorExitObserver.h"
-#include "ExtProgressDialog.h"
-#include "VeiImageClipGenerator.h"
-#include "VeiTitleClipGenerator.h"
-
-#include "SimpleVideoEditor.h"
-#include "veisettings.h"
-
-// FORWARD DECLATATIONS
-class CVeiTempMaker;
-class CExtProgressDialog;
-class CDummyControl;
-class CErrorUI;
-
-
-// CLASS DECLARATION
-NONSHARABLE_CLASS(CSimpleVideoEditorImpl) : public CActive, 
-											public MVedMovieObserver,
-											public MVedMovieProcessingObserver,
-											public MVeiImageClipGeneratorObserver,
-											public MProgressDialogCallback,
-											public MExtProgressDialogCallback,
-											public MCoeForegroundObserver,
-											public MVedAudioClipInfoObserver
-	{
-	public:	// Constructor and destructor
-
-		static CSimpleVideoEditorImpl* NewL(MSimpleVideoEditorExitObserver& aExitObserver);
-		~CSimpleVideoEditorImpl();
-
-	public: // New functions
-
-		void StartMerge( const TDesC& aSourceFileName );
-		void StartChangeAudio( const TDesC& aSourceFileName );
-		void StartAddText( const TDesC& aSourceFileName );
-
-		void StartWaitDialogL();
-		void StartProgressDialogL();
-		void StartAnimatedProgressDialogL ();
-		void CancelMovieProcessing();
-
-	private: // from CActive
-
-		void DoCancel();
-		void RunL();
-		TInt RunError(TInt aError);
-
-	private: // from MProgressDialogCallback
-
-		void DialogDismissedL( TInt aButtonId );
-
-	private: //from MVedMovieObserver
-
-		void NotifyVideoClipAdded(CVedMovie& aMovie, TInt aIndex);
-		void NotifyVideoClipAddingFailed(CVedMovie& aMovie, TInt aError);
-		void NotifyVideoClipRemoved(CVedMovie& aMovie, TInt aIndex);
-		void NotifyVideoClipIndicesChanged(CVedMovie& aMovie, TInt aOldIndex, TInt aNewIndex);
-		void NotifyVideoClipTimingsChanged(CVedMovie& aMovie, TInt aIndex);
-		void NotifyVideoClipSettingsChanged(CVedMovie& aMovie, TInt aIndex);
-	    void NotifyVideoClipColorEffectChanged(CVedMovie& aMovie, TInt aIndex);
-	    void NotifyVideoClipAudioSettingsChanged(CVedMovie& aMovie, TInt aIndex);
-		void NotifyVideoClipGeneratorSettingsChanged(CVedMovie& aMovie, TInt aIndex);
-	    void NotifyVideoClipDescriptiveNameChanged(CVedMovie& aMovie, TInt aIndex);
-		void NotifyStartTransitionEffectChanged(CVedMovie& aMovie);
-		void NotifyMiddleTransitionEffectChanged(CVedMovie& aMovie, TInt aIndex);
-		void NotifyEndTransitionEffectChanged(CVedMovie& aMovie);
-		void NotifyAudioClipAdded(CVedMovie& aMovie, TInt aIndex);
-		void NotifyAudioClipAddingFailed(CVedMovie& aMovie, TInt aError);
-		void NotifyAudioClipRemoved(CVedMovie& aMovie, TInt aIndex);
-		void NotifyAudioClipIndicesChanged(CVedMovie& aMovie, TInt aOldIndex, TInt aNewIndex);
-		void NotifyAudioClipTimingsChanged(CVedMovie& aMovie, TInt aIndex);
-		void NotifyMovieQualityChanged(CVedMovie& aMovie);
-	    void NotifyMovieReseted(CVedMovie& aMovie);
-		void NotifyMovieOutputParametersChanged(CVedMovie& aMovie);
-	    void NotifyAudioClipDynamicLevelMarkInserted(CVedMovie& aMovie, TInt aClipIndex,  TInt aMarkIndex);
-		void NotifyAudioClipDynamicLevelMarkRemoved(CVedMovie& aMovie, TInt aClipIndex, TInt aMarkIndex);
-		void NotifyVideoClipDynamicLevelMarkInserted(CVedMovie& aMovie, TInt aClipIndex, TInt aMarkIndex);
-		void NotifyVideoClipDynamicLevelMarkRemoved(CVedMovie& aMovie, TInt aClipIndex, TInt aMarkIndex);
-
-	private: //from MVedMovieProcessingObserver
-
-	    void NotifyMovieProcessingStartedL(CVedMovie& aMovie);
-	    void NotifyMovieProcessingProgressed(CVedMovie& aMovie, TInt aPercentage);
-		void NotifyMovieProcessingCompleted(CVedMovie& aMovie, TInt aError);
-		
-    public: // from MVedAudioClipInfoObserver 
-
-        void NotifyAudioClipInfoReady( CVedAudioClipInfo& aInfo, TInt aError );
-
-	public: //from MVeiImageClipGeneratorObserver
-
-		void NotifyImageClipGeneratorInitializationComplete(CVeiImageClipGenerator& aGenerator, TInt aError);
-    
-	private: // From MCoeForegroundObserver
-
-		virtual void HandleGainingForeground();
-		virtual void HandleLosingForeground();
-
-	private: // Construct
-
-		CSimpleVideoEditorImpl(MSimpleVideoEditorExitObserver& aExitObserver);
-		void ConstructL();
-
-	private: // New functions
-
-		// Helper functions to keep RunL function smaller
-		void InitializeOperationL();
-		void GetMergeInputFileL();
-		void GetAudioFileL();
-		void GetTextL();
-
-		TInt ShowListQueryL( TInt& aPosition, TInt aHeadingResourceId, TInt aQueryResourceId ) const;	
-        
-        void StartMovieProcessingL(const TDesC& aSourceFile);
-        
-        void RestoreOrientation();
-        
-        /** FilterError
-		*
-		*	Sets error code based on current values of iState and iOperationMode
-		*	i.e this is a context sensitive error mapping function
-		*
-		*	@param 
-		*	@return new error code
-		*/
-        TInt FilterError() const;
-
-		/** CompleteRequest
-		*
-		*	Force RunL
-		*
-		*	@param -
-		*	@return -
-		*/
-		void CompleteRequest();
-
-		/**
-        *   Shows error note with given message.
-        * 
-        *   @param aResourceId No description.         
-        */
-        void ShowErrorNote( const TInt aResourceId ) const;
-
-		/**
-		*   HandleError
-		* 
-		*   @param aErr Error code         
-		*/
-		void HandleError();
-				
-		/*	QueryAudioInsertionL
-		*
-		*	Launches a query dialog in case audio clip is shorter or longer
-		*   than the video clip
-		*
-		*   @param - 
-		*   @return 0 if user selects "No", 
-		*           1 if video and audio clips are the same length or
-		*             the user selects "Yes"
-		*/												
-        TInt QueryAudioInsertionL( TTimeIntervalMicroSeconds aVideoDuration, 
-                                   TTimeIntervalMicroSeconds aAudioDuration );										
-		
-		/**
-		*   ProcessingOkL
-		* 
-		*   Called after succesfull processing
-		*/
-		void ProcessingOkL();
-		
-		/**
-		*   ProcessingFailed
-		* 
-		*   Called after unsuccesfull processing
-		*/
-		void ProcessingFailed();
-		
-	    /**	QueryAndSaveL
-		*   
-		*	Displays Avkon file handling queries
-		*
-		* 	@param aSourceFileName  name of the video clip that
-		*							is selected to be merged
-		*   @return TInt 1 if the video should be saved,
-		*				 0 if the user has cancelled the saving
-		*	
-		*/		
-		TInt QueryAndSaveL(const TDesC& aSourceFileName); 
-		
-		/*	LaunchSaveVideoQueryL 
-		*
-		*	Launches a query dialog "Save video:" with items
-		*	"Replace original" and "Save with a new name"
-		*
-		*   @param - 
-		*   @return - list query id or -1 if the user selects No
-		*/        		
-		TInt LaunchSaveVideoQueryL (); 
-		
-		/*	LaunchSaveChangesQueryL
-		*
-		*	Launches a query dialog "Save changes?" query.
-		*
-		*   @param - 
-		*   @return 0 if user selects "No", otherwise 1
-		*/		
-		TInt LaunchListQueryDialogL (MDesCArray *	aTextItems,
-										const TDesC &	aPrompt); 
-								
-		void ResolveCaptionNameL( TApaAppCaption& aCaption ) const;
-
-	private: // Data
-
-		enum TOperationMode
-			{
-			EOperationModeMin = 0, // invalid
-			EOperationModeMerge,
-			EOperationModeMergeWithVideo,
-			EOperationModeMergeWithImage,
-			EOperationModeChangeAudio,
-			EOperationModeAddText,
-			EOperationModeMax      // invalid
-			} iOperationMode;
-					
-		enum TState
-			{
-			EStateMin = 0, // Invalid
-			EStateInitializing,
-			EStateInsertInputFirst,
-			EStateInsertInputSecond,
-			EStateInsertVideo,
-			EStateCreateImageGenerator,
-			EStateInsertImage,
-			EStateCheckAudioLength,
-			EStateInsertAudio,
-			EStateInsertTextToBegin,
-			EStateInsertTextToEnd,
-			EStateProcessing,
-			EStateProcessingOk,
-			EStateProcessingFailed,
-			EStateFinalizing,
-			EStateReady,
-			EOpMax      // Invalid
-			} iState;
-
-		CEikonEnv&				iEnv;
-
-		// Dummy control to eat key presses while dialogs are not active
-		CDummyControl*			iDummyControl;
-
-		// Interface to notify completion
-		MSimpleVideoEditorExitObserver& iExitObserver;
-
-		RConeResourceLoader 	iResLoader;
-
-		// 
-		CVedMovie*              iMovie;
-
-        // Temporary file name for storing preview clip.
-        HBufC*                  iTempFile;
-
-		// Owned by iMovie
-		CVeiImageClipGenerator* iImageClipGenerator;
-		
-		// Owned by iMovie
-		CVeiTitleClipGenerator* iTextGenerator;
-
-		// Input and output file names
-		TFileName 				iSourceFileName;
-		TFileName				iMergeFileName;
-		TFileName 				iAudioFileName;
-		HBufC*					iAddText;
-		TFileName 				iOutputFileName;
-
-		// Store the original orientation when forcing to portrait
-		CAknAppUiBase::TAppUiOrientation iOriginalOrientation;
-
-		// For process priority manipulation
-		TProcessPriority 		iOriginalProcessPriority;
-		TBool 					iProcessPriorityAltered;
-
-		// Progress dialog.
-		CAknProgressDialog*		iProgressDialog;
-
-		// Progress dialog.
-		CExtProgressDialog*		iAnimatedProgressDialog;
-
-		// Wait dialog.
-		CAknWaitDialog*			iWaitDialog;
-
-		TInt 					iPercentagesProcessed;
-		TInt 					iCancelPercentage;
-		TInt					iError;
-		
-		// Position where the image or video will be merged
-		// 0 if to the beginning, 1 if to the end.
-		TInt					iVideoOrImageIndex; 
-			
-		/** Error UI */
-		CErrorUI*            iErrorUI; 
-        
-        /** Pointer to an instance of CVedAudioClipInfo */
-        CVedAudioClipInfo* iAudioClipInfo;
-
-		/** Allowed audio mime types, used as playback in video */
-		CDesCArrayFlat *iAcceptedAudioTypes;
-		
-		/** Used to figure out if the CVeiImageClipGenerator::NewL() has
-		 *  completed in a situation where the action is cancelled. */
-		TBool				iGeneratorComplete;
-		TBool				iDialogDismissed;
-	};
-
-//</IBUDSW>
-#endif
-
-// End of file