--- a/videditor/SimpleCutVideo/src/VeiSimpleCutVideoContainer.cpp Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1981 +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:
-*
-*/
-
-
-
-// INCLUDE FILES
-// System includes
-#include <VedSimpleCutVideo.rsg>
-#include <videoeditoruicomponents.mbg>
-#include <eikbtgpc.h>
-#include <vedvideoclipinfo.h>
-#include <coemain.h>
-#include <eikenv.h>
-//#include <CMGXFileManager.h>
-//#include <MGXFileManagerFactory.h>
-#include <aknsbasicbackgroundcontrolcontext.h>
-#include <aknsdrawutils.h>
-#include <aknsdatacontext.h>
-#include <stringloader.h>
-#include <aknnotewrappers.h>
-#include <pathinfo.h>
-#include <eikprogi.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <CAknMemorySelectionDialog.h>
-#include <CAknFileNamePromptDialog.h>
-#include <AknCommonDialogsDynMem.h>
-#include <CAknMemorySelectionDialogMultiDrive.h>
-#include <apgcli.h>
-#include <csxhelp/vided.hlp.hrh>
-
-#ifdef RD_TACTILE_FEEDBACK
-#include <touchfeedback.h>
-#endif /* RD_TACTILE_FEEDBACK */
-
-// User includes
-#include "VeiSimpleCutVideoAppUi.h"
-#include "VeiCutterBar.h"
-#include "VeiSimpleCutVideoContainer.h"
-#include "VeiSimpleCutVideoView.h"
-#include "veitextdisplay.h"
-#include "VideoEditorCommon.h"
-#include "VideoEditorUtils.h"
-#include "VeiErrorUi.h"
-#include "VedSimpleCutVideo.hrh"
-
-#define KMediaGalleryUID3 0x101F8599
-
-// ================= MEMBER FUNCTIONS =======================
-void CleanupRarray( TAny* object )
- {
- (( RImageTypeDescriptionArray*)object)->ResetAndDestroy();
- }
-
-CVeiSimpleCutVideoContainer* CVeiSimpleCutVideoContainer::NewL( const TRect& aRect, CVeiSimpleCutVideoView& aView, CVeiErrorUI& aErrorUI )
- {
- CVeiSimpleCutVideoContainer* self = CVeiSimpleCutVideoContainer::NewLC( aRect, aView, aErrorUI );
- CleanupStack::Pop( self );
- return self;
- }
-
-CVeiSimpleCutVideoContainer* CVeiSimpleCutVideoContainer::NewLC( const TRect& aRect, CVeiSimpleCutVideoView& aView, CVeiErrorUI& aErrorUI )
- {
- CVeiSimpleCutVideoContainer* self = new (ELeave) CVeiSimpleCutVideoContainer( aRect, aView, aErrorUI );
- CleanupStack::PushL( self );
- self->ConstructL( aRect, aView, aErrorUI );
- return self;
- }
-
-void CVeiSimpleCutVideoContainer::ConstructL( const TRect& aRect, CVeiSimpleCutVideoView& /*aView*/, CVeiErrorUI& /*aErrorUI*/ )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::ConstructL: in");
- CreateWindowL();
-
- iState = EStateInitializing;
- iFrameReady = EFalse;
- iPlayOrPlayMarked = EFalse;
-
- iSeekPos = TTimeIntervalMicroSeconds( 0 );
- iSeeking = EFalse;
- iCutVideoBar = CVeiCutterBar::NewL( this );
-
- iConverter = CVeiImageConverter::NewL( this );
- iTakeSnapshot = EFalse;
- iVideoDisplay = CVeiVideoDisplay::NewL( iDisplayRect, this, *this );
-
- TFileName mbmPath( VideoEditorUtils::IconFileNameAndPath(KVideoEditorUiComponentsIconFileId) );
-
- if( !AknLayoutUtils::PenEnabled() )
- {
- iCutTimeDisplay = CVeiTextDisplay::NewL( iCutTimeDisplayRect, this );
-
- // A new icon. Temporarely same bitmap is used for non touch pause as in touch devices
- // A new icon has been requested and it should be changed here as soon as it's in the build
- AknIconUtils::CreateIconL( iPauseBitmap, iPauseBitmapMask,
- mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded_pause,
- EMbmVideoeditoruicomponentsQgn_indi_vded_pause_mask );
- }
- else
- {
- AknIconUtils::CreateIconL( iPlayBitmap, iPlayBitmapMask,
- mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_play,
- EMbmVideoeditoruicomponentsQgn_indi_vded2_play_mask );
-
- AknIconUtils::CreateIconL( iPauseBitmap, iPauseBitmapMask,
- mbmPath, EMbmVideoeditoruicomponentsQgn_indi_vded2_pause,
- EMbmVideoeditoruicomponentsQgn_indi_vded2_pause_mask );
- }
-
- SetRect( aRect );
-
- iBgContext = CAknsBasicBackgroundControlContext::NewL( KAknsIIDQsnBgAreaMain, Rect(), EFalse );
- iVideoBarTimer = CPeriodic::NewL( CActive::EPriorityLow );
-
-#ifdef RD_TACTILE_FEEDBACK
- iTouchFeedBack = MTouchFeedback::Instance();
-#endif /* RD_TACTILE_FEEDBACK */
-
- iRemConTarget = CVeiRemConTarget::NewL( *this );
-
- EnableDragEvents();
-
- ActivateL();
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::ConstructL: out");
- }
-
-CVeiSimpleCutVideoContainer::CVeiSimpleCutVideoContainer(
- const TRect& /*aRect*/, CVeiSimpleCutVideoView& aView,
- CVeiErrorUI& aErrorUI ) : iView( aView ), iErrorUI( aErrorUI )
- {
- }
-
-CVeiSimpleCutVideoContainer::~CVeiSimpleCutVideoContainer()
- {
- if ( iCutVideoBar )
- {
- delete iCutVideoBar;
- }
- if ( iBgContext )
- {
- delete iBgContext;
- }
- if ( iVideoDisplay )
- {
- delete iVideoDisplay;
- }
- if ( iCutTimeDisplay )
- {
- delete iCutTimeDisplay;
- }
- if ( iVideoClipInfo )
- {
- delete iVideoClipInfo;
- iVideoClipInfo = NULL;
- }
- if ( iConverter )
- {
- iConverter->Cancel();
- delete iConverter;
- }
- if ( iVideoBarTimer )
- {
- iVideoBarTimer->Cancel();
- delete iVideoBarTimer;
- }
-
- if ( iProgressDialog )
- {
- delete iProgressDialog;
- iProgressDialog = NULL;
- }
- if ( iSaveToFileName )
- {
- delete iSaveToFileName;
- iSaveToFileName = NULL;
- }
-
- delete iCallBackSaveSnapshot;
- delete iCallBackTakeSnapshot;
-
- if ( iPlayBitmap )
- {
- delete iPlayBitmap;
- }
- if ( iPlayBitmapMask )
- {
- delete iPlayBitmapMask;
- }
- delete iPauseBitmap;
- delete iPauseBitmapMask;
-
- delete iRemConTarget;
- }
-
-void CVeiSimpleCutVideoContainer::DialogDismissedL( TInt aButtonId )
- {
- if ( aButtonId == -1 )
- { // when pressing cancel button.
- CancelSnapshotSave();
- }
- iTakeSnapshot = EFalse;
- }
-
-void CVeiSimpleCutVideoContainer::SizeChanged()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SizeChanged(): In");
- TSize videoScreenSize;
- TRect rect( Rect() );
- if ( iBgContext )
- {
- iBgContext->SetRect( rect );
- }
- LOGFMT2(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SizeChanged(): Rect(): %d,%d", rect.iBr.iX, rect.iBr.iY);
-
- TInt variety = 0;
- if (VideoEditorUtils::IsLandscapeScreenOrientation())
- {
- variety = 1;
- }
-
- if( !AknLayoutUtils::PenEnabled() )
- {
- // Progress bar
- TAknLayoutRect progressBarLayout;
- progressBarLayout.LayoutRect(Rect(),AknLayoutScalable_Apps::vded_slider_pane());
- iCutVideoBar->SetComponentRect(CVeiCutterBar::EProgressBar, progressBarLayout.Rect());
-
- TAknLayoutRect sliderLeftEndLayout;
- TAknLayoutRect sliderRightEndLayout;
- if ( AknLayoutUtils::LayoutMirrored () )
- {
- // left end of the slider when that part is unselected
- sliderLeftEndLayout.LayoutRect( progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g4() );
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderLeftEndIcon, sliderLeftEndLayout.Rect() );
-
- // right end of the slider when that part is unselected
- sliderRightEndLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g3());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderRightEndIcon, sliderRightEndLayout.Rect() );
- }
- else
- {
- // left end of the slider when that part is unselected
- sliderLeftEndLayout.LayoutRect( progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g3() );
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderLeftEndIcon, sliderLeftEndLayout.Rect() );
-
- // right end of the slider when that part is unselected
- sliderRightEndLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g4());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderRightEndIcon, sliderRightEndLayout.Rect() );
- }
-
- // middle part of the slider when that part is unselected
- TAknLayoutRect sliderMiddleLayout;
- sliderMiddleLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g5());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderMiddleIcon, sliderMiddleLayout.Rect() );
-
- // left end of the cut selection slider
- TAknLayoutRect sliderSelectedLeftEndLayout;
- sliderSelectedLeftEndLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g3());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderSelectedLeftEndIcon, sliderSelectedLeftEndLayout.Rect() );
-
- // middle part of the cut selection slider
- TAknLayoutRect sliderSelectedMiddleLayout;
- sliderSelectedMiddleLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g5());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderSelectedMiddleIcon, sliderSelectedMiddleLayout.Rect() );
-
- // right end of the cut selection slider
- TAknLayoutRect sliderSelectedRightEndLayout;
- sliderSelectedRightEndLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g4());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderSelectedRightEndIcon, sliderSelectedRightEndLayout.Rect() );
-
- // playhead
- TAknLayoutRect playheadLayout;
- playheadLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g1());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::EPlayheadIcon, playheadLayout.Rect() );
-
- // left/right border of cut selection slider
- TAknLayoutRect cutAreaBorderLayout;
- cutAreaBorderLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded_slider_pane_g2());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ECutAreaBorderIcon, cutAreaBorderLayout.Rect() );
-
- TAknLayoutText startTimeTextLayout;
- TAknLayoutText endTimeTextLayout;
- TAknLayoutRect startTimeIconLayout;
- TAknLayoutRect endTimeIconLayout;
-
- // Video Display
- TAknLayoutRect videoDisplayLayout;
- videoDisplayLayout.LayoutRect(Rect(),AknLayoutScalable_Apps::vded_video_pane());
- iVideoDisplay->SetRect(videoDisplayLayout.Rect());
-
- iDisplayRect = videoDisplayLayout.Rect();
- iIconDisplayRect = videoDisplayLayout.Rect();
- LOGFMT2(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SizeChanged(): iDisplayRect: %d,%d", iDisplayRect.iBr.iX, iDisplayRect.iBr.iY);
-
- //CVeiCutterBar
- TRect cutBarRect( sliderLeftEndLayout.Rect().iTl, sliderRightEndLayout.Rect().iBr );
- iCutVideoBar->SetRect( cutBarRect );
-
- TInt iconWidth = STATIC_CAST( TInt, rect.iBr.iX * 0.07954545455 );
- AknIconUtils::SetSize( iPauseBitmap, TSize(iconWidth,iconWidth), EAspectRatioNotPreserved );
- }
- else
- {
- // Progress bar
- TAknLayoutRect progressBarLayout;
- progressBarLayout.LayoutRect(Rect(),AknLayoutScalable_Apps::vded2_slider_pane(variety));
-
- TAknLayoutRect progressBGLayout;
- progressBGLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_bg_pane());
- iCutVideoBar->SetComponentRect(CVeiCutterBar::EProgressBar, progressBGLayout.Rect());
-
- TAknLayoutRect sliderLeftEndLayout;
- TAknLayoutRect sliderRightEndLayout;
- if ( AknLayoutUtils::LayoutMirrored () )
- {
- // left end of the slider when that part is unselected
- sliderLeftEndLayout.LayoutRect( progressBGLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_bg_pane_g2());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderLeftEndIcon, sliderLeftEndLayout.Rect() );
-
- // right end of the slider when that part is unselected
- sliderRightEndLayout.LayoutRect(progressBGLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_bg_pane_g1());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderRightEndIcon, sliderRightEndLayout.Rect() );
-
- }
- else
- {
- // left end of the slider when that part is unselected
- sliderLeftEndLayout.LayoutRect( progressBGLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_bg_pane_g1());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderLeftEndIcon, sliderLeftEndLayout.Rect() );
-
- // right end of the slider when that part is unselected
- sliderRightEndLayout.LayoutRect(progressBGLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_bg_pane_g2());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderRightEndIcon, sliderRightEndLayout.Rect() );
- }
-
- // middle part of the slider when that part is unselected
- TAknLayoutRect sliderMiddleLayout;
- sliderMiddleLayout.LayoutRect(progressBGLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_bg_pane_g3());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderMiddleIcon, sliderMiddleLayout.Rect() );
-
- // middle part of the cut selection slider
- TAknLayoutRect sliderSelectedMiddleLayout;
- sliderSelectedMiddleLayout.LayoutRect(progressBGLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_bg_pane_g3());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::ESliderSelectedMiddleIcon, sliderSelectedMiddleLayout.Rect() );
-
- // playhead
- TAknLayoutRect playheadLayout;
- playheadLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_pane_g3());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::EPlayheadIcon, playheadLayout.Rect() );
-
- // left/right border of cut selection slider
- TAknLayoutRect cutAreaBorderLayout;
- cutAreaBorderLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_pane_g1());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::EStartMarkIcon, cutAreaBorderLayout.Rect() );
- cutAreaBorderLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::vded2_slider_pane_g2());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::EEndMarkIcon, cutAreaBorderLayout.Rect() );
-
- // Video Display
- TAknLayoutRect videoDisplayLayout;
- videoDisplayLayout.LayoutRect(Rect(),AknLayoutScalable_Apps::vded_video_pane());
- iVideoDisplay->SetRect(videoDisplayLayout.Rect());
-
- iDisplayRect = videoDisplayLayout.Rect();
- iIconDisplayRect = videoDisplayLayout.Rect();
- LOGFMT2(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SizeChanged(): iDisplayRect: %d,%d", iDisplayRect.iBr.iX, iDisplayRect.iBr.iY);
-
- // CVeiCutterBar
- TRect cutBarRect( progressBarLayout.Rect().iTl, progressBarLayout.Rect().iBr );
- iCutVideoBar->SetRect( cutBarRect );
-
- // pause icon
- TAknLayoutRect iconLayout;
- iconLayout.LayoutRect(Rect(),AknLayoutScalable_Apps::main_vded2_pane_g2(variety));
- iIconDisplayRect = iconLayout.Rect();
- AknIconUtils::SetSize( iPlayBitmap, iIconDisplayRect.Size(), EAspectRatioNotPreserved );
- AknIconUtils::SetSize( iPauseBitmap, iIconDisplayRect.Size(), EAspectRatioNotPreserved );
-
- // cut bar touch areas
- TAknLayoutRect touchAreaLayout;
- touchAreaLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::aid_size_touch_vded2_playhead());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::EPlayheadTouch, touchAreaLayout.Rect() );
- touchAreaLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::aid_size_touch_vded2_start());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::EStartMarkTouch, touchAreaLayout.Rect() );
- touchAreaLayout.LayoutRect(progressBarLayout.Rect(),AknLayoutScalable_Apps::aid_size_touch_vded2_end());
- iCutVideoBar->SetComponentRect( CVeiCutterBar::EEndMarkTouch, touchAreaLayout.Rect() );
- }
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SizeChanged(): Out");
- }
-
-TTypeUid::Ptr CVeiSimpleCutVideoContainer::MopSupplyObject( TTypeUid aId )
- {
- if ( aId.iUid == MAknsControlContext::ETypeId && iBgContext )
- {
- return MAknsControlContext::SupplyMopObject( aId, iBgContext );
- }
- return CCoeControl::MopSupplyObject( aId );
- }
-
-TInt CVeiSimpleCutVideoContainer::CountComponentControls() const
- {
- if( !AknLayoutUtils::PenEnabled() )
- {
- return 3;
- }
- else
- {
- return 2;
- }
- }
-
-CCoeControl* CVeiSimpleCutVideoContainer::ComponentControl( TInt aIndex ) const
- {
- switch ( aIndex )
- {
- case 0:
- return iCutVideoBar;
- case 1:
- return iVideoDisplay;
- case 2:
- return iCutTimeDisplay;
- default:
- return NULL;
- }
- }
-
-void CVeiSimpleCutVideoContainer::Draw( const TRect& aRect ) const
- {
- CWindowGc& gc = SystemGc();
- // draw skin background
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- MAknsControlContext* cc = AknsDrawUtils::ControlContext( this );
- AknsDrawUtils::Background( skin, cc, this, gc, aRect );
-
- if ( EStatePlaying != iState && EStatePlayingMenuOpen != iState
- && AknLayoutUtils::PenEnabled() )
- {
- gc.BitBltMasked( iIconDisplayRect.iTl, iPlayBitmap,
- TRect(iIconDisplayRect.Size()),
- iPlayBitmapMask, EFalse );
- }
- else if ( ( EStatePlaying == iState || EStatePlayingMenuOpen == iState )
- && AknLayoutUtils::PenEnabled() )
- {
- gc.BitBltMasked( iIconDisplayRect.iTl, iPauseBitmap,
- TRect(iIconDisplayRect.Size()),
- iPauseBitmapMask, EFalse );
- }
-
- if ( EStatePaused == iState && !AknLayoutUtils::PenEnabled() )
- {
- TPoint pauseIconTl = TPoint( iIconDisplayRect.iTl.iX - STATIC_CAST( TInt, Rect().iBr.iX*0.105),
- iIconDisplayRect.iTl.iY + STATIC_CAST( TInt, Rect().iBr.iY*0.178 ));
- gc.BitBltMasked( pauseIconTl, iPauseBitmap,
- TRect( TPoint(0,0), iPauseBitmap->SizeInPixels() ),
- iPauseBitmapMask, EFalse );
- }
- }
-
-// ----------------------------------------------------------------------------
-// CVeiSimpleCutVideoContainer::GetHelpContext(...) const
-//
-// Gets the control's help context. Associates the control with a particular
-// Help file and topic in a context sensitive application.
-// ----------------------------------------------------------------------------
-//
-void CVeiSimpleCutVideoContainer::GetHelpContext( TCoeHelpContext& aContext ) const
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetHelpContext(): In");
-
- // Set UID of the CS Help file (same as application UID).
- aContext.iMajor = KUidVideoEditor;
-
- // Set the context/topic.
- aContext.iContext = KVIE_HLP_CUT;
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetHelpContext(): Out");
- }
-
-
-void CVeiSimpleCutVideoContainer::HandleControlEventL(
- CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/)
- {
- }
-
-// ----------------------------------------------------------------------------
-// CVeiSimpleCutVideoContainer::HandlePointerEventL
-// From CCoeControl
-// ----------------------------------------------------------------------------
-//
-void CVeiSimpleCutVideoContainer::HandlePointerEventL(const TPointerEvent& aPointerEvent )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandlePointerEventL(): In");
- if( AknLayoutUtils::PenEnabled() && iCutVideoBar )
- {
- CCoeControl::HandlePointerEventL( aPointerEvent );
-
- switch( aPointerEvent.iType )
- {
- case TPointerEvent::EButton1Down:
- {
- iButtonDownPoint = aPointerEvent.iPosition;
- iIsMarkDrag = EFalse;
- iIsMarkTapped = EFalse;
- iIsIconOrDisplayTapped = EFalse;
- TRect startMarkRect = iCutVideoBar->StartMarkRect();
- TRect endMarkRect = iCutVideoBar->EndMarkRect();
- TRect playheadRect = iCutVideoBar->PlayHeadRect();
- // check if the pen goes down inside the start mark
- if (startMarkRect.Contains(aPointerEvent.iPosition))
- {
- iIsMarkTapped = ETrue;
- iTappedMark = EStartMark;
- iCutVideoBar->SetPressedComponent( CVeiCutterBar::EPressedStartMarkTouch );
- }
- // check if the pen goes down inside the end mark
- else if (endMarkRect.Contains(aPointerEvent.iPosition))
- {
- iIsMarkTapped = ETrue;
- iTappedMark = EEndMark;
- iCutVideoBar->SetPressedComponent( CVeiCutterBar::EPressedEndMarkTouch );
- }
- // check if the pen goes down inside the playhead
- else if (playheadRect.Contains(aPointerEvent.iPosition))
- {
- iIsMarkTapped = ETrue;
- iTappedMark = EPlayHead;
- iCutVideoBar->SetPressedComponent( CVeiCutterBar::EPressedPlayheadTouch );
- }
- else if ( iDisplayRect.Contains( iButtonDownPoint ) ||
- iIconDisplayRect.Contains( iButtonDownPoint ) )
- {
- iIsIconOrDisplayTapped = ETrue;
- }
-
- if ( iIsMarkTapped )
- {
- DrawDeferred();
- }
-
-#ifdef RD_TACTILE_FEEDBACK
- if ( iTouchFeedBack && ( iIsMarkTapped || iIsIconOrDisplayTapped ))
- {
- iTouchFeedBack->InstantFeedback( ETouchFeedbackBasic );
- }
-#endif /* RD_TACTILE_FEEDBACK */
-
-// TRect progressBarRect(iCutVideoBar->ProgressBarRect());
- // check if the pen goes down inside the progress bar
-// if( progressBarRect.Contains( aPointerEvent.iPosition ) )
-// {
-// iIsMarkDrag = EFalse;
-// }
- break;
- }
- case TPointerEvent::EDrag:
- {
- if (iIsMarkTapped)
- {
- TRect touchRect(iCutVideoBar->ProgressBarRect());
- TRect smallRect(iCutVideoBar->EndMarkRect());
- TInt pressPoint = aPointerEvent.iPosition.iX;
- TBool dragMarks = ETrue;
- if (iTappedMark == EStartMark)
- {
- pressPoint += iCutVideoBar->StartMarkRect().Width()/2;
- }
- if (iTappedMark == EEndMark)
- {
- pressPoint -= iCutVideoBar->StartMarkRect().Width()/2;
- }
- if (iTappedMark == EPlayHead)
- {
- smallRect = iCutVideoBar->PlayHeadRect();
- dragMarks = EFalse;
- }
- touchRect.iTl.iY = smallRect.iTl.iY;
- touchRect.iBr.iY = smallRect.iBr.iY;
- HandleProgressBarTouchL( touchRect,
- pressPoint,
- dragMarks,
- iTappedMark );
- iIsMarkDrag = ETrue;
- }
- break;
- }
- case TPointerEvent::EButton1Up:
- {
- // pen up event is handled if it wasn't dragged
-// if (!iIsMarkDrag)
- if (0)
- {
- TRect progressBarRect(iCutVideoBar->ProgressBarRect());
- // Check if pressed position is in progress bar's rect
- if( progressBarRect.Contains( aPointerEvent.iPosition ) )
- {
- HandleProgressBarTouchL( progressBarRect,
- aPointerEvent.iPosition.iX,
- EFalse);
- }
- }
-
- if ((iDisplayRect.Contains(aPointerEvent.iPosition) &&
- iDisplayRect.Contains(iButtonDownPoint)) ||
- (iIconDisplayRect.Contains(aPointerEvent.iPosition) &&
- iIconDisplayRect.Contains(iButtonDownPoint)))
- {
- HandleVideoClickedL();
- }
- iCutVideoBar->SetPressedComponent( CVeiCutterBar::ENoPressedIcon );
- DrawDeferred();
- break;
- }
- default:
- {
- break;
- }
- }
- }
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandlePointerEventL(): Out");
- }
-
-
-// ----------------------------------------------------------------------------
-// CVeiSimpleCutVideoContainer::HandleProgressBarTouchL
-//
-// ----------------------------------------------------------------------------
-//
-void CVeiSimpleCutVideoContainer::HandleProgressBarTouchL( TRect aPBRect,
- TInt aPressedPoint,
- TBool aDragMarks,
- CVeiSimpleCutVideoContainer::TCutMark aCutMark )
- {
- if ( (AknLayoutUtils::PenEnabled()) && ( iState!=EStateInitializing ))
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandleProgressBarTouchL(): In");
-
- if (iState == EStatePlaying)
- {
- PauseL();
- }
-
- // Progress Bar start and end points, and length
- TInt pbEndPoint( aPBRect.iBr.iX );
- TInt pbStartPoint = ( aPBRect.iTl.iX );
- TInt totalPBLength( pbEndPoint - pbStartPoint );
-
- // calculate the time position from the tapped progress bar coordinates
- TTimeIntervalMicroSeconds newPosition(
- ( ( aPressedPoint - pbStartPoint ) *
- iVideoClipInfo->Duration().Int64() ) /
- totalPBLength );
- if (newPosition >= iVideoClipInfo->Duration())
- {
- newPosition = TTimeIntervalMicroSeconds( iVideoClipInfo->Duration().Int64() - 1 );
- }
- if (newPosition <= 0)
- {
- newPosition = 0;
- }
-
- TBool movePlayhead = ETrue;
-
- // move cut marks
- if (aDragMarks)
- {
- movePlayhead = EFalse;
- //one sec buffer:
- const TUint markBuffer = ((KMinCutVideoLength * totalPBLength) / iVideoClipInfo->Duration().Int64());
- // check that the start mark doesn't go past the end mark - 1 sec buffer
- // and not to the beginning
- if ((aCutMark == EStartMark) &&
- (newPosition.Int64() >= 0) &&
- (aPressedPoint < (iCutVideoBar->EndMarkPoint() - markBuffer ) /*- 2*iCutVideoBar->EndMarkRect().Width()*/))
- {
- iView.MoveStartOrEndMarkL(newPosition, EStartMark);
- iCutVideoBar->SetInPoint( newPosition );
- movePlayhead = ETrue;
- }
- // check that the end mark doesn't go before the start mark - +1 sec buffer
- // and not too close to the beginning
- else if ((aCutMark == EEndMark) &&
- (newPosition.Int64() >= KMinCutVideoLength) &&
- (aPressedPoint > (iCutVideoBar->StartMarkPoint() + markBuffer)/* + 2*iCutVideoBar->StartMarkRect().Width()*/))
- {
- iView.MoveStartOrEndMarkL(newPosition, EEndMark);
- iCutVideoBar->SetOutPoint( newPosition );
- movePlayhead = ETrue;
- }
- }
-
- // move playhead
-// else if (( newPosition != iLastPosition ) && !aDragMarks)
- if (( newPosition != iLastPosition ) && movePlayhead)
- {
- iLastPosition = newPosition;
-
- iSeekPos = TTimeIntervalMicroSeconds( newPosition );
-
- iCutVideoBar->SetCurrentPoint( (static_cast<TInt32>(iSeekPos.Int64() / 1000)));
- iVideoDisplay->SetPositionL( iSeekPos );
- GetThumbAtL( iSeekPos );
-
- iView.UpdateTimeL();
- }
-
- iView.UpdateCBAL(iState);
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandleProgressBarTouchL(): Out");
-
- }// PenEnabled
-
- }
-
-
-void CVeiSimpleCutVideoContainer::PlayL( const TDesC& aFilename )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::PlayL: in");
- iVideoDisplay->SetPositionL( iSeekPos );
-
- if (iVideoClipInfo && !iFrameReady)
- {
- iVideoClipInfo->CancelFrame();
- }
- iVideoDisplay->PlayL( aFilename );
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::PlayL: out");
- }
-
-void CVeiSimpleCutVideoContainer::PlayMarkedL( const TDesC& aFilename,
- const TTimeIntervalMicroSeconds& aStartTime,
- const TTimeIntervalMicroSeconds& aEndTime )
- {
- LOGFMT3(KVideoEditorLogFile, "CVeisimpleCutVideoContainer::PlayMarkedL, In, aStartTime:%Ld, aEndTime:%Ld, aFilename:%S", aStartTime.Int64(), aEndTime.Int64(), &aFilename);
- iPlayOrPlayMarked = ETrue;
-
- if (iVideoClipInfo && !iFrameReady)
- {
- iVideoClipInfo->CancelFrame();
- }
- iVideoDisplay->PlayL( aFilename, aStartTime, aEndTime );
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::PlayMarkedL, Out");
- }
-
-void CVeiSimpleCutVideoContainer::StopL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::StopL, in");
- iVideoDisplay->Stop( EFalse );
-
- iSeekPos = TTimeIntervalMicroSeconds( 0 );
-
- // When adding a new video clip after saving, PlaybackPositionL()
- // returns a value > 0 eventhough the playhead is in the beginning
- // so iLastPosition has to be set to the beginning.
- iLastPosition = TTimeIntervalMicroSeconds( 0 );
-
- SetStateL( EStateStopped );
- PlaybackPositionL();
-
- if (iVideoBarTimer)
- {
- iVideoBarTimer->Cancel();
- }
-
- iCutVideoBar->SetFinishedStatus( ETrue );
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::StopL, in");
- }
-
-
-void CVeiSimpleCutVideoContainer::TakeSnapshotL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::TakeSnapshotL in");
-
- if( !iVideoClipInfo || !iFrameReady )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::TakeSnapshotL: 1");
- if (!iFrameReady)
- {
- iTakeSnapshotWaiting = ETrue;
- }
- return;
- }
-
- iTakeSnapshotWaiting = EFalse;
- iTakeSnapshot = ETrue;
- const TTimeIntervalMicroSeconds& pos = PlaybackPositionL();
-
- GetThumbAtL( pos );
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::TakeSnapshotL out");
- }
-
-void CVeiSimpleCutVideoContainer::PauseL( TBool aUpdateCBA )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::PauseL: In");
-
- if (EStatePlaying == iState)
- {
- iLastPosition = iVideoDisplay->PositionL();
- iSeekPos = iLastPosition;
- // to set next start point
- iVideoDisplay->SetPositionL(iSeekPos);
- }
-
- iVideoDisplay->PauseL();
- if (iVideoBarTimer)
- {
- iVideoBarTimer->Cancel();
- }
-
- #ifdef GET_PAUSE_THUMBNAIL
- GetThumbAtL( iLastPosition );
- #endif
-
- if (EStateStoppedInitial == iState || EStateStopped == iState)
- {
- // just to trigger cba-update
- SetStateL( iState, aUpdateCBA );
- }
- else if (EStateInitializing != iState)
- {
- SetStateL( EStatePaused, aUpdateCBA );
- }
- else
- {
- SetStateL( EStateStoppedInitial );
- }
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::PauseL: Out");
- }
-
-void CVeiSimpleCutVideoContainer::SaveSnapshotL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SaveSnapshotL: In");
-
- if (LaunchSavingDialogsL())
- {
- //first we have to encode bitmap
- // get encoder types
- RImageTypeDescriptionArray imageTypes;
- iConverter->GetEncoderImageTypesL( imageTypes );
-
- CleanupStack::PushL( TCleanupItem( CleanupRarray, &imageTypes ) );
-
- TInt selectedIdx = 0;
-
- for( TInt i=0; i<imageTypes.Count(); i++ )
- {
- if ( imageTypes[i]->Description() == KEncoderType )
- {
- selectedIdx = i;
- }
- }
-
- //for cancellation
- if ( iSaveToFileName )
- {
- delete iSaveToFileName;
- iSaveToFileName = NULL;
- }
- iSaveToFileName = HBufC::NewL( iSnapshotFileName.Length() );
- *iSaveToFileName = iSnapshotFileName;
-
- // request the actuall save/encode
- // asynchronous, the result is reported via callback NotifyCompletion
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SaveSnapshotL: 1, calling iConverter->StartToEncodeL");
- iConverter->StartToEncodeL( iSnapshotFileName,
- imageTypes[selectedIdx]->ImageType(), imageTypes[selectedIdx]->SubType());
-
- CleanupStack::PopAndDestroy( &imageTypes );
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SaveSnapshotL: Out");
-
- ShowProgressNoteL();
- }
- }
-
-
-TBool CVeiSimpleCutVideoContainer::LaunchSavingDialogsL()
- {
- TBool ret = EFalse;
- RFs fs = CCoeEnv::Static()->FsSession();
-
- iSnapshotFileName.Zero();
- iSnapshotFileName.Append( iView.Settings().DefaultSnapshotName() );
- iSnapshotFileName.Append( _L(".JPEG") );
-
- // Multiple drive support
-#ifdef RD_MULTIPLE_DRIVE
- TDriveNumber driveNumber;
- TFileName driveAndPath;
- CAknMemorySelectionDialogMultiDrive* multiDriveDlg =
- CAknMemorySelectionDialogMultiDrive::NewL(ECFDDialogTypeSave, EFalse );
-
- CleanupStack::PushL(multiDriveDlg);
-
- // launch "Select memory" query
- if (multiDriveDlg->ExecuteL( driveNumber, &driveAndPath, NULL ))
- {
- driveAndPath.Append( PathInfo::ImagesPath() );
-
- iSnapshotFileName.Insert(0,driveAndPath);
-
- // Generate a default name for the new file
- CApaApplication::GenerateFileName( fs, iSnapshotFileName );
-
- // launch file name prompt dialog
- if (CAknFileNamePromptDialog::RunDlgLD(iSnapshotFileName, driveAndPath, KNullDesC))
- {
- driveAndPath.Append(iSnapshotFileName);
- iSnapshotFileName = driveAndPath;
- ret = ETrue;
- }
- else
- {
- iTakeSnapshot = EFalse;
- iTakeSnapshotWaiting = EFalse;
- }
- }
- else
- {
- iTakeSnapshot = EFalse;
- iTakeSnapshotWaiting = EFalse;
- }
- CleanupStack::PopAndDestroy( multiDriveDlg );
-#else // no multiple drive support
- CAknMemorySelectionDialog::TMemory selectedMemory(CAknMemorySelectionDialog::EPhoneMemory);
- // launch "Select memory" query
- if (CAknMemorySelectionDialog::RunDlgLD(selectedMemory))
- {
- // create path for the image
- TFileName driveAndPath;
- if (selectedMemory == CAknMemorySelectionDialog::EPhoneMemory)
- {
- driveAndPath.Copy( PathInfo::PhoneMemoryRootPath() );
- driveAndPath.Append( PathInfo::ImagesPath() );
- }
- else if (selectedMemory == CAknMemorySelectionDialog::EMemoryCard)
- {
- driveAndPath.Copy( PathInfo::MemoryCardRootPath() );
- driveAndPath.Append( PathInfo::ImagesPath() );
- }
-
- iSnapshotFileName.Insert(0,driveAndPath);
-
- // Generate a default name for the new file
- CApaApplication::GenerateFileName( fs, iSnapshotFileName );
-
- // launch file name prompt dialog
- if (CAknFileNamePromptDialog::RunDlgLD(iSnapshotFileName, driveAndPath, KNullDesC))
- {
- driveAndPath.Append(iSnapshotFileName);
- iSnapshotFileName = driveAndPath;
- ret = ETrue;
- }
- else
- {
- iTakeSnapshot = EFalse;
- iTakeSnapshotWaiting = EFalse;
- }
- }
- else
- {
- iTakeSnapshot = EFalse;
- iTakeSnapshotWaiting = EFalse;
- }
-#endif
- return ret;
- }
-
-void CVeiSimpleCutVideoContainer::CancelSnapshotSave()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::CancelSnapshotSave: in");
- if ( iConverter )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::CancelSnapshotSave: 1");
- iConverter->Cancel();
- iConverter->CancelEncoding(); //also close the file
- }
- if ( iSaveToFileName )
- {
- LOGFMT(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::CancelSnapshotSave: 2, iSaveToFileName:%S", iSaveToFileName);
-
- RFs& fs = iEikonEnv->FsSession();
- /*TInt result =*/ fs.Delete( *iSaveToFileName );
- delete iSaveToFileName;
- iSaveToFileName = NULL;
- }
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::CancelSnapshotSave: out");
- }
-
-void CVeiSimpleCutVideoContainer::CloseStreamL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::CloseStreamL, in");
- if( !iFrameReady && iVideoClipInfo )
- {
- iVideoClipInfo->CancelFrame();
- }
- PlaybackPositionL();
- iState = EStateStopped;
- iView.UpdateCBAL(iState);
-
- iVideoDisplay->Stop( ETrue );
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::CloseStreamL, out");
- }
-
-void CVeiSimpleCutVideoContainer::SetInTime( const TTimeIntervalMicroSeconds& aTime )
- {
- if ( iCutTimeDisplay )
- {
- iCutTimeDisplay->SetCutIn( aTime );
- }
- if ( iCutVideoBar )
- {
- iCutVideoBar->SetInPoint( aTime );
- }
- }
-
-void CVeiSimpleCutVideoContainer::SetOutTime( const TTimeIntervalMicroSeconds& aTime )
- {
- if ( iCutTimeDisplay )
- {
- iCutTimeDisplay->SetCutOut( aTime );
- }
- if ( iCutVideoBar )
- {
- iCutVideoBar->SetOutPoint( aTime );
- }
- }
-
-TTimeIntervalMicroSeconds CVeiSimpleCutVideoContainer::PlaybackPositionL()
- {
- if ( ( iSeeking ) || ( EStateStopped == iState ) )
- {
- return iSeekPos;
- }
- if ( iState != EStatePlaying )
- {
- return iLastPosition;
- }
-
- if ( iVideoClipInfo && (iVideoDisplay->PositionL() < iVideoClipInfo->Duration()) )
- {
- iLastPosition = iVideoDisplay->PositionL();
- }
-
- if ( ( iLastPosition == TTimeIntervalMicroSeconds( 0 ) ) &&
- ( iSeekPos != TTimeIntervalMicroSeconds( 0 ) ) )
- {
- return iSeekPos;
- }
-
- return iLastPosition;
- }
-
-TKeyResponse CVeiSimpleCutVideoContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
- {
- if ( aType == EEventKeyDown )
- {
- iKeyRepeatCount = 0;
- if(aKeyEvent.iScanCode == EStdKeyDevice7) //for camera key
- {
- PauseL(ETrue);
- }
- TBool shiftKeyPressed = (aKeyEvent.iModifiers & EModifierShift );
- if( shiftKeyPressed )
- {
- if( iView.IsEnoughFreeSpaceToSaveL() && (iTakeSnapshot == EFalse ))
- {
- /*if (EStatePlaying == iState)
- {
- PauseL();
- }
- */
- TakeSnapshotL();
- }
- return EKeyWasConsumed;
- }
-
- return EKeyWasNotConsumed;
- }
- else if ( aType == EEventKeyUp )
- {
- if ( iSeeking == EFalse )
- {
- return EKeyWasNotConsumed;
- }
- iLastPosition = iSeekPos;
- iVideoDisplay->SetPositionL( iSeekPos );
-
- iSeeking = EFalse;
-
- if ( ( ( EStateStopped == iState ) || ( EStateStoppedInitial == iState )
- || ( EStatePaused == iState )) &&
- ( ( iLastKeyCode == EKeyLeftArrow ) || ( iLastKeyCode == EKeyRightArrow ) ) )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::OfferKeyEventL: 1, calling GetThumbAtL()");
- GetThumbAtL( iSeekPos );
- return EKeyWasConsumed;
- }
- else if ( EStatePlaying == iState )
- {
- if ( iVideoBarTimer->IsActive() )
- {
- iVideoBarTimer->Cancel();
- }
-
- if ( iVideoClipInfo && (iSeekPos >= iVideoClipInfo->Duration()) )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::OfferKeyEventL: 2, calling iVideoDisplay->Stop");
- iVideoDisplay->Stop( EFalse );
- }
- else
- {
- iVideoDisplay->SetPositionL( iSeekPos );
- iVideoDisplay->ShowBlackScreen();
- if (iVideoClipInfo && !iFrameReady)
- {
- iVideoClipInfo->CancelFrame();
- }
- iVideoDisplay->Play();
- }
- return EKeyWasConsumed;
- }
- else
- {
- return EKeyWasConsumed;
- }
- }
- else if ( aType == EEventKey )
- {
- iLastKeyCode = aKeyEvent.iCode;
-
- switch (aKeyEvent.iCode)
- {
- case EKeyEnter:
- {
- if ( EStateStoppedInitial == iState )
- {
- iView.HandleCommandL( EVeiCmdCutVideoViewPlay );
- }
- else
- {
- if ( EStatePlaying == iState || EStatePlayingMenuOpen == iState )
- {
- PauseL();
- }
- iView.ProcessCommandL( EAknSoftkeyOptions );
- }
- return EKeyWasConsumed;
- }
- case EKeyOK:
- {
- iView.HandleCommandL( EAknSoftkeyOk );
- return EKeyWasConsumed;
- }
- case EKeyDownArrow:
- case EKeyUpArrow:
- {
- iVideoDisplay->OfferKeyEventL( aKeyEvent, aType );
- return EKeyWasConsumed;
- }
- case EKeyRightArrow:
- {
- iKeyRepeatCount++;
-
- if ( (iKeyRepeatCount > 2) && (iSeeking == EFalse) )
- {
- if ( EStatePlaying == iState )
- {
- iSeekPos = iVideoDisplay->PositionL();
- }
-
- iVideoDisplay->PauseL();
- iSeeking = ETrue;
- iKeyRepeatCount = 0;
- }
-
- if ( iSeeking && ( iState!=EStateInitializing ) &&
- ( iState!=EStatePlayingMenuOpen ) )
- {
- TInt adjustment = TimeIncrement( iKeyRepeatCount );
-
- TInt64 newPos = iSeekPos.Int64() + adjustment;
- if ( iVideoClipInfo && (newPos > iVideoClipInfo->Duration().Int64()) )
- {
- newPos = iVideoClipInfo->Duration().Int64();
- }
-
- iSeekPos = TTimeIntervalMicroSeconds( newPos );
-
- iCutVideoBar->SetCurrentPoint( (static_cast<TInt32>(iSeekPos.Int64() / 1000)));
-
- iView.UpdateTimeL();
- return EKeyWasConsumed;
- }
- return EKeyWasNotConsumed;
- }
-
- case EKeyLeftArrow:
- {
- iKeyRepeatCount++;
-
- if ( (iKeyRepeatCount > 2) && (iSeeking == EFalse) )
- {
-
- if ( EStatePlaying == iState )
- {
- iSeekPos = iVideoDisplay->PositionL();
- }
-
- iVideoDisplay->PauseL();
- iSeeking = ETrue;
- iKeyRepeatCount = 0;
- }
-
- if ( iSeeking && ( iState!=EStateInitializing ) &&
- ( iState!=EStatePlayingMenuOpen ) )
- {
-
- TInt adjustment = TimeIncrement( iKeyRepeatCount );
-
- TInt64 newPos = iSeekPos.Int64() - adjustment;
- if ( newPos < 0 )
- {
- newPos = 0;
- }
- iSeekPos = TTimeIntervalMicroSeconds( newPos );
-
- iCutVideoBar->SetCurrentPoint( static_cast<TInt32>((iSeekPos.Int64() / 1000)) );
-
- iView.UpdateTimeL();
-
- return EKeyWasConsumed;
- }
- return EKeyWasNotConsumed;
- }
- case EKeyBackspace: //Clear
- {
- if (EStatePlaying != iState)
- {
- iView.ClearInOutL( ETrue, ETrue );
- }
-
- return EKeyWasConsumed;
- }
- default:
- {
- return EKeyWasNotConsumed;
- }
- }
- }
- else
- {
- return EKeyWasNotConsumed;
- }
- }
-
-TInt CVeiSimpleCutVideoContainer::TimeIncrement(TInt aKeyCount) const
- {
- if ( aKeyCount < 3 )
- {
- return 100000;
- }
- else if ( aKeyCount < 4 )
- {
- return 300000;
- }
- else if ( aKeyCount < 5 )
- {
- return 500000;
- }
- else if ( aKeyCount < 10 )
- {
- return 1000000;
- }
- else if ( aKeyCount < 13 )
- {
- return 2000000;
- }
- else if ( aKeyCount < 15 )
- {
- return 3000000;
- }
- else
- {
- return 5000000;
- }
- }
-
-TInt CVeiSimpleCutVideoContainer::UpdateProgressNote()
- {
- TTime intervalTime;
- intervalTime.HomeTime();
- intervalTime += TTimeIntervalMicroSeconds( 50000 );
- TTime currentTime;
- currentTime.HomeTime();
- while ( intervalTime > currentTime )
- {
- currentTime.HomeTime();
- }
-
- iProgressDialog->GetProgressInfoL()->IncrementAndDraw( 1 );
-
- if ( KProgressbarFinalValue <= iProgressDialog->GetProgressInfoL()->CurrentValue() )
- {
- return 0;
- }
- return 1;
- }
-
-
-void CVeiSimpleCutVideoContainer::GetThumbL( const TDesC& aFilename )
- {
- if ( iVideoClipInfo )
- {
- delete iVideoClipInfo;
- iVideoClipInfo = NULL;
- }
-
- /*iVideoClipInfo = */CVedVideoClipInfo::NewL( aFilename, *this );
- }
-
-
-void CVeiSimpleCutVideoContainer::GetThumbAtL( const TTimeIntervalMicroSeconds& aTime )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetThumbAtL: In");
- if( !iVideoClipInfo )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetThumbAtL: 1");
- return;
- }
- if ( !iFrameReady )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetThumbAtL: 1.5");
- iVideoClipInfo->CancelFrame();
- }
-
- TRect clipResolution = iVideoClipInfo->Resolution();
- TSize resolution( iVideoDisplay->Size() );
-
- TInt frameIndex;
- TInt totalFrameCount;
-
- frameIndex = iVideoClipInfo->GetVideoFrameIndexL( aTime );
- totalFrameCount = iVideoClipInfo->VideoFrameCount();
-
- if ( frameIndex > totalFrameCount )
- {
- frameIndex = totalFrameCount;
- }
-
- //Generates a thumbnail bitmap of the given frame from video clip
- if ( iTakeSnapshot )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetThumbAtL: 2");
- TDisplayMode displayMode = ENone;
- TBool enhance = EFalse;
- TSize resol( clipResolution.iBr.iX, clipResolution.iBr.iY );
- /* :
- check out on every phone before releasing whether videodisplay should be stopped before starting
- asynchronous GetFrameL()
- see how EStateGettingFrame is handled in SetPreviewState
- Stopping frees memory and it is needed in memory sensible devices
- */
- iVideoClipInfo->GetFrameL( *this, frameIndex, &resol ); //, displayMode, enhance );
- SetStateL( EStateGettingFrame );
- iFrameReady = EFalse;
-// ShowProgressNoteL();
- }
- else
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetThumbAtL: 3");
- /* :
- check out on every phone before releasing whether videodisplay should be stopped before starting
- asynchronous GetFrameL()
- see how EStateGettingFrame is handled in SetPreviewState
- Stopping frees memory and it is needed in memory sensible devices
- */
- TSize resol( clipResolution.iBr.iX, clipResolution.iBr.iY );
- iVideoClipInfo->GetFrameL( *this, frameIndex, &resol );
- SetStateL( EStateGettingFrame );
- iFrameReady = EFalse;
- }
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::GetThumbAtL: out");
- }
-
-void CVeiSimpleCutVideoContainer::NotifyCompletion( TInt aErr )
- {
- LOGFMT(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyCompletion: In, aErr:%d", aErr);
-
- if (EStateTerminating == iState)
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyCompletion(): 1, app is closing...");
- return;
- }
-
- if ( KErrNone == aErr )
- {
- //Update notification to Media Gallery
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyCompletion: 2");
-
- if (iProgressDialog)
- {
- TRAP_IGNORE(iProgressDialog->GetProgressInfoL()->SetAndDraw( KProgressbarFinalValue );
- iProgressDialog->ProcessFinishedL());
- }
- }
- else
- {
- if (iProgressDialog)
- {
- TRAP_IGNORE(iProgressDialog->GetProgressInfoL()->SetAndDraw( KProgressbarFinalValue );
- iProgressDialog->ProcessFinishedL());
- }
- iErrorUI.ShowGlobalErrorNote( aErr );
- }
-
- // to eliminate previous (wrong) output file from being deleted in CancelSnapshotSave()
- delete iSaveToFileName;
- iSaveToFileName = NULL;
-
- // to fix progress bar shadow
- DrawDeferred();
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyCompletion: Out");
- }
-
-void CVeiSimpleCutVideoContainer::NotifyVideoClipInfoReady( CVedVideoClipInfo& aInfo,
- TInt aError )
- {
- LOGFMT(KVideoEditorLogFile, "CVeisimpleCutVideoContainer::NotifyVideoClipInfoReady, In, aError:%d", aError);
- if (KErrNone == aError)
- {
- if (iVideoClipInfo)
- {
- delete iVideoClipInfo;
- iVideoClipInfo = NULL;
- }
- iVideoClipInfo = &aInfo;
-
- TRect clipResolution = iVideoClipInfo->Resolution();
- iDuration = iVideoClipInfo->Duration();
- iCutVideoBar->SetTotalDuration( iDuration );
- iView.DrawTimeNaviL();
-
- TSize resolution( clipResolution.iBr.iX, clipResolution.iBr.iY );
- iFrameReady = EFalse;
- iVideoClipInfo->GetFrameL( *this, 0, &resolution );
- }
- SetStateL( EStateStoppedInitial );
- LOG(KVideoEditorLogFile, "CVeisimpleCutVideoContainer::NotifyVideoClipInfoReady, Out");
- }
-
-
-void CVeiSimpleCutVideoContainer::NotifyVideoClipFrameCompleted(CVedVideoClipInfo& /*aInfo*/,
- TInt aError,
- CFbsBitmap* aFrame)
- {
- LOGFMT(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoClipFrameCompleted, In, aError:%d", aError);
- iFrameReady = ETrue;
-
- if (EStateGettingFrame == iState)
- {
- SetStateL(iPreviousState);
- }
-
- if (KErrNone == aError && aFrame)
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoClipFrameCompleted 1");
-
- if ( iTakeSnapshot )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoClipFrameCompleted 2");
- iConverter->SetBitmap( aFrame );
- if (! iCallBackSaveSnapshot)
- {
- TCallBack cb (CVeiSimpleCutVideoContainer::AsyncSaveSnapshot, this);
- iCallBackSaveSnapshot = new (ELeave) CAsyncCallBack(cb, CActive::EPriorityStandard);
- }
- iCallBackSaveSnapshot->CallBack();
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoClipFrameCompleted 3");
- }
- else
- {
- LOG(KVideoEditorLogFile, "CVeisimpleCutVideoContainer::NotifyVideoClipFrameCompleted 4");
- TRAP_IGNORE(iVideoDisplay->ShowPictureL( *aFrame ));
- delete aFrame;
- aFrame = NULL;
-
- if (iTakeSnapshotWaiting)
- {
- if (! iCallBackTakeSnapshot)
- {
- TCallBack cb (CVeiSimpleCutVideoContainer::AsyncTakeSnapshot, this);
- iCallBackTakeSnapshot = new (ELeave) CAsyncCallBack(cb, CActive::EPriorityStandard);
- }
- iCallBackTakeSnapshot->CallBack();
- }
- }
- }
- else
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoClipFrameCompleted 5");
- if (aFrame)
- {
- delete aFrame;
- aFrame = NULL;
- }
-
- if (iProgressDialog)
- {
- iProgressDialog->GetProgressInfoL()->SetAndDraw( KProgressbarFinalValue );
- TRAP_IGNORE(iProgressDialog->ProcessFinishedL());
- }
- }
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoClipFrameCompleted, Out");
- }
-
-TInt CVeiSimpleCutVideoContainer::AsyncSaveSnapshot(TAny* aThis)
- {
- LOG( KVideoEditorLogFile, "CVeiSimpleCutVideoView::AsyncSaveSnapshot in");
-
- // In the asynchronous version, trap the rest of the functions
- // to make sure that the caller's TRequestStatus is always
- // completed, also in case of failures.
- CVeiSimpleCutVideoContainer* container = static_cast<CVeiSimpleCutVideoContainer*>(aThis);
- TInt err = KErrNone;
- TRAP(err, container->SaveSnapshotL());
- LOGFMT( KVideoEditorLogFile, "CVeiEditVideoView::AsyncSaveSnapshot 2, err:%d", err);
-
- if (KErrNone != err)
- {
- container->StopProgressDialog();
- container->ShowGlobalErrorNote(err);
- }
- LOG( KVideoEditorLogFile, "CVeiEditVideoView::AsyncSaveSnapshot 3, returning");
- return KErrNone;
- }
-
-void CVeiSimpleCutVideoContainer::ShowGlobalErrorNote(const TInt aErr)
- {
- iErrorUI.ShowGlobalErrorNote( aErr );
- }
-
-void CVeiSimpleCutVideoContainer::StopProgressDialog()
- {
- if (iProgressDialog)
- {
- TRAP_IGNORE(iProgressDialog->GetProgressInfoL()->SetAndDraw( KProgressbarFinalValue );
- iProgressDialog->ProcessFinishedL());
- }
- }
-
-void CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent( const TPlayerEvent aEvent, const TInt& aInfo )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, In");
-
- if (EStateTerminating == iState)
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent(): 1, app is closing...");
- return;
- }
-
- switch (aEvent)
- {
- case MVeiVideoDisplayObserver::ELoadingStarted:
- {
- SetStateL(EStateOpening);
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent() MVeiVideoDisplayObserver::ELoadingStarted");
- break;
- }
- case MVeiVideoDisplayObserver::EOpenComplete:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::EOpenComplete 1");
- iVideoDisplay->SetRotationL( EVideoRotationNone );
- TTimeIntervalMicroSeconds cutInTime = iView.GetVideoClipCutInTime();
- TTimeIntervalMicroSeconds cutOutTime = iView.GetVideoClipCutOutTime();
-
- if ( iView.IsForeground() )
- {
- if (iVideoClipInfo && !iFrameReady)
- {
- iVideoClipInfo->CancelFrame();
- }
- if ( iPlayOrPlayMarked )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::EOpenComplete 2");
- iVideoDisplay->PlayMarkedL( cutInTime, cutOutTime );
- }
- else
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::EOpenComplete 3");
- iVideoDisplay->Play();
- }
- iPlayOrPlayMarked = EFalse;
- }
- else
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent() MVeiVideoDisplayObserver::EOpenComplete 4");
- PauseL();
- }
- break;
- }
- case MVeiVideoDisplayObserver::EBufferingStarted:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent() MVeiVideoDisplayObserver::EBufferingStarted");
- SetStateL( EStateBuffering );
- if ( iVideoBarTimer )
- {
- iVideoBarTimer->Cancel();
- }
- break;
- }
- case MVeiVideoDisplayObserver::ELoadingComplete:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::ELoadingComplete 1");
- // if VED is put to background in the middle of the buffering
- // iVideoDisplay->PauseL(); cannot be called during the buffering, so its called here
- if (EStatePaused == iState)
- {
- iVideoDisplay->PauseL();
- }
- else
- {
- SetStateL( EStatePlaying );
- if (iVideoClipInfo && !iFrameReady)
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::ELoadingComplete 2");
- iVideoClipInfo->CancelFrame();
- }
- if ( !iVideoBarTimer->IsActive() )
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::ELoadingComplete 3");
- const TUint delay = 100000;
- iVideoBarTimer->Start( delay, delay, TCallBack( CVeiSimpleCutVideoContainer::DoAudioBarUpdate, this ) );
- }
- iVideoDisplay->ShowBlackScreen();
- DrawDeferred();
- }
- break;
- }
- case MVeiVideoDisplayObserver::EPlayComplete:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::EPlayComplete");
- iVideoDisplay->SetBlackScreen( EFalse );
- iSeekPos = TTimeIntervalMicroSeconds( 0 );
-
- iLastPosition = TotalLength();
- iView.StopNaviPaneUpdateL();
- iCutVideoBar->SetFinishedStatus( ETrue );
-
- if (iVideoBarTimer)
- {
- iVideoBarTimer->Cancel();
- }
-
- GetThumbAtL(0);
- iVideoDisplay->Stop( ETrue );
- SetStateL( EStateStopped );
-
- if (KErrNoMemory == aInfo || KErrSessionClosed == aInfo)
- {
- iErrorUI.ShowGlobalErrorNote( aInfo );
- StopL();
- CloseStreamL();
- }
-
- DrawDeferred();
- break;
- }
- case MVeiVideoDisplayObserver::EStop:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent() MVeiVideoDisplayObserver::EStop");
-
- if (EStateGettingFrame == iState)
- {
- break;
- }
-
- if ( iVideoBarTimer )
- {
- iVideoBarTimer->Cancel();
- }
- iSeekPos = TTimeIntervalMicroSeconds( 0 );
-
- GetThumbAtL(0);
- iLastPosition = TotalLength();
- iView.StopNaviPaneUpdateL();
- iCutVideoBar->SetFinishedStatus( ETrue );
- iVideoDisplay->Stop( ETrue );
- SetStateL( EStateStopped );
- DrawDeferred();
- break;
- }
- case MVeiVideoDisplayObserver::EVolumeLevelChanged:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::EVolumeLevelChanged");
- TInt playerVolume = iVideoDisplay->Volume();
- iView.ShowVolumeLabelL( playerVolume );
- break;
- }
- case MVeiVideoDisplayObserver::EError:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent() MVeiVideoDisplayObserver::EError");
-// iErrorUI.ShowGlobalErrorNoteL( KErrGeneral );
- SetStateL( EStateStoppedInitial );
- break;
- }
- default:
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, MVeiVideoDisplayObserver::default");
- break;
- };
- }
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::NotifyVideoDisplayEvent, Out");
- }
-
-
-void CVeiSimpleCutVideoContainer::SetStateL(CVeiSimpleCutVideoContainer::TCutVideoState aState, TBool aUpdateCBA)
- {
- LOGFMT2(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SetStateL: in, iState:%d, aState:%d", iState, aState);
- if (EStateGettingFrame == aState)
- {
- iPreviousState = iState;
- }
-
- iState = aState;
- if (EStatePaused == iState)
- {
- DrawNow();
- }
-
- // If the foreground is lost while an arrow key is down, we do not get
- // the key up -event, and iSeeking remains true. Reseting it here just in case.
- iSeeking = EFalse;
-
- if ( aUpdateCBA )
- {
- iView.UpdateCBAL( iState );
- }
-
- //#ifdef STOP_PLAYER_DURING_GETFRAME
- if (EStateGettingFrame == aState)
- {
- /* :
- check out on every phone before releasing whether videodisplay should be stopped before starting
- asynchronous GetFrameL()
- see how EStateGettingFrame is handled in SetPreviewState
- Stopping frees memory and it is needed in memory sensible devices
- */
- //iVideoDisplay->Stop(ETrue);
- }
- //#endif
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::SetStateL:: out");
- }
-
-
-void CVeiSimpleCutVideoContainer::MarkedInL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::MarkedInL, In");
- if ( EStateInitializing == iState )
- {
- return;
- }
- const TTimeIntervalMicroSeconds& position = PlaybackPositionL();
- iSeekPos = position;
-
- LOGFMT(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::MarkedInL, 2, setting cutINpoint:%Ld", position.Int64());
- iCutVideoBar->SetInPoint( position );
- TInt tempPos = static_cast<TInt32>((position.Int64()/1000));
- iCutVideoBar->SetCurrentPoint( tempPos );
-
- if( !AknLayoutUtils::PenEnabled() )
- {
- iCutTimeDisplay->SetCutIn( position );
- }
-
- PauseL();
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::MarkedInL, Out");
- }
-
-void CVeiSimpleCutVideoContainer::MarkedOutL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::MarkedOutL, In");
- if ( EStateInitializing == iState )
- {
- return;
- }
- const TTimeIntervalMicroSeconds& position = PlaybackPositionL();
- iSeekPos = position;
-
- LOGFMT(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::MarkedOutL, 2, setting cutOUTpoint:%Ld", position.Int64());
- iCutVideoBar->SetOutPoint( position );
- TInt tempPos = static_cast<TInt32>((position.Int64()/1000));
- iCutVideoBar->SetCurrentPoint( tempPos );
-
- if( !AknLayoutUtils::PenEnabled() )
- {
- iCutTimeDisplay->SetCutOut( position );
- }
-
- PauseL();
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::MarkedOutL, Out");
- }
-
-void CVeiSimpleCutVideoContainer::ShowInformationNoteL( const TDesC& aMessage ) const
- {
- CAknInformationNote* note = new ( ELeave ) CAknInformationNote( ETrue );
- note->ExecuteLD( aMessage );
- }
-
-void CVeiSimpleCutVideoContainer::ShowProgressNoteL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::ShowProgressNoteL, in");
- iProgressDialog = new ( ELeave ) CAknProgressDialog( REINTERPRET_CAST( CEikDialog**,
- &iProgressDialog ), ETrue);
- iProgressDialog->SetCallback( this );
- iProgressDialog->PrepareLC( R_VEI_PROGRESS_NOTE_WITH_CANCEL );
-
- HBufC* stringholder;
- TApaAppCaption caption;
- TRAPD( err, ResolveCaptionNameL( caption ) );
-
- // If something goes wrong, show basic "Saving" note
- if ( err )
- {
- stringholder = iEikonEnv->AllocReadResourceLC( R_VEI_PROGRESS_NOTE_SAVING );
- }
- else
- {
- stringholder = StringLoader::LoadLC( R_VEI_PROGRESS_NOTE_SAVING_IMAGE, caption, iEikonEnv );
- }
-
- iProgressDialog->SetTextL( *stringholder );
- CleanupStack::PopAndDestroy( stringholder );
-
- iProgressDialog->GetProgressInfoL()->SetFinalValue( KProgressbarFinalValue );
- iProgressDialog->RunLD();
-
- iProgressDialog->GetProgressInfoL()->SetAndDraw( 50 );
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::ShowProgressNoteL, Out");
- }
-
-//=============================================================================
-void CVeiSimpleCutVideoContainer::ResolveCaptionNameL( TApaAppCaption& aCaption ) const
- {
- RApaLsSession appArcSession;
- CleanupClosePushL( appArcSession );
- User::LeaveIfError( appArcSession.Connect() );
-
- // Get Media Gallery caption
- TApaAppInfo appInfo;
- User::LeaveIfError( appArcSession.GetAppInfo( appInfo, TUid::Uid( KMediaGalleryUID3 ) ) );
-
- aCaption = appInfo.iCaption;
-
- CleanupStack::PopAndDestroy( &appArcSession );
- }
-
-TInt CVeiSimpleCutVideoContainer::DoAudioBarUpdate( TAny* aThis )
- {
- STATIC_CAST( CVeiSimpleCutVideoContainer*, aThis )->DoUpdate();
- return 42;
- }
-
-void CVeiSimpleCutVideoContainer::DoUpdate()
- {
- TTimeIntervalMicroSeconds time;
- time = iVideoDisplay->PositionL();
- if ( iSeeking )
- {
- time = iSeekPos;
- LOGFMT(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::DoUpdate(): 1, time:%Ld", time.Int64());
- }
- else
- {
- LOGFMT(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::DoUpdate(): 2, time:%Ld", time.Int64());
- }
- iCutVideoBar->SetCurrentPoint( static_cast<TInt32>((time.Int64() / 1000)));
- iCutVideoBar->DrawDeferred();
- }
-void CVeiSimpleCutVideoContainer::MuteL()
- {
- iVideoDisplay->SetMuteL( ETrue );
- }
-
-//=============================================================================
-void CVeiSimpleCutVideoContainer::HandleVolumeUpL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandleVolumeUpL: in");
-
- iVideoDisplay->AdjustVolumeL( 1 );
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandleVolumeUpL: out");
- }
-
-
-void CVeiSimpleCutVideoContainer::SetVolumeLevelL( TInt aVolume )
- {
- iVideoDisplay->AdjustVolumeL( aVolume - iVideoDisplay->Volume() );
- }
-
-//=============================================================================
-void CVeiSimpleCutVideoContainer::HandleVolumeDownL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandleVolumeDownL: in");
-
- iVideoDisplay->AdjustVolumeL( -1 );
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandleVolumeDownL: out");
- }
-
-//=============================================================================
-void CVeiSimpleCutVideoContainer::PrepareForTerminationL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::PrepareForTerminationL: in");
-
- SetStateL( EStateTerminating );
-
- if( !iFrameReady && iVideoClipInfo )
- {
- iVideoClipInfo->CancelFrame();
- }
- iState = EStateTerminating;
- iVideoDisplay->Stop( ETrue );
-
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::PrepareForTerminationL: out");
- }
-
-TInt CVeiSimpleCutVideoContainer::AsyncTakeSnapshot(TAny* aThis)
- {
- LOG( KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::AsyncTakeSnapshot");
-
- // In the asynchronous version, trap the rest of the functions
- // to make sure that the caller's TRequestStatus is always
- // completed, also in case of failures.
- CVeiSimpleCutVideoContainer* container = static_cast<CVeiSimpleCutVideoContainer*>(aThis);
- TInt err = KErrNone;
- TRAP(err, container->TakeSnapshotL());
- LOGFMT( KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::AsyncTakeSnapshot 1, err:%d", err);
- User::LeaveIfError(err);
- return KErrNone;
- }
-
-void CVeiSimpleCutVideoContainer::HandleVideoClickedL()
- {
- LOG(KVideoEditorLogFile, "CVeiSimpleCutVideoContainer::HandleVideoClickedL");
-
- if ( EStatePlaying != iState && EStatePlayingMenuOpen != iState )
- {
- iView.HandleCommandL( EVeiCmdCutVideoViewPlay );
- }
- else if ( EStatePlaying == iState || EStatePlayingMenuOpen == iState )
- {
- PauseL();
-// iView.HandleCommandL( EVeiCmdCutVideoViewStop );
- }
- }
-
-void CVeiSimpleCutVideoContainer::FocusChanged( TDrawNow /*aDrawNow*/ )
- {
- if (IsFocused())
- {
- DrawDeferred();
- }
- }
-// End of File