diff -r 000000000000 -r 951a5db380a0 videditor/ManualVideoEditor/inc/VeiEditVideoView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videditor/ManualVideoEditor/inc/VeiEditVideoView.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,1070 @@ +/* +* 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 VEDEDITVIDEOVIEW_H +#define VEDEDITVIDEOVIEW_H + +// INCLUDES +#include +#include +#include +#include +#include +#include +#include "VeiAddQueue.h" +#include "VeiTitleClipGenerator.h" +#include "VeiImageClipGenerator.h" +#include "VeiPopup.h" + +#include "veisettingsview.h" + +#include + +// CONSTANTS +const TUid KView4Id = {4}; +const TInt KMinVolume = 1; +const TInt KMaxVolume = 10; + +// FORWARD DECLARATIONS +class CVeiEditVideoContainer; +class CVeiCutVideoView; +class CVeiCutAudioView; +class CAknNaviLabel; +class CVeiEditVideoLabelNavi; +class CAknNavigationControlContainer; +class CAknNavigationDecorator; +class MGFetch; +class CAknProgressDialog; +class CSendUi; +class CVedMovie; +class CMdaAudioConvertUtility; +class MAknsDataContext; +class CMdaAudioRecorderUtility; +class CVeiErrorUI; +class CVeiTempMaker; +class CAknMemorySelectionDialog; +class CAknWaitDialog; + +class CVeiAddQueue; + +class CVeiTextDisplay; +class CVeiPopup; + + + +// CLASS DECLARATION + +/** + * CVeiEditVideoView view class. + */ +class CVeiEditVideoView: public CAknView, + public MProgressDialogCallback, + public MVedMovieObserver, + public MVedMovieProcessingObserver, + public MVedAudioClipInfoObserver, + public MMdaObjectStateChangeObserver, + public MVeiImageClipGeneratorObserver, + public MVeiTitleClipGeneratorObserver, + public MVeiQueueObserver + +{ + +public: + //Constructors and destructor + + /** + * Static factory constructor. + * + * @param aCutView Instance of cut video view. + * @param aCutAudioView No description. + * @param aSendAppUi No description. + * @return Created CVeiEditVideoView instance. + */ + static CVeiEditVideoView* NewL( CVeiCutVideoView& aCutView, + CVeiCutAudioView& aCutAudioView, + CSendUi& aSendAppUi ); + + /** + * Static factory constructor. Leaves the created object in the + * cleanup stack. + * + * @param aCutView Instance of cut video view. + * @param aCutAudioView No description. + * @param aSendAppUi No description. + * @return Created CVeiEditVideoView instance. + */ + static CVeiEditVideoView* NewLC( CVeiCutVideoView& aCutView, + CVeiCutAudioView& aCutAudioView, + CSendUi& aSendAppUi ); + + /** + * Destructor. + */ + virtual ~CVeiEditVideoView(); + + TUid Id()const; + +public: + // New functions + + void CancelWaitDialog( TInt aError = 0 ); + /** + * Inserts video clip to movie + * + * @param aFilename Video clip to insert. + * @param aStartNow No description. + * @return KErrNone if process was started, + * KErrNotReady if movie was not ready. + */ + TInt AddClipL( const TDesC& aFilename, TBool aStartNow ); + + /** + * Shows error note with given message. + * + * @param aResourceId No description. + * @param aError No description. + */ + void ShowErrorNote( const TInt aResourceId, TInt aError = 0 )const; + + /** + * Shows global error note for given error. + * There are empirically tested error codes for which platform shows something + * For other ones platform does not show anything and for them default string is showed. + * These error codes must be individually tested for every phone model. + * + * @param aError standard error code + */ + void ShowGlobalErrorNote( TInt aError = 0 )const; + + /** + * Returns audio duration of the movie. + * + * @return movie audio duration in microseconds + */ + TTimeIntervalMicroSeconds OriginalAudioDuration()const; + + /** + * Inserts next video clip to movie from videoclip array. + */ + void AddNext(); + + /** + * Processing wait modes + */ + enum TWaitMode + { + ENotWaiting = 0x6300, // 25344 + EProcessingMovieSave, + EProcessingMovieSaveThenQuit, + EOpeningAudioInfo, + EConvertingAudio, + EProcessingMovieForCutting, + EProcessingMoviePreview, + EProcessingMovieSend, + EProcessingError, + ECuttingAudio, + EDuplicating, + EProcessingMovieTrimMms, + ESlowMotion, + EProcessingAudioError + }; + + /** + * Editor states + */ + enum TEditorState + { + EPreview = 0x6500, // 25856 + EQuickPreview, + EEdit, + EBufferingVideo, + EMixAudio, + EAdjustVolume + }; + + void SetEditorState( TEditorState aState ); + + void UpdateMediaGalleryL(); + + TRect ClientOrApplicationRect( TBool aFullScreenSelected )const; + + /** + * Stores App UI orientation. + * + * @return No description. + */ + void StoreOrientation(); + + /** + * Restores the previously stored App UI orientation. + * + * @return No description. + */ + void RestoreOrientation(); + + /** + * Handles a change to the control's resources. + */ + void HandleResourceChange( TInt aType ); + +public: + // Functions from base classes + + /** + * From MProgressDialogCallback, callback method gets + * called when a dialog is dismissed. + * + * @param aButtonId Button id. + */ + virtual void DialogDismissedL( TInt aButtonId ); + + /** + * From MEikMenuObserver, dynamically initialises a menu + * pane. The Uikon framework calls this function, if it is implemented + * in a menu’s observer, immediately before the menu pane is activated. + * + * @param aResourceId Resource ID identifying the menu pane to + * initialise. + * @param aMenuPane The in-memory representation of the menu pane. + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * From CAknView, no description. + * + * @param aCommand No description. + */ + void HandleCommandL( TInt aCommand ); + + + /** + * No description. + */ + void InsertNewAudio(); + + /** + * No description. + */ + void SetFullScreenSelected( TBool aFullScreenSelected ); + + /** + * Starts navipane update. + */ + void StartNaviPaneUpdateL(); + + /** + * Stops the navi pane update. + */ + void StopNaviPaneUpdateL(); + + /** + * No description. + */ + void ShowVolumeLabelL( TInt aVolume ); + + /** + * No description. + */ + void DoUpdateEditNaviLabelL()const; + virtual void HandleScreenDeviceChangedL(); + + /** + * No description. + * + * + * @return No description. + */ + TBool IsEnoughFreeSpaceToSaveL( TInt aBytesToAdd = 0 )const; + + void SetCbaL( TEditorState aState ); + +protected: + // New functions + + /** + * Callback function to be called when the + * iAudioRecordPeriodic is scheduled after a timer event. + * + * @param aThis Pointer to this class. + * @return Always one (1); indicates that this callback function + * should be called again. + */ + static TInt UpdateAudioRecording( TAny* aThis ); + + static TInt UpdateNaviPreviewing( TAny* aThis ); + + /** + * No description. + */ + void DoUpdateAudioRecording(); + + /** + * No description. + * + * + * @return No description. + */ + TBool IsEnoughFreeSpaceToSave2L( TInt aBytesToAdd = 0 )const; + + /** + * Renames generated iTempfile and opens + * CSendUi. + */ + void SendMovieL(); + + /** + * If needed, creates temporary video clip for CVeiPreviewView and + * activates PreviewView. + */ + void StartTempFileProcessingL(); + + /** + * Shows information note with given message. + * + * @param aMessage Message to show. + */ + void ShowInformationNoteL( const TDesC& aMessage )const; + + /** + * Updates EditLabel + */ + void UpdateEditNaviLabel()const; + + /** + * Removes selected clip(audio or video) from the movie. + * Confirmation note is shown. + */ + void RemoveCurrentClipL(); + + /** + * Creates editlabel. + * + * @return No description. + */ + CAknNavigationDecorator* CreateEditNaviLabelL(); + + /** + * Creates editlabel. + * + * @return No description. + */ + CAknNavigationDecorator* CreatePreviewNaviLabelL(); + + + /** + * Creates movelabel. + * + * @return No description. + */ + CAknNavigationDecorator* CreateMoveNaviLabelL(); + + /** + * Save movie to file. + * + * @param aQuitAfterSaving after saving move to VideosView + * @return ETrue if quit after saving, + * EFalse otherwise. + */ + TBool SaveL( TWaitMode aQuitAfterSaving ); + + /** + * 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 CheckMemoryCardAvailabilityL(); + + static TInt HideVolumeCallbackL( TAny* aPtr ); + + /** + * Hides the volume indicator. + */ + void HideVolume(); + +protected: + // Functions from base classes + + /** + * From CAknView, activates this view. + * + * @param aPrevViewId Previous view id. + * @param aCustomMessageId Custom message id. + * @param aCustomMessage Custom message. + */ + void DoActivateL( const TVwsViewId& aPrevViewId, TUid aCustomMessageId, + const TDesC8& aCustomMessage ); + + /** + * From CAknView, deactivates this view. + */ + void DoDeactivate(); + + /** + * From CAknView, HandleForegroundEventL( TBool aForeground ). + * + * @param aForeground No description. + */ + virtual void HandleForegroundEventL( TBool aForeground ); + + virtual void NotifyQueueProcessingStarted( + MVeiQueueObserver::TProcessing aMode = + MVeiQueueObserver::ENotProcessing ); + + virtual void NotifyQueueEmpty( TInt aInserted, TInt aFailed ); + + virtual void NotifyQueueProcessingProgressed( TInt aProcessedCount, + TInt aPercentage ); + + virtual TBool NotifyQueueClipFailed( const TDesC& aFilename, TInt aError ); + + /** + * From MMdaObjectStateChangeObserver, no description. + * + * @param aObject No description. + * @param aPreviousState No description. + * @param aCurrentState No description. + * @param aErrorCode No description. + */ + virtual void MoscoStateChangeEvent( CBase* aObject, + TInt aPreviousState, + TInt aCurrentState, + TInt aErrorCode ); + + /** + * From MVedAudioClipInfoObserver, no description. + * + * @param aInfo No description. + * @param aError No description. + */ + virtual void NotifyAudioClipInfoReady( CVedAudioClipInfo& aInfo, + TInt aError ); + + /** + * From MVedMovieProcessingObserver, no description. + * + * @param aMovie No description. + */ + virtual void NotifyMovieProcessingStartedL( CVedMovie& aMovie ); + + /** + * From MVedMovieProcessingObserver, no description. + * + * @param aMovie No description. + * @param aPercentage No description. + */ + virtual void NotifyMovieProcessingProgressed( CVedMovie& aMovie, + TInt aPercentage ); + + /** + * From MVedMovieProcessingObserver, no description. + * + * @param aMovie No description. + * @param aError No description. + */ + virtual void NotifyMovieProcessingCompleted( CVedMovie& aMovie, + TInt aError ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyVideoClipAdded( CVedMovie& aMovie, TInt aIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aError No description. + */ + virtual void NotifyVideoClipAddingFailed( CVedMovie& aMovie, + TInt aError ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyVideoClipRemoved( CVedMovie& aMovie, TInt aIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aOldIndex No description. + * @param aNewIndex No description. + */ + virtual void NotifyVideoClipIndicesChanged( CVedMovie& aMovie, + TInt aOldIndex, + TInt aNewIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyVideoClipTimingsChanged( CVedMovie& aMovie, + TInt aIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyVideoClipColorEffectChanged( CVedMovie& aMovie, + TInt aIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + */ + virtual void NotifyStartTransitionEffectChanged( CVedMovie& aMovie ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyMiddleTransitionEffectChanged( CVedMovie& aMovie, + TInt aIndex ); + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + */ + virtual void NotifyEndTransitionEffectChanged( CVedMovie& aMovie ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyAudioClipAdded( CVedMovie& aMovie, TInt aIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aError No description. + */ + virtual void NotifyAudioClipAddingFailed( CVedMovie& aMovie, + TInt aError ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyAudioClipRemoved( CVedMovie& aMovie, TInt aIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aOldIndex No description. + * @param aNewIndex No description. + */ + virtual void NotifyAudioClipIndicesChanged( CVedMovie& aMovie, + TInt aOldIndex, + TInt aNewIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + * @param aIndex No description. + */ + virtual void NotifyAudioClipTimingsChanged( CVedMovie& aMovie, + TInt aIndex ); + + /** + * From MVedMovieObserver, no description. + * + * @param aMovie No description. + */ + virtual void NotifyMovieReseted( CVedMovie& aMovie ); + + /** + * Called to notify that the audio settings of a video clip have changed. + * + * @param aMovie movie + * @param aClip changed video clip + */ + virtual void NotifyVideoClipAudioSettingsChanged( CVedMovie& aMovie, + TInt aIndex ); + + /** + * Called to notify that some generator-specific settings of + * a generated video clip have changed. + * + * @param aMovie movie + * @param aClip changed video clip + */ + virtual void NotifyVideoClipGeneratorSettingsChanged( CVedMovie& aMovie, + TInt aIndex ); + + /** + * Called to notify that the descriptive name of a clip has changed. + * + * @param aMovie movie + * @param aIndex changed video clip index + */ + virtual void NotifyVideoClipDescriptiveNameChanged( CVedMovie& aMovie, + TInt aIndex ); + + /** + * Called to notify that the quality setting of the movie has been + * changed. + * + * @param aMovie movie + */ + virtual void NotifyMovieQualityChanged( CVedMovie& aMovie ); + + /** + * Called to notify that the output parameters have been changed + * + * @param aMovie movie + */ + virtual void NotifyMovieOutputParametersChanged( CVedMovie& aMovie ); + + /** + * Called to notify that a dynamic level mark has been inserted + * to an audio clip. + * + * @param aMovie movie + * @param aClipIndex audio clip index + * @param aMarkIndex index of the inserted level mark + */ + virtual void NotifyAudioClipDynamicLevelMarkInserted( CVedMovie& aMovie, + TInt aClipIndex, + TInt aMarkIndex ); + + /** + * Called to notify that a dynamic level mark has been inserted + * to an audio clip. + * + * @param aMovie movie + * @param aClipIndex audio clip index + * @param aMarkIndex index of the inserted level mark + */ + virtual void NotifyAudioClipDynamicLevelMarkRemoved( CVedMovie& aMovie, + TInt aClipIndex, + TInt aMarkIndex ); + + /** + * Called to notify that a dynamic level mark has been inserted + * to an audio clip. + * + * @param aMovie movie + * @param aClipIndex audio clip index + * @param aMarkIndex index of the inserted level mark + */ + virtual void NotifyVideoClipDynamicLevelMarkInserted( CVedMovie& aMovie, + TInt aClipIndex, + TInt aMarkIndex ); + + /** + * Called to notify that a dynamic level mark has been inserted + * to an audio clip. + * + * @param aMovie movie + * @param aClipIndex audio clip index + * @param aMarkIndex index of the inserted level mark + */ + virtual void NotifyVideoClipDynamicLevelMarkRemoved( CVedMovie& aMovie, + TInt aClipIndex, + TInt aMarkIndex ); + + + /** + * From MVedImageClipGeneratorObserver + */ + virtual void NotifyImageClipGeneratorInitializationComplete( + CVeiImageClipGenerator& aGenerator, + TInt aError ); + + virtual void NotifyTitleClipBackgroundImageLoadComplete( + CVeiTitleClipGenerator& aGenerator, + TInt aError); + + +private: + + void UpdateInsertingProgressNoteL( TInt aProcessed ); + + /** + * C++ default constructor. + * + * @param aCutView instance of cut video view + * @param aVideoList instance of videolist + */ + CVeiEditVideoView( CVeiCutVideoView& aCutView, + CVeiCutAudioView& aCutAudioView, + CSendUi& aSendAppUi ); + + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL(); + + + void ShowAndHandleSendMenuCommandsL(); + + void BrowseStartTransition( TBool aUpOrDown ); + + /** + * Check is videoclip mms compatible. + * + * @param + */ + void MmsSendCompatibleCheck(); + + + /** + * this function decides whether audio mixing can be made + */ + TBool MixingConditionsOk()const; + + /** + * this function fades either the videos' audio level or the imported sounds' audio level in the movie + * + */ + void MixAudio(); + + + /** + * this function removes dynamic level marks from all the video and audio clip(s) in the movie + * + */ + //void RemoveAudioMixingLevelMarks(); + + /** + * this function removes dynamic level marks from the individual video clip(s) in the movie + * @param aIndex index of video clip where marks are to be removed from + * if aIndex is empty or has negative value, marks are removed from every video clip currently in the movie + * + */ + //void RemoveVideoClipVolumeLevelMarks(TInt aIndex = -1); + + /** + * this function removes video dynamic level marks from the individual audio clip(s) in the movie + * @param aIndex index of audio clip where marks are to be removed from + * if aIndex is empty or has negative value, marks are removed from every audio clip currently in the movie + * + */ + //void RemoveAudioClipVolumeLevelMarks(TInt aIndex = -1); + + /** + * this function adjusts volume of the video's audio or the imported audio + * + */ + void AdjustVolumeL(); + + /** Callback function */ + static TInt AsyncBackSend( TAny* aThis ); + /** Callback function */ + static TInt AsyncBackSaveThenExitL( TAny* aThis ); + + /** + * This function is called to tell whether the movie's state has changed so that new temporary movie + * file have to be processed. The file is needed in previewing for example. + * The processing starts when the temporary movie file is next time needed. + * @param aUpdateNeeded tells whether new temporary movie file is needed + */ + void SetNewTempFileNeeded( const TBool aUpdateNeeded ); + + /* + There is an GetDurationEstimateL() method in CVedMovie that + estimates end cutpoint with given target size and start cutpoint for current movie. + This method gives end cutpoint time in movie's time scale. + + If end cutpoint is not in the first clip but in some subsequent clip things are not straightforward. + The clip accomodatint the end cutpoint must be localized as well as the exact timepoint in clip's + time scale. + + If clips have been edited (e.g. marks set) before call to GetDurationEstimateL(), things get + more complicated. + + If slow motion is applied to clips things get even more complicated. + + There is no resrictions of usage presented in the documentation of CVedMovie::GetDurationEstimateL() (vedmovie.h) + + */ + TBool FitsToMmsL(); + + +private: + // Data + + /** + * Cut video view. + */ + CVeiCutVideoView& iCutView; + + /** + * Cut audio view. + */ + CVeiCutAudioView& iCutAudioView; + + /** + * No description. + */ + CSendUi& iSendAppUi; + + /** + * No description. + */ + CVedAudioClipInfo* iAudioClipInfo; + + /** + * No description. + */ + CAknNavigationControlContainer* iNaviPane; + + /** + * Edit label. + */ + CAknNavigationDecorator* iEditLabel; + + /** + * Preview label. + */ + CAknNavigationDecorator* iPreviewLabel; + + /** + * Move label. + */ + CAknNavigationDecorator* iMoveLabel; + + /** + * Progress info for the progress dialog. + */ + //CEikProgressInfo* iProgressInfo; + + /** + * Progress dialog. + */ + CAknProgressDialog* iProgressNote; + + /** + * Original audio clip index. + */ + TInt iOriginalAudioClipIndex; + + /** + * Original video clip index. + */ + TInt iOriginalVideoClipIndex; + + /** + * Original audio clip starting point. + */ + TTimeIntervalMicroSeconds iOriginalAudioStartPoint; + + /** + *Original audio clip duration. + */ + TTimeIntervalMicroSeconds iOriginalAudioDuration; + + /** + * Original video clip cut in time. + */ + TTimeIntervalMicroSeconds iOriginalCutInTime; + TTimeIntervalMicroSeconds iOriginalCutOutTime; + + /** + * Original audio clip cut in time. + */ + TTimeIntervalMicroSeconds iOriginalAudioCutInTime; + TTimeIntervalMicroSeconds iOriginalAudioCutOutTime; + + TTimeIntervalMicroSeconds iOriginalVideoStartPoint; + + TTimeIntervalMicroSeconds iOriginalVideoCutInTime; + + TTimeIntervalMicroSeconds iOriginalVideoCutOutTime; + + /** + * No description. + */ + TInt iCutVideoIndex; + + /** + * No description. + */ + TInt iCutAudioIndex; + + /** + * No description. + */ + TUid iGivenSendCommand; + + /** + * Temporary file name for storing preview clip. + */ + HBufC* iTempFile; + + /** + * Temporary file name for storing preview clip. + */ + HBufC* iTempRecordedAudio; + + /** + * Wait mode; are we waiting for progress or wait note? + */ + TWaitMode iWaitMode; + + /** + * No description. + */ + TBool iMovieSavedFlag; + + /** + * For indicating the first movie clip adding. + */ + TBool iMovieFirstAddFlag; + + /** + * No description. + */ + TBool iUpdateTemp; + + /** + * No description. + */ + TBool iConverting; + + /** + * No description. + */ + CMdaAudioRecorderUtility* iRecorder; + + /** + * No description. + */ + CPeriodic* iAudioRecordPeriodic; + + CPeriodic* iPreviewUpdatePeriodic; + + /** Volume navi decorator. */ + CAknNavigationDecorator* iVolumeNavi; + + /** + * No description. + */ + TTimeIntervalMicroSeconds iRecordedAudioMaxDuration; + + /** + * No description. + */ + CVeiErrorUI* iErrorUI; + + /** + * No description. + */ + TInt iErrorNmb; + + /** + * No description. + */ + HBufC* iSaveToFileName; + + /** + * No description. + */ + TBool iSendKey; + + /** + * No description. + */ + CVeiTempMaker* iTempMaker; + + TEditorState iEditorState; + + CAknWaitDialog* iWaitDialog; + + CVedVideoClipGenerator* iGenerator; + + CVeiAddQueue* iMediaQueue; + + TBool iFullScreenSelected; + + /** Volume hiding timer. */ + CPeriodic* iVolumeHider; + + + /** + * Indicates whether or not the memory card accessibility is checked. + * Usually accessibility is checked only once. + */ + TBool iMemoryCardChecked; + + CVeiPopup* iPopup; + + /** + * No description. + */ + CVedMovie* iMovie; + + /** + * No description. + */ + CVeiEditVideoContainer* iContainer; + + TInt iOriginalVideoSpeed; + + TVeiSettings iMovieSaveSettings; + CAknMemorySelectionDialog::TMemory iMemoryInUse; + + + CVedMovie::TVedMovieQuality iBackupSaveQuality; + + TBool iChangedFromMMCToPhoneMemory; + + TInt iPercentProcessed; + + /** + * Store the original orientation when forcing to portrait + */ + CAknAppUiBase::TAppUiOrientation iOriginalOrientation; + + /** Callback utility */ + CAsyncCallBack* iCallBack; + +#include "veieditvideoview.inl" +}; + +#endif // VEDEDITVIDEOVIEW_H + +// End of File