--- a/videditor/ManualVideoEditor/inc/VeiCutAudioContainer.h Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,541 +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 VEICUTAUDIOCONTAINER_H
-#define VEICUTAUDIOCONTAINER_H
-
-#include <coecntrl.h>
-#include <aknprogressdialog.h>
-#include <VideoPlayer.h>
-#include <VedCommon.h>
-#include <VedMovie.h>
-#include <MdaAudioSamplePlayer.h>
-#include <VedAudioClipInfo.h>
-
-#include "VeiRemConTarget.h"
-
-class CVeiCutAudioView;
-class CVeiCutterBar;
-class CAknsBasicBackgroundControlContext;
-class CVeiErrorUI;
-class CVeiTextDisplay;
-class CSampleArrayHandler;
-
-
-const TInt KMinCutAudioVolumeLevel = 1;
-const TInt KMaxCutAudioVolumeLevel = 10;
-
-/**
- * CVeiCutAudioContainer container control class.
- *
- * Container for CVeiCutAudioView.
- */
-class CVeiCutAudioContainer: public CCoeControl,
- public MCoeControlObserver,
- public MMdaAudioPlayerCallback,
- public MVedAudioClipVisualizationObserver,
- public MProgressDialogCallback,
- public MVeiMediakeyObserver
-{
-public:
- /**
- * Edit state.
- */
- enum TCutAudioState
- {
- EStateInitializing = 1,
- EStateOpening,
- EStateStoppedInitial,
- EStateStopped,
- EStatePlaying,
- EStatePlayingMenuOpen,
- EStatePaused,
- EStateTerminating
- };
-
- enum TMarkState
- {
- ENoMark = 0,
- EMarked
- };
-
-
-
- /**
- * Start or end mark.
- */
- enum TCutMark
- {
- ENoMarks,
- EStartMark,
- EEndMark
- };
-
-
-
-public:
- /**
- * Creates a CStoryboardContainer object, which will draw itself to aRect.
- *
- * @param aRect Frame rectangle for container.
- * @param aMovie movie being edited
- *
- * @return a pointer to the created instance of CStoryboardContainer
- */
- static CVeiCutAudioContainer* NewL( const TRect& aRect,
- CVeiCutAudioView& aView,
- CVeiErrorUI& aErrorUI );
-
- /**
- * Creates a CStoryboardContainer 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 CVeiCutAudioContainer* NewLC( const TRect& aRect,
- CVeiCutAudioView& aView,
- CVeiErrorUI& aErrorUI );
-
- /**
- * Default constructor.
- *
- * @param aRect Frame rectangle for container.
- * @param aView pointer to the view.
- */
- void ConstructL( const TRect& aRect,
- CVeiCutAudioView& aView,
- CVeiErrorUI& aErrorUI );
-
- /**
- * Destructor.
- */
- virtual ~CVeiCutAudioContainer();
-
-public:
- void OpenAudioFileL( const TDesC& aFileName );
-
- /**
- * ###Missin' description###
- *
- * @param aState
- */
- void SetStateL( CVeiCutAudioContainer::TCutAudioState aState );
- /**
- * Starts playing.
- *
- * @param aStartTime
- */
- void PlayL( const TTimeIntervalMicroSeconds& aStartTime = TTimeIntervalMicroSeconds( 0 ) );
-
- /**
- * Stops playing.
- */
- void StopL();
-
- /**
- * Pauses playing.
- */
- void PauseL();
-
- /**
- * Closes the stream.
- */
- void CloseStreamL();
-
- /**
- * Returns the playback position.
- *
- * @return playback position
- */
- const TTimeIntervalMicroSeconds& PlaybackPositionL();
-
- /**
- * Marks the in point.
- */
- void MarkedInL();
-
- /**
- * Marks the out point.
- */
- void MarkedOutL();
-
- /**
- * Change volume level. Changes current volume level by given amount.
- *
- * @param aVolumeChange volume change
- */
- void SetVolumeL( TInt aVolumeChange );
-
- /**
- * Sets cut in time to cut video bar.
- *
- * @param aTime Cut in time
- */
- void SetInTimeL( const TTimeIntervalMicroSeconds& aTime );
-
- /**
- * Sets cut out time to cut video bar.
- *
- * @param aTime Cut out time
- */
- void SetOutTimeL( const TTimeIntervalMicroSeconds& aTime );
-
- /**
- * Sets duration to cut video bar.
- *
- * @param aTime duration
- */
- void SetDuration( const TTimeIntervalMicroSeconds& aDuration );
-
-public:
- /**
- * Update function that is called by the static callback method.
- */
- void DoUpdate();
-
- /**
- * From CCoeControl, OfferKeyEventL.
- *
- * @param aKeyEvent key event
- * @param aType event code
- */
- TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
- /**
- * Returns total length of the video clip.
- *
- * @return total length
- */
- const TTimeIntervalMicroSeconds& TotalLength();
-
- /**
- * Returns the player state.
- *
- * @return player state
- */
- inline TCutAudioState State() { return iState; };
- /**
- * Returns current volume level.
- *
- * @return volume level
- */
- inline TInt Volume() const { return iInternalVolume; };
-
- /**
- * Returns minimum volume level.
- *
- * @return min volume level
- */
- inline TInt MinVolume() const { return 1; };
-
- /**
- * Returns maximum volume level.
- *
- * @return max volume level
- */
- inline TInt MaxVolume()const { return iMaxVolume; };
-
- /**
- * Returns the visualization resolution.
- *
- * @return The visualization resolution, i.e. the size of the sample array
- */
- TInt VisualizationResolution()const;
-
- /**
- * Prepares the control for termination; stops audio playback
- * and sets the state to EStateTerminating.
- *
- */
- void PrepareForTerminationL();
-
-public:
- virtual void NotifyAudioClipVisualizationStarted( const CVedAudioClipInfo& aInfo );
-
- virtual void NotifyAudioClipVisualizationProgressed( const CVedAudioClipInfo& aInfo,
- TInt aPercentage );
- virtual void NotifyAudioClipVisualizationCompleted( const CVedAudioClipInfo& aInfo,
- TInt aError,
- TInt8* aVisualization,
- TInt aResolution);
-
-private:
- /**
- * Callback function for the timer.
- *
- * @param aThis self pointer
- *
- * @return dummy value
- */
- static TInt DoAudioBarUpdate( TAny* aThis );
-
- /**
- * From MMdaAudioPlayerCallback
- */
- virtual void MapcInitComplete( TInt aError,
- const TTimeIntervalMicroSeconds& aDuration );
-
- virtual void MapcPlayComplete( TInt aError );
-
- /**
- * Time increment.
- *
- * @param aKeyCount number a key events
- * @return time
- */
- TInt TimeIncrement( TInt aKeyCount )const;
-
- /**
- * Constructor.
- *
- * @param aView instance of cut audio view
- * @param aErrorUI instance of CVeiErrorUI
- */
- CVeiCutAudioContainer( const TRect& aRect,
- CVeiCutAudioView& aView,
- CVeiErrorUI& aErrorUI );
-
-
- /**
- * Continue playing
- */
- void ResumeL();
-
- /**
- * Gets intra frame bitmap from video clip.
- *
- * @param aTime intra frame time.
- */
- void GetThumbAtL( 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, CVeiCutAudioContainer::TCutMark aCutMark = ENoMarks );
-
-
-
- /**
- * Update function that is called when visualization must be changed.
- */
- void UpdateVisualizationL();
-
- /**
- * Get the visualization data from the engine
- */
- void GetVisualizationL();
-
- /**
- * From MProgressDialogCallback
- */
- void DialogDismissedL( TInt aButtonId );
-
- /** Callback function */
- static TInt AsyncBack( TAny* aThis );
-
- /**
- * Propagate command to view's HandleCommandL
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * Draw the visualization, including background and indicators etc.
- * to a bitmap, which can be blitted to the screen.
- */
- void DrawToBufBitmapL();
-
- /**
- * Start a progress note dialog
- */
- void LaunchProgressNoteL();
-
- /** HandleVolumeUpL
- *
- * @see MVeiMediakeyObserver
- */
- virtual void HandleVolumeUpL();
-
- /** HandleVolumeDownL
- *
- * @see MVeiMediakeyObserver
- */
- virtual void HandleVolumeDownL();
-
-private:
- //data
- /** cut video view */
- CVeiCutAudioView& iView;
-
- /** Error UI */
- CVeiErrorUI& iErrorUI;
-
- /** Current state. */
- TCutAudioState iState;
-
- /** Previous state. */
- TCutAudioState iPrevState;
-
- /** cut audio bar. */
- CVeiCutterBar* iCutAudioBar;
-
- /** 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;
-
- /** Videoplayerutility volume */
- TInt iInternalVolume;
-
- /** Max volume */
- TInt iMaxVolume;
-
- /** 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;
-
- CFbsBitmap* iPauseBitmap;
- CFbsBitmap* iPauseBitmapMask;
-
- /// Double buffer bitmap
- CFbsBitmap* iBufBitmap;
-
- CPeriodic* iVideoBarTimer;
- CMdaAudioPlayerUtility* iAudioSamplePlayer;
- TRect iCutTimeDisplayRect;
- CVeiTextDisplay* iCutTimeDisplay;
- TRect iIconDisplayRect;
-
- CSampleArrayHandler* iSampleArrayHandler;
-
- TInt iMarkOutCounter;
- TInt iMarkInCounter;
-
- TInt iPreviousScreenMode;
- TInt iCurrentScreenMode;
-
- TMarkState iMarkInState;
- TMarkState iMarkOutState;
-
- TTimeIntervalMicroSeconds iMarkedInTime;
- TTimeIntervalMicroSeconds iMarkedOutTime;
-
- /** Progress note. */
- CAknProgressDialog* iProgressNote;
-
- /** Callback utility */
- CAsyncCallBack* iCallBack;
-
- /** Remote connection API used to handle the volume keys. */
- CVeiRemConTarget* iRemConTarget;
-
- /** 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;
-
- /** Indicates which mark the user has tapped */
- TCutMark iTappedMark;
-};
-#endif
-
-// End of File