--- a/videditor/ManualVideoEditor/src/VeiCutAudioView.cpp Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,989 +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 <aknviewappui.h>
-#include <avkon.hrh>
-#include <manualvideoeditor.rsg>
-#include <VedAudioClipInfo.h>
-
-#include <akntitle.h>
-#include <barsread.h>
-#include <stringloader.h>
-#include <aknnotewrappers.h>
-#include <aknquerydialog.h>
-#include <aknnavide.h>
-#include <eikbtgpc.h>
-#include <eikmenub.h>
-#include <eikmenup.h>
-#include <eikprogi.h>
-#include <apparc.h>
-#include <aknselectionlist.h>
-
-//User includes
-#include "VeiAppUi.h"
-#include "VeiCutAudioView.h"
-#include "VeiCutAudioContainer.h"
-#include "ManualVideoEditor.hrh"
-#include "VeiTimeLabelNavi.h"
-#include "VideoEditorCommon.h"
-#include "VeiVideoEditorSettings.h"
-#include "VeiErrorUi.h"
-
-CVeiCutAudioView* CVeiCutAudioView::NewL()
- {
- CVeiCutAudioView* self = CVeiCutAudioView::NewLC();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-
-CVeiCutAudioView* CVeiCutAudioView::NewLC()
- {
- CVeiCutAudioView* self = new (ELeave) CVeiCutAudioView();
- CleanupStack::PushL( self );
- self->ConstructL();
- return self;
- }
-
-CVeiCutAudioView::CVeiCutAudioView()
- {
- }
-
-void CVeiCutAudioView::ConstructL()
- {
- BaseConstructL( R_VEI_CUT_AUDIO_VIEW );
-
- CEikStatusPane* sp = StatusPane();
-
- iNaviPane = (CAknNavigationControlContainer*) sp->ControlL(
- TUid::Uid(EEikStatusPaneUidNavi));
-
- iTimeNavi = CreateTimeLabelNaviL();
- iTimeNavi->SetMopParent( this );
-
- iVolumeNavi = iNaviPane->CreateVolumeIndicatorL(
- R_AVKON_NAVI_PANE_VOLUME_INDICATOR );
-
- iErrorUI = CVeiErrorUI::NewL( *iCoeEnv );
-
- iTimeUpdater = CPeriodic::NewL( CActive::EPriorityLow );
- iVolumeHider = CPeriodic::NewL( CActive::EPriorityLow );
- }
-
-// ---------------------------------------------------------
-// CVeiCutAudioView::~CVeiCutAudioView()
-// ?implementation_description
-// ---------------------------------------------------------
-//
-CVeiCutAudioView::~CVeiCutAudioView()
- {
- if ( iContainer )
- {
- AppUi()->RemoveFromViewStack( *this, iContainer );
- delete iContainer;
- iContainer = 0;
- }
- if ( iTimeUpdater )
- {
- iTimeUpdater->Cancel();
- delete iTimeUpdater;
- }
- if ( iVolumeHider )
- {
- iVolumeHider->Cancel();
- delete iVolumeHider;
- }
-
- if ( iErrorUI )
- {
- delete iErrorUI;
- }
-
- delete iVolumeNavi;
-
- delete iTimeNavi;
-
- delete iCallBack;
- }
-
-
-void CVeiCutAudioView::DynInitMenuPaneL( TInt aResourceId,CEikMenuPane* aMenuPane )
- {
- TInt state = iContainer->State();
-
- if (aResourceId == R_VEI_CUT_VIDEO_VIEW_MENU_CLEAR_MARKS)
- {
- // delet in, out, in & out as necessary.
-
- if (iMovie->AudioClipCutInTime(iIndex) <= TTimeIntervalMicroSeconds(0))
- {
- aMenuPane->SetItemDimmed(EVeiCmdCutVideoViewClearMarksIn, ETrue);
- }
- if (iMovie->AudioClipCutOutTime(iIndex) >= iMovie->AudioClipInfo(iIndex)->Duration() )
- {
- aMenuPane->SetItemDimmed(EVeiCmdCutVideoViewClearMarksOut, ETrue);
- }
- if (!((iMovie->AudioClipCutOutTime(iIndex) < iMovie->AudioClipInfo(iIndex)->Duration())
- && (iMovie->AudioClipCutInTime(iIndex) > TTimeIntervalMicroSeconds(0))))
- {
- aMenuPane->SetItemDimmed(EVeiCmdCutVideoViewClearMarksInOut, ETrue);
- }
- }
-
- if ( aResourceId == R_VEI_CUT_VIDEO_VIEW_MENU )
- {
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoTakeSnapshot, ETrue );
-
- if ( iPopupMenuOpened != EFalse )
- {
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewClearMarks, ETrue );
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewHelp, ETrue );
- }
-
- if ( ( iMovie->AudioClipCutInTime( iIndex ) == TTimeIntervalMicroSeconds( 0 ) &&
- iMovie->AudioClipCutOutTime( iIndex ) == iMovie->AudioClipInfo( iIndex )->Duration() ) )
- {
- aMenuPane->DeleteMenuItem( EVeiCmdCutVideoViewPlayMarked );
- }
- if ( state != CVeiCutAudioContainer::EStatePlayingMenuOpen &&
- state != CVeiCutAudioContainer::EStatePaused )
- {
- aMenuPane->DeleteMenuItem( EVeiCmdCutVideoViewContinue );
- }
- if ( ( state == CVeiCutAudioContainer::EStateStopped ) ||
- ( state == CVeiCutAudioContainer::EStateStoppedInitial ) )
- {
- aMenuPane->DeleteMenuItem( EVeiCmdCutVideoViewStop );
- }
-
- if ( ( iMovie->AudioClipCutOutTime( iIndex ) >= iMovie->AudioClipInfo( iIndex )->Duration() ) &&
- ( iMovie->AudioClipCutInTime( iIndex ) <= TTimeIntervalMicroSeconds( 0 ) ) )
- {
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewClearMarks, ETrue );
- }
- if ( state == CVeiCutAudioContainer::EStatePaused )
- {
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewPlay, ETrue );
- }
- if ( state == CVeiCutAudioContainer::EStateStoppedInitial )
- {
- //aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewMarkIn, ETrue );
- //aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewMarkOut, ETrue );
- }
- }
-
- if ( aResourceId != R_VEI_CUT_VIDEO_VIEW_MENU )
- return;
-
-
- if ( ( state != CVeiCutAudioContainer::EStateStopped ) &&
- ( state != CVeiCutAudioContainer::EStateStoppedInitial ) &&
- ( state != CVeiCutAudioContainer::EStatePaused ) )
- {
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewPlay, ETrue );
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewMarkIn, ETrue );
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewMarkOut, ETrue );
- }
- else
- {
- if ( iContainer->PlaybackPositionL() <= iMovie->AudioClipCutInTime( iIndex ) )
- {
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewMarkOut, ETrue );
- }
- else
- {
- if ( iContainer->PlaybackPositionL() >= iMovie->AudioClipCutOutTime( iIndex ) )
- {
- aMenuPane->SetItemDimmed( EVeiCmdCutVideoViewMarkIn, ETrue );
- }
- }
- }
-
- }
-
-TUid CVeiCutAudioView::Id() const
- {
- return TUid::Uid( EVeiCutAudioView );
- }
-
-void CVeiCutAudioView::HandleCommandL(TInt aCommand)
- {
- switch ( aCommand )
- {
- case EAknSoftkeyOk:
- {
- iPopupMenuOpened = ETrue;
- if (iContainer->State() == CVeiCutAudioContainer::EStatePlaying)
- {
- PausePreviewL();
- iContainer->SetStateL(CVeiCutAudioContainer::EStatePlayingMenuOpen);
- }
-
- MenuBar()->TryDisplayMenuBarL();
- if (iContainer->State() == CVeiCutAudioContainer::EStatePlayingMenuOpen)
- {
- iContainer->SetStateL(CVeiCutAudioContainer::EStatePaused);
- }
- iPopupMenuOpened = EFalse;
- break;
- }
- case EVeiCmdCutVideoViewDone:
- case EVeiCmdCutVideoViewBack:
- case EAknSoftkeyBack:
- {
- iContainer->CloseStreamL();
-
- StopNaviPaneUpdateL();
-
- // Activate Edit Video view
- AppUi()->ActivateLocalViewL( TUid::Uid(EVeiEditVideoView) );
- break;
- }
-
- case EVeiCmdCutVideoViewMarkIn:
- {
- MarkInL();
- break;
- }
- case EVeiCmdCutVideoViewMarkOut:
- {
- MarkOutL();
- break;
- }
- case EVeiCmdCutVideoViewClearMarksInOut:
- {
- ClearInOutL( ETrue, ETrue );
- break;
- }
- case EVeiCmdCutVideoViewClearMarksIn:
- {
- ClearInOutL( ETrue, EFalse );
- break;
- }
- case EVeiCmdCutVideoViewClearMarksOut:
- {
- ClearInOutL( EFalse, ETrue );
- break;
- }
- case EVeiCmdCutVideoViewPlayMarked:
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( EFalse );
- PlayMarkedL();
- break;
- }
- case EVeiCmdCutVideoViewPlay:
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( EFalse );
- iNaviPane->PushL( *iTimeNavi );
-
- PlayPreviewL();
- break;
- }
- case EVeiCmdCutVideoViewStop:
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( EFalse );
- iNaviPane->PushL( *iTimeNavi );
- iContainer->StopL();
- StopNaviPaneUpdateL();
- break;
- }
- case EVeiCmdCutVideoViewContinue:
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( EFalse );
- iNaviPane->PushL( *iTimeNavi );
- PlayPreviewL();
- break;
- }
- case EVeiCmdCutVideoVolumeDown:
- {
- if ( !iAudioMuted )
- {
- VolumeDownL();
- }
- break;
- }
- case EVeiCmdCutVideoVolumeUp:
- {
- if ( !iAudioMuted )
- {
- VolumeUpL();
- }
- break;
- }
- //
- // Options->Help
- //
- case EVeiCmdCutVideoViewHelp:
- {
- // CS Help launching is handled in Video Editor's AppUi.
- AppUi()->HandleCommandL( EVeiCmdCutVideoViewHelp );
- break;
- }
- default:
- {
- AppUi()->HandleCommandL( aCommand );
- break;
- }
- }
- }
-
-
-void CVeiCutAudioView::DoActivateL(
- const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
- const TDesC8& /*aCustomMessage*/)
- {
-
- if (!iContainer)
- {
- iContainer = CVeiCutAudioContainer::NewL( AppUi()->ClientRect(), *this, *iErrorUI );
- iContainer->SetMopParent( this );
- AppUi()->AddToStackL( *this, iContainer );
- }
-
- CEikStatusPane *statusPane = ( ( CAknAppUi* )iEikonEnv->EikAppUi() )->StatusPane();
-
- CAknTitlePane* titlePane = (CAknTitlePane*) statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) );
- TResourceReader reader1;
- iCoeEnv->CreateResourceReaderLC( reader1, R_VEI_CUTAUDIO_VIEW_TITLE_NAME );
- titlePane->SetFromResourceL( reader1 );
- CleanupStack::PopAndDestroy(); //reader1
-
- iNaviPane->PushL( *iTimeNavi );
-
- iAudioMuted = EFalse;
-
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->
- SetVolumeIconVisibilityL( ETrue );
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( EFalse );
-
- iContainer->SetInTimeL( iMovie->AudioClipCutInTime( iIndex ) );
- iContainer->SetOutTimeL( iMovie->AudioClipCutOutTime( iIndex ) );
- iContainer->SetDuration( iMovie->AudioClipInfo( iIndex )->Duration() );
-
- // <testing>
-/* TTimeIntervalMicroSeconds time1 = iMovie->AudioClipInfo( iIndex )->Duration();
- TTimeIntervalMicroSeconds time2 = iMovie->AudioClipCutInTime( iIndex );
- TTimeIntervalMicroSeconds time3 = iMovie->AudioClipCutOutTime( iIndex );
- TTimeIntervalMicroSeconds time4 = iMovie->AudioClipStartTime( iIndex );
- TTimeIntervalMicroSeconds time5 = iMovie->AudioClipEndTime( iIndex );
- TTimeIntervalMicroSeconds time6 = iMovie->AudioClipEditedDuration( iIndex );
- TTimeIntervalMicroSeconds time7(time3.Int64() - time2.Int64());
- TTimeIntervalMicroSeconds time8(time5.Int64() - time4.Int64());
-*/ // </testing>
-
- // Start processing the file asynchronously. This is needed because
- // CVeiCutAudioContainer::OpenAudioFileL launches a progress dialog.
- // If it is called syncronously the previous view deactivation has
- // not completed, and view shutter dismisses the progress dialog...
- if (! iCallBack)
- {
- TCallBack cb (CVeiCutAudioView::AsyncOpenAudioFile, this);
- iCallBack = new (ELeave) CAsyncCallBack(cb, CActive::EPriorityStandard);
- }
- iCallBack->CallBack();
-
- iOriginalCutInTime = iMovie->AudioClipCutInTime( iIndex );
-
- DrawTimeNaviL();
-
- iErrorNmb = 0;
- }
-
-// ---------------------------------------------------------
-// CVeiCutAudioView::AsyncOpenAudioFile
-// ?implementation_description
-// ---------------------------------------------------------
-//
-TInt CVeiCutAudioView::AsyncOpenAudioFile(TAny* aThis)
- {
- LOG( KVideoEditorLogFile, "CVeiCutAudioView::AsyncOpenAudioFile");
-
- // 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.
- CVeiCutAudioView* view = static_cast<CVeiCutAudioView*>(aThis);
- TRAPD(err, view->OpenAudioFileL() );
-
- if (err)
- {
- // Display error message here, otherwise it would be quietly ignored.
- TBuf<256> unused;
- view->AppUi()->HandleError(err, SExtendedError(), unused, unused);
- }
-
- return err;
- }
-
-// ---------------------------------------------------------
-// CVeiCutAudioView::OpenAudioFileL()
-// ?implementation_description
-// ---------------------------------------------------------
-//
-void CVeiCutAudioView::OpenAudioFileL()
- {
- TFileName audioClipFileName = iMovie->AudioClipInfo( iIndex )->FileName();
- iContainer->OpenAudioFileL( audioClipFileName );
- }
-
-// ---------------------------------------------------------
-// CVeiCutAudioView::DoDeactivate()
-// ?implementation_description
-// ---------------------------------------------------------
-//
-void CVeiCutAudioView::DoDeactivate()
- {
- iNaviPane->Pop( iVolumeNavi );
-
- if ( iTimeUpdater )
- {
- iTimeUpdater->Cancel();
- }
- if ( iVolumeHider )
- {
- iVolumeHider->Cancel();
- }
- if ( iContainer )
- {
- iNaviPane->Pop( iTimeNavi );
- AppUi()->RemoveFromViewStack( *this, iContainer );
-
- delete iContainer;
- iContainer = NULL;
- }
-
- }
-
-void CVeiCutAudioView::SetVideoClipAndIndex( CVedMovie& aVideoClip, TInt aIndex )
- {
- iMovie = &aVideoClip;
-
- iIndex = aIndex;
- }
-
-void CVeiCutAudioView::PlayPreviewL()
- {
- iPlayMarked = EFalse;
- StartNaviPaneUpdateL();
- iContainer->PlayL();
- }
-
-void CVeiCutAudioView::PausePreviewL()
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( ETrue );
- StopNaviPaneUpdateL();
- iContainer->PauseL();
- }
-
-void CVeiCutAudioView::UpdateCBAL(TInt aState)
- {
- switch (aState)
- {
- case CVeiCutAudioContainer::EStateInitializing:
- case CVeiCutAudioContainer::EStateOpening:
- {
- Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_EMPTY);
- break;
- }
- case CVeiCutAudioContainer::EStateStoppedInitial:
- {
- if ( ( iMovie->AudioClipCutInTime( iIndex ) == TTimeIntervalMicroSeconds( 0 ) ) &&
- ( iMovie->AudioClipCutOutTime( iIndex ) == iMovie->AudioClipInfo(iIndex)->Duration() ) )
- {
- Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_BACK);
- }
- else
- {
- Cba()->SetCommandSetL(R_VEI_SOFTKEYS_OPTIONS_DONE);
- }
- break;
- }
- case CVeiCutAudioContainer::EStatePaused:
- case CVeiCutAudioContainer::EStateStopped:
- {
- if ( ( iMovie->AudioClipCutInTime( iIndex ) == TTimeIntervalMicroSeconds( 0 ) ) &&
- ( iMovie->AudioClipCutOutTime( iIndex ) == iMovie->AudioClipInfo(iIndex)->Duration() ) )
- {
- Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_BACK);
- }
- else
- {
- Cba()->SetCommandSetL(R_VEI_SOFTKEYS_OPTIONS_DONE);
- }
- break;
- }
- case CVeiCutAudioContainer::EStatePlaying:
- {
-
- if ( iContainer->PlaybackPositionL() < iMovie->AudioClipCutInTime( iIndex ) )
- {
- Cba()->SetCommandSetL( R_VEI_SOFTKEYS_IN_EMPTY );
- iMarkState = EMarkStateIn;
- }
- else if ( iContainer->PlaybackPositionL() < iMovie->AudioClipCutOutTime( iIndex ) )
- {
- Cba()->SetCommandSetL( R_VEI_SOFTKEYS_IN_OUT );
- iMarkState = EMarkStateInOut;
- }
- else if ( ( iContainer->PlaybackPositionL() > iMovie->AudioClipCutOutTime( iIndex ) ) && iPlayMarked )
- {
- iContainer->StopL();
- iPlayMarked = EFalse;
- }
- else
- {
- Cba()->SetCommandSetL( R_VEI_SOFTKEYS_EMPTY_OUT );
- iMarkState = EMarkStateOut;
- }
- break;
- }
- default:
- {
- break;
- }
- }
- Cba()->DrawDeferred();
- }
-
-void CVeiCutAudioView::PlayMarkedL()
- {
- TTimeIntervalMicroSeconds audioPlayStartTime;
- audioPlayStartTime = iMovie->AudioClipCutInTime( iIndex );
-
- TTimeIntervalMicroSeconds audioPlayCutOutTime;
- audioPlayCutOutTime = iMovie->AudioClipCutOutTime( iIndex );
-
- if ( !(( audioPlayStartTime.Int64() + 50000 ) > audioPlayCutOutTime.Int64() ) )
- {
- iPlayMarked = ETrue;
- StartNaviPaneUpdateL();
-
- iContainer->PlayL( audioPlayStartTime.Int64() + 1000 );
- }
- else
- {
- iContainer->StopL();
- }
- }
-
-void CVeiCutAudioView::ClearInOutL( TBool aClearIn, TBool aClearOut )
- {
- if ( aClearIn )
- {
- iMovie->AudioClipSetCutInTime( iIndex, TTimeIntervalMicroSeconds( 0 ) );
- iContainer->SetInTimeL( iMovie->AudioClipCutInTime( iIndex ) );
- }
- if ( aClearOut )
- {
- TTimeIntervalMicroSeconds audioClipOriginalDuration;
- audioClipOriginalDuration = iMovie->AudioClipInfo( iIndex )->Duration();
- iMovie->AudioClipSetCutOutTime( iIndex, audioClipOriginalDuration );
- iContainer->SetOutTimeL( audioClipOriginalDuration );
- }
-
- TTimeIntervalMicroSeconds cutin = iMovie->AudioClipCutInTime( iIndex );
- TTimeIntervalMicroSeconds cutout = iMovie->AudioClipCutOutTime( iIndex );
-
- if ( ( cutin == TTimeIntervalMicroSeconds( 0 ) ) &&
- ( cutout == iMovie->AudioClipInfo(iIndex)->Duration() ) )
- {
- Cba()->SetCommandSetL(R_AVKON_SOFTKEYS_OPTIONS_BACK);
- Cba()->DrawDeferred();
- }
- }
-
-void CVeiCutAudioView::MarkInL()
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( ETrue );
- StopNaviPaneUpdateL();
-/* Check that cut in time is before cut out time */
- TTimeIntervalMicroSeconds cutOutTime = iMovie->AudioClipCutOutTime( iIndex );
- TTimeIntervalMicroSeconds cutInTime = iContainer->PlaybackPositionL();
- if ( cutInTime >= cutOutTime )
- {
- cutInTime = cutOutTime.Int64() - 100000;
- }
-
- iMovie->AudioClipSetCutInTime( iIndex, cutInTime );
- iContainer->MarkedInL();
- }
-
-void CVeiCutAudioView::MarkOutL()
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl() )->
- SetPauseIconVisibilityL( ETrue );
- StopNaviPaneUpdateL();
-
- TTimeIntervalMicroSeconds cutOutTime = iContainer->PlaybackPositionL();
- TTimeIntervalMicroSeconds cutInTime = iMovie->AudioClipCutInTime( iIndex );
- if ( cutOutTime <= cutInTime )
- {
- cutOutTime = cutInTime.Int64() + 100000;
- }
-
- //iMovie->AudioClipSetCutOutTime( iIndex, iContainer->PlaybackPositionL() );
- iMovie->AudioClipSetCutOutTime( iIndex, cutOutTime );
- iContainer->MarkedOutL();
- }
-
-void CVeiCutAudioView::MoveStartOrEndMarkL( TTimeIntervalMicroSeconds aPosition, CVeiCutAudioContainer::TCutMark aMarkType )
- {
- LOG(KVideoEditorLogFile, "CVeiCutAudioView::MoveStartOrEndMarkL, In");
-
- StopNaviPaneUpdateL();
-
- LOG(KVideoEditorLogFile, "CVeiCutAudioView::MoveStartOrEndMarkL, 2");
-
- if ( aMarkType == CVeiCutAudioContainer::EStartMark )
- {
- iMovie->VideoClipSetCutInTime( iIndex, aPosition );
- }
- else if ( aMarkType == CVeiCutAudioContainer::EEndMark )
- {
- iMovie->VideoClipSetCutOutTime( iIndex, aPosition );
- }
- LOG( KVideoEditorLogFile, "CVeiCutAudioView::MoveStartOrEndMarkL, Out" );
- }
-
-
-TUint CVeiCutAudioView::InPointTime()
- {
- if ( !iMovie )
- {
- return 0;
- }
- else
- {
- return (static_cast<TInt32>(iMovie->AudioClipCutInTime(iIndex).Int64() / 1000));
- }
- }
-
-TUint CVeiCutAudioView::OutPointTime()
- {
- if ( !iMovie )
- {
- return 0;
- }
- else
- {
- return (static_cast<TInt32>(iMovie->AudioClipCutOutTime(iIndex).Int64() / 1000));
- }
- }
-
-CAknNavigationDecorator* CVeiCutAudioView::CreateTimeLabelNaviL()
- {
- CVeiTimeLabelNavi* timelabelnavi = CVeiTimeLabelNavi::NewLC();
- CAknNavigationDecorator* decoratedFolder =
- CAknNavigationDecorator::NewL(iNaviPane, timelabelnavi, CAknNavigationDecorator::ENotSpecified);
- CleanupStack::Pop(timelabelnavi);
-
- CleanupStack::PushL(decoratedFolder);
- decoratedFolder->SetContainerWindowL(*iNaviPane);
- CleanupStack::Pop(decoratedFolder);
- decoratedFolder->MakeScrollButtonVisible(EFalse);
-
- return decoratedFolder;
- }
-
-TInt CVeiCutAudioView::UpdateTimeCallbackL(TAny* aPtr)
- {
- CVeiCutAudioView* view = (CVeiCutAudioView*)aPtr;
-
- view->UpdateTimeL();
-
- return 1;
- }
-
-
-void CVeiCutAudioView::UpdateTimeL()
- {
- DrawTimeNaviL();
-
- TTimeIntervalMicroSeconds playbackPos = iContainer->PlaybackPositionL();
-
- if (iMarkState == EMarkStateIn)
- {
- if (playbackPos > iMovie->AudioClipCutInTime( iIndex ))
- {
- UpdateCBAL(iContainer->State());
- }
- }
- else if (iMarkState == EMarkStateOut)
- {
- if (playbackPos < iMovie->AudioClipCutOutTime( iIndex ))
- {
- UpdateCBAL(iContainer->State());
- }
- }
- else
- {
- if ((playbackPos < iMovie->AudioClipCutInTime( iIndex )) ||
- (playbackPos > iMovie->AudioClipCutOutTime( iIndex )))
- {
- UpdateCBAL(iContainer->State());
- }
- }
- }
-
-void CVeiCutAudioView::DrawTimeNaviL()
- {
- TTime elapsed( iContainer->PlaybackPositionL().Int64() );
- TTime total( iContainer->TotalLength().Int64() );
-
- TBuf<16> elapsedBuf;
- TBuf<16> totalBuf;
-
- HBufC* dateFormatString;
-
- if ( ( total.Int64() / 1000 ) < 3600000 ) // check if time is over 99:59
- {
- dateFormatString = iEikonEnv->AllocReadResourceLC( R_QTN_TIME_DURAT_MIN_SEC );
- }
- else
- {
- dateFormatString = iEikonEnv->AllocReadResourceLC( R_QTN_TIME_DURAT_LONG );
- }
-
- elapsed.FormatL(elapsedBuf, *dateFormatString);
- total.FormatL(totalBuf, *dateFormatString);
- CleanupStack::PopAndDestroy(dateFormatString);
-
- CDesCArrayFlat* strings = new (ELeave) CDesCArrayFlat(2);
- CleanupStack::PushL(strings);
- strings->AppendL(elapsedBuf);
- strings->AppendL(totalBuf);
- HBufC* stringholder = StringLoader::LoadL(R_VEI_NAVI_TIME, *strings, iEikonEnv);
- CleanupStack::PopAndDestroy(strings);
- CleanupStack::PushL(stringholder);
-
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetLabelL(stringholder->Des());
-
- CleanupStack::PopAndDestroy(stringholder);
-
-
- /* Prevent the screen light dimming. */
- if (elapsed.DateTime().Second() == 0 || elapsed.DateTime().Second() == 15 || elapsed.DateTime().Second() == 30 || elapsed.DateTime().Second() == 45)
- {
- User::ResetInactivityTime();
- }
- }
-
-
-void CVeiCutAudioView::StartNaviPaneUpdateL()
- {
- DrawTimeNaviL();
- if (iTimeUpdater && !iTimeUpdater->IsActive())
- {
- iTimeUpdater->Start(500000, 500000, TCallBack(CVeiCutAudioView::UpdateTimeCallbackL, this));
- }
- }
-
-void CVeiCutAudioView::StopNaviPaneUpdateL()
- {
- if (iContainer)
- {
- DrawTimeNaviL();
- }
- if (iTimeUpdater && iTimeUpdater->IsActive())
- {
- iTimeUpdater->Cancel();
- }
- }
-
-TInt CVeiCutAudioView::HideVolumeCallbackL(TAny* aPtr)
- {
- CVeiCutAudioView* view = (CVeiCutAudioView*)aPtr;
- view->HideVolume();
- return 0;
- }
-
-void CVeiCutAudioView::HideVolume()
- {
- iNaviPane->Pop(iVolumeNavi);
- }
-
-void CVeiCutAudioView::VolumeMuteL()
- {
- iContainer->SetVolumeL(-1000);
- }
-
-void CVeiCutAudioView::VolumeDownL()
- {
- iContainer->SetVolumeL(-1);
- TInt volume = iContainer->Volume();
- if (iVolumeHider->IsActive())
- {
- iVolumeHider->Cancel();
- }
- if (volume == 0)
- {
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->
- SetVolumeIconVisibilityL( EFalse );
- HideVolume();
- volume = 1;
- return;
- }
-
- iNaviPane->PushL(*iVolumeNavi);
- iVolumeHider->Start(1000000, 100000, TCallBack(CVeiCutAudioView::HideVolumeCallbackL, this));
-
- STATIC_CAST(CAknVolumeControl*, iVolumeNavi->DecoratedControl())->SetValue(volume);
-
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetLeftArrowVisibilityL(ETrue);
-
- if (volume < iContainer->MaxVolume())
- {
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetRightArrowVisibilityL(ETrue);
- }
- else
- {
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetRightArrowVisibilityL(EFalse);
- }
- }
-
-void CVeiCutAudioView::VolumeUpL()
- {
- iContainer->SetVolumeL(1);
- STATIC_CAST( CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->
- SetVolumeIconVisibilityL( ETrue );
-
- TInt volume = iContainer->Volume();
- if (iVolumeHider->IsActive())
- {
- iVolumeHider->Cancel();
- }
- iNaviPane->PushL(*iVolumeNavi);
- iVolumeHider->Start(1000000, 1000000, TCallBack(CVeiCutAudioView::HideVolumeCallbackL, this));
-
- STATIC_CAST(CAknVolumeControl*, iVolumeNavi->DecoratedControl())->SetValue(volume);
-
- if (volume > iContainer->MinVolume() + 1)
- {
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetLeftArrowVisibilityL(ETrue);
- }
- else
- {
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetLeftArrowVisibilityL(EFalse);
- }
-
- if (volume < iContainer->MaxVolume())
- {
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetRightArrowVisibilityL(ETrue);
- }
- else
- {
- STATIC_CAST(CVeiTimeLabelNavi*, iTimeNavi->DecoratedControl())->SetRightArrowVisibilityL(EFalse);
- }
-
- }
-
-void CVeiCutAudioView::HandleForegroundEventL ( TBool aForeground )
- {
- if ( !aForeground )
- {
- // If the application is closing down, calling PauseL could result in
- // a callback from the MMF player after the container is already deleted,
- // causing KERN-EXEC 3
- if ( static_cast<CVeiAppUi*>( AppUi() )->AppIsOnTheWayToDestruction() )
- {
- iContainer->PrepareForTerminationL();
- }
- else
- {
- iContainer->PauseL();
- }
- iNaviPane->Pop( iTimeNavi );
- }
- else
- {
- iNaviPane->PushL( *iTimeNavi );
- }
- }
-
-// ---------------------------------------------------------
-// CVeiCutAudioView::HandleStatusPaneSizeChange()
-// ---------------------------------------------------------
-//
-void CVeiCutAudioView::HandleStatusPaneSizeChange()
- {
- if ( iContainer )
- {
- iContainer->SetRect( AppUi()->ClientRect() );
- }
- }
-
-void CVeiCutAudioView::GetAudioVisualizationL()
- {
- LOG(KVideoEditorLogFile, "CVeiCutAudioView::GetAudioVisualization(), In");
- CVedAudioClipInfo* audioInfo = NULL;
- if (iMovie)
- {
- audioInfo = iMovie->AudioClipInfo( iIndex );
- if (audioInfo && iContainer)
- {
- TInt64 duration = audioInfo->Duration().Int64();
- TInt resolution = (duration/1000)/KAudioSampleInterval;
-
- LOGFMT(KVideoEditorLogFile, "CVeiCutAudioView::GetAudioVisualization() 2, calling audioInfo->GetVisualizationL(*iContainer, resolution, 1), where resolution is:%Ld", resolution);
- audioInfo->GetVisualizationL(*iContainer, resolution, 1);
- }
- }
-
- LOG(KVideoEditorLogFile, "CVeiCutAudioView::GetAudioVisualization(), Out");
- }
-
-void CVeiCutAudioView::CancelVisualizationL()
- {
- CVedAudioClipInfo* audioInfo = NULL;
- if (iMovie)
- {
- audioInfo = iMovie->AudioClipInfo( iIndex );
- }
- if (audioInfo && iContainer)
- {
- TInt resolution = (audioInfo->Duration().Int64()/1000)/KAudioSampleInterval;
- audioInfo->CancelVisualizationL();
- }
- }
-
-void CVeiCutAudioView::HandleResourceChange(TInt aType)
- {
- LOGFMT(KVideoEditorLogFile, "CVeiCutAudioView::HandleResourceChange() In, aType:%d", aType);
-
- if (KAknsMessageSkinChange == aType)
- {
- // Handle skin change in the navi label controls - they do not receive
- // it automatically since they are not in the control stack
- iTimeNavi->DecoratedControl()->HandleResourceChange( aType );
- iVolumeNavi->DecoratedControl()->HandleResourceChange( aType );
- }
-
- LOG(KVideoEditorLogFile, "CVeiCutAudioView::HandleResourceChange() Out");
- }
-
-// End of File