videditor/ManualVideoEditor/inc/VeiTrimForMmsView.h
changeset 0 951a5db380a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videditor/ManualVideoEditor/inc/VeiTrimForMmsView.h	Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,355 @@
+/*
+* 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 VEITRIMFORMMSVIEW_H
+#define VEITRIMFORMMSVIEW_H
+
+// INCLUDES
+// System includes
+#include <aknview.h>    // CAknView
+#include <CAknMemorySelectionDialog.h> 
+#include <VedMovie.h>   // CVedmovie
+// User includes
+#include "VeiSettings.h"
+
+// FORWARD DECLARATIONS
+class CAknNavigationDecorator;
+class CAknProgressDialog;
+class CVeiErrorUI;
+class CSendUi;
+class CVeiTrimForMmsContainer;
+class CVedMovie;
+class CMessageData;
+class CEikProgressInfo;
+class CVeiTempMaker;
+
+
+
+// CLASS DECLARATION
+
+/**
+ *
+ */
+class CVeiTrimForMmsView: public CAknView,
+                          public MVedMovieObserver,
+                          public MVedMovieProcessingObserver
+						  
+{
+public:
+    // Constructors and destructor
+
+    static CVeiTrimForMmsView* NewL( CSendUi& aSendAppUi );
+
+    static CVeiTrimForMmsView* NewLC( CSendUi& aSendAppUi );
+
+    virtual ~CVeiTrimForMmsView();
+
+    /**
+     * Preview states
+     */
+    enum TPreviewState
+    {
+        EIdle = 0,
+        ELoading,
+        EPreview,
+        EPlaying,
+        EStop,
+        EStopAndExit,
+        EOpeningFile,
+        EPause
+    };
+
+public:
+    void UpdateNaviPaneL( const TInt& aSizeInBytes,
+                          const TTimeIntervalMicroSeconds& aTime );
+
+    void UpdateNaviPaneSize();
+
+    /**
+     * Trim states
+     */
+    enum TTrimState
+    {
+        ESeek = 0,			
+        EFullPreview
+    };
+
+    void SetTrimStateL( TTrimState aState );
+
+    /**
+     * From <code>MProgressDialogCallback</code>, callback method gets
+     * called when a dialog is dismissed.
+     *
+     * @param aButtonId  Button id.
+     */
+    virtual void DialogDismissedL( TInt aButtonId );
+    void ProcessNeeded( TBool aProcessNeed );
+
+    /**
+     * Shows global error note for given error.
+     * 
+     * @param aError No description.
+     */
+    void ShowGlobalErrorNoteL( TInt aError = 0 )const;
+
+    /** 
+     * Handles a change to the control's resources.
+     */
+    void HandleResourceChange( TInt aType );
+
+private:
+    // From CAknView
+
+    TUid Id()const;
+
+    void HandleCommandL( TInt aCommand );
+
+    void DoActivateL( const TVwsViewId& aPrevViewId,
+                      TUid aCustomMessageId,
+                      const TDesC8& aCustomMessage );
+
+    void DoDeactivate();
+
+    void HandleStatusPaneSizeChange();
+
+    void ReadSettingsL( TVeiSettings& aSettings )const;
+
+protected:
+    // From MVedMovieObserver
+
+    virtual void NotifyVideoClipAdded( CVedMovie& aMovie, TInt aIndex );
+
+    virtual void NotifyVideoClipAddingFailed( CVedMovie& aMovie, TInt aError );
+
+    virtual void NotifyVideoClipRemoved( CVedMovie& aMovie, TInt aIndex );
+
+    virtual void NotifyVideoClipIndicesChanged( CVedMovie& aMovie, 
+                                                TInt aOldIndex, 
+                                                TInt aNewIndex );
+
+    virtual void NotifyVideoClipTimingsChanged( CVedMovie& aMovie,
+                                                TInt aIndex );
+
+    virtual void NotifyVideoClipColorEffectChanged( CVedMovie& aMovie,
+                                                    TInt aIndex );
+
+    virtual void NotifyVideoClipAudioSettingsChanged( CVedMovie& aMovie,
+                                                      TInt aIndex );
+                                                      
+    virtual void NotifyVideoClipGeneratorSettingsChanged( CVedMovie& aMovie,
+                                                          TInt aIndex );
+
+    virtual void NotifyVideoClipDescriptiveNameChanged( CVedMovie& aMovie,
+                                                        TInt aIndex );
+
+    virtual void NotifyStartTransitionEffectChanged( CVedMovie& aMovie );
+
+    virtual void NotifyMiddleTransitionEffectChanged( CVedMovie& aMovie, 
+                                                      TInt aIndex );
+
+    virtual void NotifyEndTransitionEffectChanged( CVedMovie& aMovie );
+
+    virtual void NotifyAudioClipAdded( CVedMovie& aMovie, TInt aIndex );
+
+    virtual void NotifyAudioClipAddingFailed( CVedMovie& aMovie, TInt aError );
+
+    virtual void NotifyAudioClipRemoved( CVedMovie& aMovie, TInt aIndex );
+
+    virtual void NotifyAudioClipIndicesChanged( CVedMovie& aMovie, 
+                                                TInt aOldIndex,
+                                                TInt aNewIndex );
+
+    virtual void NotifyAudioClipTimingsChanged( CVedMovie& aMovie,
+                                                TInt aIndex );
+
+    virtual void NotifyMovieQualityChanged( CVedMovie& aMovie );
+
+    virtual void NotifyMovieReseted( CVedMovie& aMovie );
+
+    virtual void NotifyMovieOutputParametersChanged( CVedMovie& aMovie );
+
+    virtual void NotifyAudioClipDynamicLevelMarkInserted( CVedMovie& aMovie, 
+                                                          TInt aClipIndex, 
+                                                          TInt aMarkIndex );
+
+    virtual void NotifyAudioClipDynamicLevelMarkRemoved( CVedMovie& aMovie, 
+                                                         TInt aClipIndex, 
+                                                         TInt aMarkIndex );
+
+    virtual void NotifyVideoClipDynamicLevelMarkInserted( CVedMovie& aMovie, 
+                                                          TInt aClipIndex, 
+                                                          TInt aMarkIndex );
+
+    virtual void NotifyVideoClipDynamicLevelMarkRemoved( CVedMovie& aMovie, 
+                                                         TInt aClipIndex, 
+                                                         TInt aMarkIndex );  
+
+protected:
+    // From MVedMovieProcessingObserver
+
+    /**
+     * Called to notify that a new movie processing operation has been started. 
+     *
+     * @param aMovie  movie
+     */
+    void NotifyMovieProcessingStartedL( CVedMovie& aMovie );
+
+    /**
+     * Called to inform about the current progress of the movie processing operation.
+     *
+     * @param aMovie       movie
+     * @param aPercentage  percentage of the operation completed, must be 
+     *                     in range 0..100
+     */
+    void NotifyMovieProcessingProgressed( CVedMovie& aMovie, TInt aPercentage );
+
+    /**
+     * Called to notify that the movie processing operation has been completed. 
+     * 
+     * @param aMovie  movie
+     * @param aError  error code why the operation was completed. 
+     *                <code>KErrNone</code> if the operation was completed 
+     *                successfully.
+     */
+    void NotifyMovieProcessingCompleted( CVedMovie& aMovie, TInt aError );
+
+private:
+    // New functions
+
+    void CmdSoftkeyCancelL();
+
+    /**
+     * 
+     */
+    void CmdSoftkeyOkL();
+
+
+    /**
+     * Send via multimedia command handling.
+     */
+    void CmdSendViaMultimediaL();
+
+    void CmdSoftkeyBackL();
+
+    void PushKeySoundL( const TInt aResourceId )const;
+
+    void PopKeySound()const;
+
+    /**
+     * Sets the text for title pane.
+     */
+    void SetTitlePaneTextL()const;
+
+    void CreateNaviPaneL();
+
+    void SetNaviPaneDurationLabelL( const TTimeIntervalMicroSeconds& aTime );
+
+    void SetNaviPaneSizeLabelL( const TInt& aSizeInBytes );
+
+    /**
+     * Start full screen preview.
+     */
+    void PlayPreviewL();
+
+private:
+    // Constructors
+
+    CVeiTrimForMmsView( CSendUi& aSendAppUi );
+
+    void ConstructL();
+
+private:
+    // Data
+
+    /** 
+     * Cut in time in microseconds (clip timebase) for trimmed video.
+     */
+    TTimeIntervalMicroSeconds iCutInTime;
+
+    /** 
+     * Cut out time in microseconds (clip timebase) for trimmed video.
+     */
+    TTimeIntervalMicroSeconds iCutOutTime;
+
+    /**
+     * Progress note for saving the trimmed video
+     */
+    CAknProgressDialog* iProgressNote;
+
+    /**
+     * Progress info for the progress dialog.
+     */
+    CEikProgressInfo* iProgressInfo;
+
+    /**
+     * Container
+     */
+    CVeiTrimForMmsContainer* iContainer;
+
+    /**
+     * Navigation pane decorator
+     */
+    CAknNavigationDecorator* iNaviDecorator;
+
+    /**
+     *
+     */
+    CSendUi& iSendAppUi;
+
+    /**
+     *
+     */
+    CVedMovie* iVedMovie;
+
+    /**
+     * Previous view which activated this view.
+     */
+    TVwsViewId iPreviousViewId;
+
+    /**
+     * Utility class to display error notes by applications. 
+     */
+    CVeiErrorUI* iErrorUi;
+
+    /**
+     * No description.
+     */
+    CVeiTempMaker* iTempMaker;
+
+    /**
+     * Temporary file name for storing preview/send clip.
+     */
+    HBufC* iTempFile;
+
+
+    TTrimState iTrimState;
+
+    TVeiSettings iMovieSaveSettings;
+
+    /*
+     * Indecates if process needed.
+     */
+    TBool iProcessNeeded;
+
+
+
+};
+
+#endif