--- a/videditor/SimpleCutVideo/inc/VeiSimpleCutVideoContainer.h Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,560 +0,0 @@
-/*
-* 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 VEICUTVIDEOCONTAINER_H
-#define VEICUTVIDEOCONTAINER_H
-
-#include <coecntrl.h>
-#include <VideoPlayer.h>
-#include <VedCommon.h>
-#include <VedMovie.h>
-#include <aknprogressdialog.h>
-#include <coedef.h>
-
-#include "VeiVideoDisplay.h"
-#include "VeiImageConverter.h"
-#include "VeiRemConTarget.h"
-#include "mveinavipanecontrolobserver.h"
-
-
-class CVeiSimpleCutVideoView;
-class CVeiCutterBar;
-class CAknsBasicBackgroundControlContext;
-class CVeiErrorUI;
-class CVeiVideoDisplay;
-class CVeiTextDisplay;
-#ifdef RD_TACTILE_FEEDBACK
-class MTouchFeedback;
-#endif /* RD_TACTILE_FEEDBACK */
-
-//const TInt KMinVolumeLevel = 1;
-const TInt KVeiCutBarHeight = 20;
-const TInt KProgressbarFinalValue = 50;
-_LIT(KEncoderType, "JPEG" ); // encoder type for image conversion
-
-/**
- * CVeiSimpleCutVideoContainer container control class.
- *
- * Container for CVeiSimpleCutVideoView.
- */
-class CVeiSimpleCutVideoContainer : public CCoeControl,
- public MCoeControlObserver,
- public MVedVideoClipFrameObserver,
- public MVedVideoClipInfoObserver,
- public MConverterController,
- public MProgressDialogCallback,
- public MVeiVideoDisplayObserver,
- public MVeiMediakeyObserver,
- public MVeiNaviPaneControlObserver
- {
- public:
- /**
- * Edit state.
- */
- enum TCutVideoState
- {
- EStateInitializing = 1,
- EStateOpening,
- EStateStoppedInitial,
- EStateStopped,
- EStatePlaying,
- EStatePlayingMenuOpen,
- EStatePaused,
- EStateGettingFrame,
- EStateBuffering,
- EStateTerminating
- };
-
- /**
- * Start or end mark.
- */
- enum TCutMark
- {
- ENoMark,
- EStartMark,
- EEndMark,
- EPlayHead
- };
-
- public:
- /**
- * Creates a CVeiSimpleCutVideoContainer object, which will draw itself to aRect.
- *
- * @param aRect Frame rectangle for container.
- * @param aView
- *
- * @return a pointer to the created instance of CStoryboardContainer
- */
- static CVeiSimpleCutVideoContainer* NewL( const TRect& aRect, CVeiSimpleCutVideoView& aView, CVeiErrorUI& aErrorUI );
-
- /**
- * Creates a CVeiSimpleCutVideoContainer object, which will draw itself to aRect.
- * Leaves the created object in the cleanup stack.
- *
- * @param aRect Frame rectangle for container.
- * @param aMovie movie being edited
- *
- * @return a pointer to the created instance of CStoryboardContainer
- */
- static CVeiSimpleCutVideoContainer* NewLC( const TRect& aRect, CVeiSimpleCutVideoView& aView, CVeiErrorUI& aErrorUI );
-
- /**
- * Default constructor.
- *
- * @param aRect Frame rectangle for container.
- * @param aView pointer to the view.
- */
- void ConstructL(const TRect& aRect, CVeiSimpleCutVideoView& aView, CVeiErrorUI& aErrorUI );
-
- /**
- * Destructor.
- */
- virtual ~CVeiSimpleCutVideoContainer();
-
- public:
- /**
- * Takes one thumbnail bitmap from given file.
- *
- * @param aFilename name of video clip file
- */
- void GetThumbL( const TDesC& aFilename );
-
- /**
- * ###Missin' description###
- *
- * @param aState
- */
- void SetStateL( CVeiSimpleCutVideoContainer::TCutVideoState aState, TBool aUpdateCBA = ETrue);
- /**
- * Starts playing.
- *
- * @param aStartTime
- */
- void PlayL( const TDesC& aFilename );
- void PlayMarkedL( const TDesC& aFilename,
- const TTimeIntervalMicroSeconds& aStartTime,
- const TTimeIntervalMicroSeconds& aEndTime );
- /**
- * Stops playing.
- */
- void StopL();
-
- /**
- * Pauses playing.
- */
- void PauseL( TBool aUpdateCBA = ETrue );
-
- /**
- * Closes the stream.
- */
- void CloseStreamL();
-
- /**
- * Returns the playback position.
- *
- * @return playback position
- */
- TTimeIntervalMicroSeconds PlaybackPositionL();
-
- /**
- * Marks the in point.
- */
- void MarkedInL();
-
- /**
- * Marks the out point.
- */
- void MarkedOutL();
-
- /**
- * Sets cut in time to cut video bar.
- *
- * @param aTime Cut ín time
- */
- void SetInTime( const TTimeIntervalMicroSeconds& aTime );
-
- /**
- * Sets cut out time to cut video bar.
- *
- * @param aTime Cut out time
- */
- void SetOutTime( const TTimeIntervalMicroSeconds& aTime );
-
- /**
- * Takes the snapshot from current frame
- */
- void TakeSnapshotL();
-
- void MuteL();
- public:
-
- /**
- * Update function that is called by the static callback method.
- */
- void DoUpdate();
- // from MVeiVideoDisplayObserver
- virtual void NotifyVideoDisplayEvent( const TPlayerEvent aEvent, const TInt& aInfo = 0 );
-
- virtual void NotifyVideoClipFrameCompleted(CVedVideoClipInfo& aInfo,
- TInt aError,
- CFbsBitmap* aFrame);
- /**
- * Called to notify that video clip info is ready
- * for reading.
- *
- * Possible error codes:
- * - <code>KErrNotFound</code> if there is no file with the specified name
- * in the specified directory (but the directory exists)
- * - <code>KErrPathNotFound</code> if the specified directory
- * does not exist
- * - <code>KErrUnknown</code> if the specified file is of unknown format
- *
- * @param aInfo video clip info
- * @param aError <code>KErrNone</code> if info is ready
- * for reading; one of the system wide
- * error codes if reading file failed
- */
- virtual void NotifyVideoClipInfoReady(CVedVideoClipInfo& aInfo,
- TInt aError);
-
- /**
- * From CCoeControl, OfferKeyEventL.
- *
- * @param aKeyEvent key event
- * @param aType event code
- */
- TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
-
- /**
- * From MProgressDialogCallback, DialogDismissedL.
- *
- * @param aButtonId button id
- */
- virtual void DialogDismissedL( TInt aButtonId );
-
- /**
- * Opens a video clip file and initializes videoplayerutility.
- *
- * @param aFilename file to open
- */
- void OpenFileL( const TDesC& aFilename/*, TBool aStartPlaying = EFalse */);
-
- /**
- * Prepares the control for termination; stops video playback
- * and sets the state to EStateTerminating.
- *
- */
- void PrepareForTerminationL();
-
- // From MConverterController
- void NotifyCompletion( TInt aErr );
-
- void ResolveCaptionNameL( TApaAppCaption& aCaption ) const;
-
- void FocusChanged(TDrawNow aDrawNow);
-
- private:
- /**
- * Callback function for the timer.
- *
- * @param aThis self pointer
- *
- * @return dummy value
- */
- static TInt DoAudioBarUpdate( TAny* aThis );
-
- /**
- * Time increment.
- *
- * @param aKeyCount number a key events
- * @return time
- */
- TInt TimeIncrement( TInt aKeyCount ) const;
-
- /**
- * Constructor.
- *
- * @param aView instance of cut video view
- * @param aErrorUI instance of CVeiErrorUI
- */
- CVeiSimpleCutVideoContainer( const TRect& aRect, CVeiSimpleCutVideoView& aView, CVeiErrorUI& aErrorUI );
-
- /**
- * Gets intra frame bitmap from video clip.
- *
- * @param aTime intra frame time.
- */
- void GetThumbAtL( const TTimeIntervalMicroSeconds& aTime );
-
- /**
- * From CoeControl, MopSupplyObject.
- *
- * @param aId
- */
- virtual TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
-
- /**
- * From CoeControl, SizeChanged.
- */
- void SizeChanged();
-
- /**
- * From CoeControl, CountComponentControls.
- *
- * @return number of component controls in this control
- */
- TInt CountComponentControls() const;
-
- /**
- * From CCoeControl, ComponentControl.
- *
- * @param aIndex index of the control to return
- */
- CCoeControl* ComponentControl(TInt aIndex) const;
-
- /**
- * From CCoeControl,Draw.
- *
- * @param aRect region of the control to be redrawn
- */
- void Draw(const TRect& aRect) const;
-
- /**
- * From CCoeControl, gets the control's help context. Associates the
- * control with a particular Help file and topic in a context sensitive
- * application.
- *
- * @param aContext Control's help context.
- */
- void GetHelpContext( TCoeHelpContext& aContext ) const;
-
- /**
- * From CCoeControl, HandleControlEventL
- */
- void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
-
- /**
- * HandlePointerEventL
- * Handles pen inputs
- *
- * @param aPointerEvent pointer event
- */
- void HandlePointerEventL(const TPointerEvent& aPointerEvent );
-
- /**
- * Handles progress bar touch events
- * @param aPBRect Current progress bar rectangle
- * @param aPressedPoint The x coordinate value that was pressed
- * inside the progress bar
- * @param aDragMarks ETrue if the user drags start or end marks.
- * EFalse otherwise
- */
- void HandleProgressBarTouchL( TRect aPBRect, TInt aPressedPoint, TBool aDragMarks, CVeiSimpleCutVideoContainer::TCutMark aCutMark = ENoMark );
-
- /**
- * Rounds the parameter value to nearest second value
- * @param aMicroSecs Time value in microseconds
- * @return Rounded value in seconds
- */
- TInt RoundMicroSecsToSecs( TTimeIntervalMicroSeconds aMicroSecs );
-
- /*
- * Indicates ProgressNote.
- *
- */
- void ShowProgressNoteL();
-
- /**
- * Shows information note with given message.
- *
- * @param aMessage message to show.
- */
- void ShowInformationNoteL( const TDesC& aMessage ) const;
-
- /**
- * The entity of ProgressCallBackL() function
- * @return 0 when work is done, otherwise return 1.
- */
- TInt UpdateProgressNote();
-
- /**
- * Saves snapshot.
- */
- void SaveSnapshotL();
-
- /**
- * Cancels saving of the snapshot.
- */
- void CancelSnapshotSave();
-
- void StopProgressDialog();
-
- void ShowGlobalErrorNote(const TInt aErr);
-
- /** HandleVolumeUpL
- *
- * @see MVeiMediakeyObserver
- */
- virtual void HandleVolumeUpL();
-
- /**
- * From MVeiNaviPaneControlObserver
- */
- void SetVolumeLevelL( TInt aVolume );
-
- /** HandleVolumeDownL
- *
- * @see MVeiMediakeyObserver
- */
- virtual void HandleVolumeDownL();
-
- /** Callback function */
- static TInt AsyncTakeSnapshot(TAny* aThis);
- /** Callback function */
- static TInt AsyncSaveSnapshot(TAny* aThis);
-
- /** LaunchSavingDialogsL
- *
- * Displays Avkon file handling queries
- *
- * @param
- * @return ETrue if a file name is successfully created
- * EFalse otherwise
- *
- */
- TBool LaunchSavingDialogsL();
-
- protected:
- // implementation
- void HandleVideoClickedL();
-
- private: //data
- /** cut video view */
- CVeiSimpleCutVideoView& iView;
-
- /** Error UI */
- CVeiErrorUI& iErrorUI;
-
- /** Video clip info*/
- CVedVideoClipInfo* iVideoClipInfo;
-
- /** Current state. */
- TCutVideoState iState;
-
- /** Previous state. */
- TCutVideoState iPreviousState;
-
- /** Previous state. */
- TCutVideoState iPrevState;
-
- /** cut video bar. */
- CVeiCutterBar* iCutVideoBar;
-
- /** Last position. */
- TTimeIntervalMicroSeconds iLastPosition;
-
- /** Video clip duration */
- TTimeIntervalMicroSeconds iDuration;
-
- /**
- * Control context that provides a layout background with a
- * background bitmap and its layout rectangle.
- */
- CAknsBasicBackgroundControlContext* iBgContext;
-
- /** Key repeat count in seek function. */
- TInt iKeyRepeatCount;
-
- /** Seek thumbnail position in video clip. */
- TTimeIntervalMicroSeconds iSeekPos;
-
- /** Seek - flag. */
- TBool iSeeking;
-
- /** Frame ready - flag */
- TBool iFrameReady;
-
- /** Last keycode, used in OfferKeyEventL(); */
- TUint iLastKeyCode;
-
- /** The actuall calls to ICL are done from this image converter. */
- CVeiImageConverter* iConverter;
-
- //** Whether we need to take snapshot. */
- TBool iTakeSnapshot;
-
- /** Progress dialog */
- CAknProgressDialog* iProgressDialog;
-
- HBufC* iSaveToFileName;
- TSize iFrameSize;
- CPeriodic* iVideoBarTimer;
- CVeiVideoDisplay* iVideoDisplay;
- TRect iDisplayRect;
- TRect iCutTimeDisplayRect;
- CVeiTextDisplay* iCutTimeDisplay;
- TBool iPlayOrPlayMarked;
-
- TRect iIconDisplayRect;
- CFbsBitmap* iPauseBitmap;
- CFbsBitmap* iPauseBitmapMask;
- CFbsBitmap* iPlayBitmap;
- CFbsBitmap* iPlayBitmapMask;
-
- /** Callback utility */
- CAsyncCallBack* iCallBackSaveSnapshot;
- CAsyncCallBack* iCallBackTakeSnapshot;
-
- /** Remote connection API used to handle the volume keys. */
- CVeiRemConTarget* iRemConTarget;
-
- TBool iTakeSnapshotWaiting;
-
- /** ETrue if user is dragging the start or end mark with a pen,
- EFalse otherwise */
- TBool iIsMarkDrag;
-
- /** ETrue if the pen is in start or end mark area when it goes down,
- EFalse otherwise */
- TBool iIsMarkTapped;
-
- /** ETrue if the pen is in display area or in play/pause button area
- when it goes down, EFalse otherwise */
- TBool iIsIconOrDisplayTapped;
-
- /** Indicates which mark the user has tapped */
- TCutMark iTappedMark;
-
- /// Point where button down event has occured.
- TPoint iButtonDownPoint;
-
- /** File name that is used when saving the snapshot */
- TFileName iSnapshotFileName;
-
- // Feedback for screen touch:
-#ifdef RD_TACTILE_FEEDBACK
- MTouchFeedback* iTouchFeedBack;
-#endif /* RD_TACTILE_FEEDBACK */
-
-#include "veicutvideocontainer.inl"
-
- };
-#endif
-
-// End of File