diff -r 000000000000 -r 951a5db380a0 videditor/ManualVideoEditor/inc/VeiTrimForMmsView.h --- /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 // CAknView +#include +#include // 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 MProgressDialogCallback, 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. + * KErrNone 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