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