videditor/ManualVideoEditor/inc/VeiEditVideoView.h
changeset 0 951a5db380a0
--- /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 <aknview.h>
+#include <maknfilefilter.h> 
+#include <aknprogressdialog.h> 
+#include <VedMovie.h>
+#include <utility.h>
+#include <caknmemoryselectiondialog.h> 
+#include "VeiAddQueue.h"
+#include "VeiTitleClipGenerator.h"
+#include "VeiImageClipGenerator.h"
+#include "VeiPopup.h"
+
+#include "veisettingsview.h"
+
+#include <AknQueryDialog.h> 
+
+//  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 <code>CVeiEditVideoView</code> 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 <code>CVeiEditVideoView</code> 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 <code>KErrNone</code> if process was started,
+     *		   <code>KErrNotReady</code> 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 <code>MProgressDialogCallback</code>, callback method gets
+     * called when a dialog is dismissed.
+     *
+     * @param aButtonId  Button id.
+     */
+    virtual void DialogDismissedL( TInt aButtonId );
+
+    /**
+     * From <code>MEikMenuObserver</code>, 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 <code>CAknView</code>, 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 
+     * <code>iAudioRecordPeriodic</code> 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 <code>iTempfile</code> and opens 
+     * <code>CSendUi</code>.
+     */
+    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 <code>ETrue if quit after saving,
+     *         <code>EFalse</code> 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 <code>CAknView</code>, 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 <code>CAknView</code>, deactivates this view.
+     */
+    void DoDeactivate();
+
+    /**
+     * From <code>CAknView</code>, 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 <code>MMdaObjectStateChangeObserver</code>, 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 <code>MVedAudioClipInfoObserver</code>, no description.
+     *
+     * @param aInfo No description.
+     * @param aError No description.
+     */
+    virtual void NotifyAudioClipInfoReady( CVedAudioClipInfo& aInfo,
+                                           TInt aError );
+
+    /**
+     * From <code>MVedMovieProcessingObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     */
+    virtual void NotifyMovieProcessingStartedL( CVedMovie& aMovie );
+
+    /**
+     * From <code>MVedMovieProcessingObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aPercentage No description.
+     */
+    virtual void NotifyMovieProcessingProgressed( CVedMovie& aMovie, 
+                                                  TInt aPercentage );
+
+    /**
+     * From <code>MVedMovieProcessingObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aError No description.
+     */
+    virtual void NotifyMovieProcessingCompleted( CVedMovie& aMovie,
+                                                 TInt aError );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyVideoClipAdded( CVedMovie& aMovie, TInt aIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aError No description.
+     */
+    virtual void NotifyVideoClipAddingFailed( CVedMovie& aMovie,
+                                              TInt aError );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyVideoClipRemoved( CVedMovie& aMovie, TInt aIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aOldIndex No description.
+     * @param aNewIndex No description.
+     */
+    virtual void NotifyVideoClipIndicesChanged( CVedMovie& aMovie,
+                                                TInt aOldIndex, 
+                                                TInt aNewIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyVideoClipTimingsChanged( CVedMovie& aMovie,
+                                                TInt aIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyVideoClipColorEffectChanged( CVedMovie& aMovie,
+                                                    TInt aIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     */
+    virtual void NotifyStartTransitionEffectChanged( CVedMovie& aMovie );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyMiddleTransitionEffectChanged( CVedMovie& aMovie,
+                                                      TInt aIndex );
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     */
+    virtual void NotifyEndTransitionEffectChanged( CVedMovie& aMovie );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyAudioClipAdded( CVedMovie& aMovie, TInt aIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aError No description.
+     */
+    virtual void NotifyAudioClipAddingFailed( CVedMovie& aMovie,
+                                              TInt aError );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyAudioClipRemoved( CVedMovie& aMovie, TInt aIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aOldIndex No description.
+     * @param aNewIndex No description.
+     */
+    virtual void NotifyAudioClipIndicesChanged( CVedMovie& aMovie, 
+                                                TInt aOldIndex, 
+                                                TInt aNewIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, no description.
+     *
+     * @param aMovie No description.
+     * @param aIndex No description.
+     */
+    virtual void NotifyAudioClipTimingsChanged( CVedMovie& aMovie,
+                                                TInt aIndex );
+
+    /**
+     * From <code>MVedMovieObserver</code>, 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