--- 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