diff -r 951a5db380a0 -r d87d32eab1a9 videditor/TrimForMms/src/VeiTrimForMmsContainer.cpp --- a/videditor/TrimForMms/src/VeiTrimForMmsContainer.cpp Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1018 +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 // AknIconUtils -#include // iEikonEnv -#include // Video Editor resources -#include // StringLoader - -#include -#include - -#include -#include -#include - -#include -#include -#include - - -// User includes -#include "VeiTrimForMmsContainer.h" -#include "VeiVideoDisplay.h" -#include "VideoEditorCommon.h" -//#include "VideoEditorHelp.hlp.hrh" // Topic contexts (literals) -#include "veiframetaker.h" -#include "VeiTrimForMmsView.h" -#include "VeiCutterBar.h" -#include "VeiVideoEditorSettings.h" -#include "VideoEditorUtils.h" -#include "VideoEditorDebugUtils.h" - -void CVeiTrimForMmsContainer::DialogDismissedL( TInt /*aButtonId*/ ) - { - iProgressInfo = NULL; - } - - -CVeiTrimForMmsContainer* CVeiTrimForMmsContainer::NewL( const TRect& aRect, - CVedMovie& aMovie, CVeiTrimForMmsView& aView ) - { - CVeiTrimForMmsContainer* self = CVeiTrimForMmsContainer::NewLC( aRect, - aMovie, - aView ); - CleanupStack::Pop( self ); - - return self; - } - -CVeiTrimForMmsContainer* CVeiTrimForMmsContainer::NewLC( const TRect& aRect, - CVedMovie& aMovie, - CVeiTrimForMmsView& aView) - { - CVeiTrimForMmsContainer* self = - new(ELeave)CVeiTrimForMmsContainer( aMovie, aView ); - - CleanupStack::PushL( self ); - self->ConstructL( aRect ); - - return self; - } - - -CVeiTrimForMmsContainer::CVeiTrimForMmsContainer( CVedMovie& aMovie, CVeiTrimForMmsView& aView ): - iLastKeyLeftOrRight(EFalse), - iMovie(aMovie), - iView( aView ) - - { - } - - -void CVeiTrimForMmsContainer::ConstructL( const TRect& aRect ) - { - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::ConstructL: in"); - - // Make this compound control window-owning. - CreateWindowL(); - - iMovie.RegisterMovieObserverL( this ); - - // Read the texts shown above the thumbnails from resources - iStartText = StringLoader::LoadL( R_VED_THUMBNAIL_START_TEXT, iEikonEnv ); - iEndText = StringLoader::LoadL( R_VED_THUMBNAIL_END_TEXT, iEikonEnv ); - - iSeekPos = TTimeIntervalMicroSeconds( 0 ); - - iVideoDisplayStart = CVeiVideoDisplay::NewL( iVideoDisplayStartRect, this, *this ); - - iVideoDisplayEnd = CVeiVideoDisplay::NewL( iVideoDisplayEndRect, this, *this ); - - iCutterBar = CVeiCutterBar::NewL( this ); - iCutterBar->SetPlayHeadVisible( EFalse ); - iVideoDisplay = CVeiVideoDisplay::NewL( aRect, this, *this ); - - iFrameTaker = CVeiFrameTaker::NewL( *this ); - - /* Timer to keep back light on when user is not giving key events */ - iScreenLight = CVeiDisplayLighter::NewL(); - CVeiVideoEditorSettings::GetMaxMmsSizeL( iMaxMmsSize ); - /* SharedData returns maxmmssize in kbytes. Change it to bytes(1000) and - add some margin to final value.*/ - iMaxMmsSize = STATIC_CAST( TInt, iMaxMmsSize*0.98 ); - iBlack = EFalse; - - // Set this control extent. - SetRect( aRect ); - iBgContext = CAknsBasicBackgroundControlContext::NewL( KAknsIIDQsnBgAreaMain, Rect(), EFalse ); - - ActivateL(); - - iKeyEnable = EFalse; - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::ConstructL: out"); - } - - - -CVeiTrimForMmsContainer::~CVeiTrimForMmsContainer() - { - iMovie.UnregisterMovieObserver( this ); - - delete iEndText; - delete iStartText; - delete iScreenLight; - - delete iCutterBar; - - delete iVideoDisplayStart; - delete iVideoDisplayEnd; - if( iVideoDisplay ) - { - delete iVideoDisplay; - iVideoDisplay = NULL; - } - - if (iFrameTaker) - { - delete iFrameTaker; - iFrameTaker = NULL; - } - - if ( iProgressNote ) - { - delete iProgressNote; - iProgressNote = NULL; - } - iProgressInfo = NULL; - - delete iBgContext; - } - -void CVeiTrimForMmsContainer::SetMaxMmsSize( TInt aMaxSizeInBytes ) - { - iMaxMmsSize = aMaxSizeInBytes; - } - -const TTimeIntervalMicroSeconds& CVeiTrimForMmsContainer::CutInTime() const - { - return iSeekPos; - } - - -const TTimeIntervalMicroSeconds& CVeiTrimForMmsContainer::CutOutTime() const - { - return iSeekEndPos; - } - - -// ---------------------------------------------------------------------------- -// CVeiTrimForMmsContainer::ComponentControl(...) const -// -// Gets the specified component of a compound control. -// ---------------------------------------------------------------------------- -// -CCoeControl* CVeiTrimForMmsContainer::ComponentControl( TInt aIndex ) const - { - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::ComponentControl()"); - - switch( aIndex ) - { - // - // iCutterDisplay - // - case ECutFrame: - { - return iCutterBar; - } - // - // iVideoDisplayStart - // - case EVideoDisplayStart: - { - return iVideoDisplayStart; - } - // - // iVideoDisplayEnd - // - case EVideoDisplayEnd: - { - return iVideoDisplayEnd; - } - // - // iVideoDisplay - // - case EVideoPreview: - { - return iVideoDisplay; - - } - - // - // Default - // - default: - { - return NULL; - } - } - - } - - -// ---------------------------------------------------------------------------- -// CVeiTrimForMmsContainer::CountComponentControls() const -// -// Gets the number of controls contained in a compound control. -// ---------------------------------------------------------------------------- -// -TInt CVeiTrimForMmsContainer::CountComponentControls() const - { - return ENumberOfControls; - } - - -void CVeiTrimForMmsContainer::Draw( const TRect& aRect ) const - { - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::Draw(): In"); - - CWindowGc& gc = SystemGc(); - gc.Clear( aRect ); - - // Black backbround for the preview - if ( iBlack ) - { - iVideoDisplay->MakeVisible( EFalse ); - gc.SetPenStyle( CWindowGc::ENullPen ); - gc.SetBrushColor( KRgbBlack ); - gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); - gc.DrawRect( aRect ); - gc.SetPenStyle( CWindowGc::ESolidPen ); - gc.DrawRoundRect(aRect, TSize(4,4)); - return; - } - else - { - // Draw skin background - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - MAknsControlContext* cc = AknsDrawUtils::ControlContext( this ); - AknsDrawUtils::Background( skin, cc, this, gc, aRect ); - - const CFont* font = AknLayoutUtils::FontFromId( EAknLogicalFontSecondaryFont ); - TBuf<95> startVisualText; - TPoint startTextPoint; - TBuf<95> endVisualText; - TPoint endTextPoint; - - startTextPoint.iY = iStartTextBox.iTl.iY + font->HeightInPixels(); - endTextPoint.iY = iEndTextBox.iTl.iY + font->HeightInPixels(); - - gc.UseFont( font ); - - TBidiText::TDirectionality textDirectionality; - - textDirectionality = AknTextUtils::CurrentScriptDirectionality(); - - TInt maxWidthNonClippingStart = iStartTextBox.Width(); - - AknBidiTextUtils::ConvertToVisualAndClip( *iStartText, startVisualText, *font, maxWidthNonClippingStart, - maxWidthNonClippingStart ); - /** check text alignment */ - if ( textDirectionality == TBidiText::ELeftToRight ) - { - startTextPoint.iX = iVideoDisplayStartRect.iTl.iX; - } - else - { - startTextPoint.iX = iVideoDisplayStartRect.iBr.iX - font->TextWidthInPixels( startVisualText ); - } - - gc.DrawText( startVisualText, startTextPoint ); - - - TInt maxWidthNonClippingEnd = iEndTextBox.Width(); - - AknBidiTextUtils::ConvertToVisualAndClip( *iEndText, endVisualText, *font, maxWidthNonClippingEnd, - maxWidthNonClippingEnd ); - /** check text alignment */ - if ( textDirectionality == TBidiText::ELeftToRight ) - { - endTextPoint.iX = iVideoDisplayEndRect.iTl.iX; - } - else - { - endTextPoint.iX = iVideoDisplayEndRect.iBr.iX - font->TextWidthInPixels( endVisualText ); - } - - gc.DrawText( endVisualText, endTextPoint ); - - gc.DiscardFont(); - - // Draw Start/End displays - iVideoDisplayStart->SetRect( iVideoDisplayStartRect ); - iVideoDisplayEnd->SetRect( iVideoDisplayEndRect ); - - if( iPreviewState == EPlaying ) - { - iVideoDisplay->MakeVisible( ETrue ); - } - else - { - iVideoDisplay->MakeVisible( EFalse ); - } - - } - - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::Draw(): Out"); - } - - -// ---------------------------------------------------------------------------- -// CVeiTrimForMmsContainer::GetHelpContext(...) const -// -// Gets the control's help context. Associates the control with a particular -// Help file and topic in a context sensitive application. -// ---------------------------------------------------------------------------- -// -void CVeiTrimForMmsContainer::GetHelpContext( TCoeHelpContext& /*aContext*/ ) const - { - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::GetHelpContext(): In"); - - // Set UID of the CS Help file (same as application UID). - //aContext.iMajor = KUidVideoEditor; - - // Set the context/topic. - //aContext.iContext = KVED_HLP_TRIM_FOR_MMS_VIEW; - - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::GetHelpContext(): Out"); - } - -// ---------------------------------------------------------------------------- -// CVeiTrimForMmsContainer::SizeChanged() -// -// The function is called whenever SetExtent(), SetSize(), SetRect(), -// SetCornerAndSize(), or SetExtentToWholeScreen() are called on the control. -// ---------------------------------------------------------------------------- -// -void CVeiTrimForMmsContainer::SizeChanged() - { - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::SizeChanged(): In"); - - TRect rect = Rect(); - if ( iBgContext ) - { - iBgContext->SetRect( rect ); - } - - if ( VideoEditorUtils::IsLandscapeScreenOrientation() ) //Landscape - { - // Start Text rect - TInt startTextTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.00962 ); - TInt startTextTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.01389 ); - TInt startTextBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.49512 ); - TInt startTextBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.09375 ); - - iStartTextBox = TRect(startTextTlX, startTextTlY, startTextBrX, - startTextBrY); - // End Text rect - TInt endTextTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.50481 ); - TInt endTextTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.01389 ); - TInt endTextBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.99039 ); - TInt endTextBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.09375 ); - - iEndTextBox = TRect(endTextTlX, endTextTlY, endTextBrX, - endTextBrY); - - // Start Video rect - TInt startVideoTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.00962 ); - TInt startVideoTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.10764 ); - TInt startVideoBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.49512 ); - TInt startVideoBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.68056 ); - - iVideoDisplayStartRect = TRect(startVideoTlX, startVideoTlY, startVideoBrX, - startVideoBrY); - // End Video rect - TInt endVideoTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.50481 ); - TInt endVideoTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.10764 ); - TInt endVideoBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.99039 ); - TInt endVideoBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.68056 ); - - iVideoDisplayEndRect = TRect(endVideoTlX, endVideoTlY, endVideoBrX, - endVideoBrY); - - // Timeline rect - TInt timeLineTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.0114 ); - TInt timeLineTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.80208 ); - - TSize cutBarSize = TSize(STATIC_CAST( TInt, rect.iBr.iX*0.9773 ), - STATIC_CAST( TInt, rect.iBr.iY*0.0973 ) ); - - iTimelineRect = TRect( TPoint(timeLineTlX, timeLineTlY), cutBarSize ); - } - else // Portrait - { - // Start Text rect - TInt startTextTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.01136 ); - TInt startTextTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.01389 ); - TInt startTextBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.49432 ); - TInt startTextBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.10417 ); - - iStartTextBox = TRect(startTextTlX, startTextTlY, startTextBrX, - startTextBrY); - - // End Text rect - TInt endTextTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.50568 ); - TInt endTextTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.01389 ); - TInt endTextBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.98864 ); - TInt endTextBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.10417 ); - - iEndTextBox = TRect(endTextTlX, endTextTlY, endTextBrX, - endTextBrY); - - // Start Video rect - TInt startVideoTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.01136 ); - TInt startVideoTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.11806 ); - TInt startVideoBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.49432 ); - TInt startVideoBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.60069 ); - - iVideoDisplayStartRect = TRect(startVideoTlX, startVideoTlY, startVideoBrX, - startVideoBrY); - - // End Video rect - TInt endVideoTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.50568 ); - TInt endVideoTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.11806 ); - TInt endVideoBrX = STATIC_CAST( TInt, rect.iBr.iX * 0.98864 ); - TInt endVideoBrY = STATIC_CAST( TInt, rect.iBr.iY * 0.60069 ); - - iVideoDisplayEndRect = TRect(endVideoTlX, endVideoTlY, endVideoBrX, - endVideoBrY); - - // Timeline rect - TInt timeLineTlX = STATIC_CAST( TInt, rect.iBr.iX * 0.0114 ); - TInt timeLineTlY = STATIC_CAST( TInt, rect.iBr.iY * 0.767361 ); - - - TSize cutBarSize = TSize(STATIC_CAST( TInt, rect.iBr.iX*0.9773 ), - STATIC_CAST( TInt, rect.iBr.iY*0.0973 ) ); - - iTimelineRect = TRect(TPoint(timeLineTlX, timeLineTlY), cutBarSize); - } - - iCutterBar->SetRect( iTimelineRect ); - - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::SizeChanged(): Out"); - } - - -TKeyResponse CVeiTrimForMmsContainer::OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - if( iKeyEnable ) - { - switch( aType ) - { - // - // Key down event - // - case EEventKeyDown: - { - if( iPreviewState == EPlaying ) - { -// iView.SetTrimStateL( CVeiTrimForMmsView::ESeek ); -// Stop( ETrue ); - return EKeyWasConsumed; - } - else - { - iKeyRepeatCount = 0; - - iMovie.VideoClipSetCutInTime( 0,TTimeIntervalMicroSeconds(0) ); - iMovie.VideoClipSetCutOutTime( 0, iDuration ); - return EKeyWasConsumed; - } - } - // - // The key event - // - case EEventKey: - { - if( iPreviewState == EPlaying ) - { - return EKeyWasConsumed; - } - switch( aKeyEvent.iCode ) - { - // - // Navi-key right - // - case EKeyRightArrow: - { - if( iSeekEndPos != iDuration ) - { - iSeekEvent = ETrue; - iLastKeyLeftOrRight = ETrue; - if(iKeyRepeatCount < 18) - { - iKeyRepeatCount++; - } - - TInt adjustment = TimeIncrement( iKeyRepeatCount ); - TInt64 newPos = iSeekPos.Int64() + adjustment; - - TTimeIntervalMicroSeconds endTime(0); - iMovie.GetDurationEstimateL( iMaxMmsSize, newPos, endTime ); - - if ( endTime.Int64() >= iDuration.Int64() - adjustment ) - { - iKeyRepeatCount-=3; - adjustment = TimeIncrement( iKeyRepeatCount ); - endTime = iDuration; - newPos+=adjustment; - } - - iSeekPos = TTimeIntervalMicroSeconds( newPos ); - - iSeekEndPos = endTime; - iCutterBar->SetInPoint(iSeekPos); - iCutterBar->SetOutPoint(endTime); - } - - return EKeyWasConsumed; - } - // - // Navi-key left - // - case EKeyLeftArrow: - { - if( iSeekPos.Int64() > 0 ) - { - iSeekEvent = ETrue; - iLastKeyLeftOrRight = ETrue; - // Process the command only when repeat count is zero. - iKeyRepeatCount++; - - - TInt adjustment = TimeIncrement( iKeyRepeatCount ); - - TInt64 newPos = iSeekPos.Int64() - adjustment; - if ( newPos < 0 ) - { - newPos = 0; - } - iSeekPos = TTimeIntervalMicroSeconds( newPos ); - - TTimeIntervalMicroSeconds endTime(0); - iMovie.GetDurationEstimateL( iMaxMmsSize, newPos, endTime ); - - iSeekEndPos = endTime; - - iCutterBar->SetInPoint(iSeekPos); - iCutterBar->SetOutPoint(endTime); - } - return EKeyWasConsumed; - } - // - // Default - // - default: - { - return EKeyWasNotConsumed; - } - } - } - // - // Key up event - // - - case EEventKeyUp: - { - if( iPreviewState == EPlaying ) - { - iView.SetTrimStateL( CVeiTrimForMmsView::ESeek ); - - Stop( ETrue ); - return EKeyWasConsumed; - } - else - { - if ( iLastKeyLeftOrRight ) - { - iView.ProcessNeeded( ETrue ); - iMovie.VideoClipSetCutInTime( 0, iSeekPos ); - iMovie.VideoClipSetCutOutTime( 0, iSeekEndPos ); - iView.UpdateNaviPaneL( iMovie.GetSizeEstimateL()/1024,iMovie.Duration() ); - iLastKeyLeftOrRight = EFalse; - if( iSeekEvent ) - { - StartFrameTakerL( iClipIndex ); - iSeekEvent = EFalse; - } - return EKeyWasConsumed; - } - } - break; - } - // - // Default - // - default: - return EKeyWasNotConsumed; - } - } //iKeyEnable - return EKeyWasNotConsumed; - } - - - -TInt CVeiTrimForMmsContainer::TimeIncrement(TInt aKeyCount) const - { - if ( aKeyCount < 3 ) - { - return 100000; - } - else if ( aKeyCount < 6 ) // 4 - { - return 300000; - } - else if ( aKeyCount < 9 ) // 5 - { - return 500000; - } - else if ( aKeyCount < 12 ) // 10 - { - return 1000000; - } - else if ( aKeyCount < 15 ) // 13 - { - return 2000000; - } - else if ( aKeyCount < 18 ) // 15 - { - return 3000000; - } - else - { - return 5000000; - } - } - - -void CVeiTrimForMmsContainer::NotifyVideoDisplayEvent( const TPlayerEvent aEvent, const TInt& aInfo ) - { - switch (aEvent) - { - case MVeiVideoDisplayObserver::EOpenComplete: - { - iVideoDisplay->SetRect( iPreviewRect ); - if ( !VideoEditorUtils::IsLandscapeScreenOrientation() ) //Portrait - { - iVideoDisplay->SetRotationL( EVideoRotationClockwise90 ); - } - iPreviewState = ELoading; - - iVideoDisplay->SetPositionL( CutInTime() ); - iVideoDisplay->PlayL( iMovie.VideoClipInfo( iClipIndex )->FileName(), CutInTime(), CutOutTime() ); - - break; - } - - case MVeiVideoDisplayObserver::ELoadingComplete: - { - - iVideoDisplay->MakeVisible( ETrue ); - iPreviewState = EPlaying; - break; - } - - case MVeiVideoDisplayObserver::EStop: - { - iPreviewState = EIdle; - iView.SetTrimStateL( CVeiTrimForMmsView::ESeek ); - - iVideoDisplay->MakeVisible(EFalse); - - DrawDeferred(); - break; - } - case MVeiVideoDisplayObserver::EPlayComplete: - { - iView.SetTrimStateL( CVeiTrimForMmsView::ESeek ); - Stop( ETrue ); - if (KErrNoMemory == aInfo) - { - iView.ShowGlobalErrorNoteL( KErrNoMemory ); - } - break; - } - default: - { - break; - } - } - } - - -/** - * Called to notify that a new video clip has been successfully - * added to the movie. Note that the indices and the start and end times - * of the video clips after the new clip have also changed as a result. - * Note that the transitions may also have changed. - * - * @param aMovie movie - * @param aIndex index of video clip in movie - */ -void CVeiTrimForMmsContainer::NotifyVideoClipAdded( CVedMovie& aMovie, TInt aIndex ) - { - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::NotifyVideoClipAdded: in"); - - iSeekPos = TTimeIntervalMicroSeconds(0); - - aMovie.GetDurationEstimateL( iMaxMmsSize, iSeekPos, iSeekEndPos ); - LOGFMT3(KVideoEditorLogFile, "CVeiTrimForMmsContainer::NotifyVideoClipAdded: 1, iMaxMmsSize:%d, iSeekPos:%Ld, iSeekEndPos:%Ld", - iMaxMmsSize, iSeekPos.Int64(), iSeekEndPos.Int64()); - - iCutterBar->SetInPoint( iSeekPos ); - iCutterBar->SetOutPoint( iSeekEndPos ); - iCutterBar->SetTotalDuration( aMovie.Duration() ); - iDuration = aMovie.Duration(); - - iClipIndex = aIndex; - - aMovie.VideoClipSetCutInTime( 0, iSeekPos ); - aMovie.VideoClipSetCutOutTime( 0, iSeekEndPos ); - - TInt movieSizeLimit = static_cast(iMaxMmsSize*0.9); - aMovie.SetMovieSizeLimit( movieSizeLimit ); - - LOGFMT(KVideoEditorLogFile, "CVeiTrimForMmsContainer::NotifyVideoClipAdded(): 2, movie size set to:%d", movieSizeLimit); - - StartFrameTakerL( iClipIndex ); - - iSeekEvent = EFalse; - - - iView.UpdateNaviPaneL( iMovie.GetSizeEstimateL()/1024,iMovie.Duration() ); - - iKeyEnable = ETrue; - - LOG(KVideoEditorLogFile, "CVeiTrimForMmsContainer::NotifyVideoClipAdded: out"); - } - - -void CVeiTrimForMmsContainer::NotifyVideoClipAddingFailed( CVedMovie& /*aMovie*/, - TInt /*aError*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipRemoved( CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipIndicesChanged( CVedMovie& /*aMovie*/, - TInt /*aOldIndex*/, - TInt /*aNewIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipTimingsChanged( - CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipColorEffectChanged( - CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipAudioSettingsChanged( - CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipGeneratorSettingsChanged( - CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipDescriptiveNameChanged( - CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyStartTransitionEffectChanged( - CVedMovie& /*aMovie*/ ) - { - } - - -void CVeiTrimForMmsContainer::NotifyMiddleTransitionEffectChanged( - CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyEndTransitionEffectChanged( - CVedMovie& /*aMovie*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyAudioClipAdded( CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyAudioClipAddingFailed( - CVedMovie& /*aMovie*/, - TInt /*aError*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyAudioClipRemoved( CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyAudioClipIndicesChanged( - CVedMovie& /*aMovie*/, - TInt /*aOldIndex*/, - TInt /*aNewIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyAudioClipTimingsChanged( - CVedMovie& /*aMovie*/, - TInt /*aIndex*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyMovieQualityChanged( CVedMovie& /*aMovie*/ ) - { - } - - -void CVeiTrimForMmsContainer::NotifyMovieReseted( CVedMovie& /*aMovie*/ ) - { - } - -void CVeiTrimForMmsContainer::NotifyMovieOutputParametersChanged(CVedMovie& /*aMovie*/) - { - } - -void CVeiTrimForMmsContainer::NotifyAudioClipDynamicLevelMarkInserted(CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/) - { - } - -void CVeiTrimForMmsContainer::NotifyAudioClipDynamicLevelMarkRemoved(CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipDynamicLevelMarkInserted(CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/) - { - } - -void CVeiTrimForMmsContainer::NotifyVideoClipDynamicLevelMarkRemoved(CVedMovie& /*aMovie*/, - TInt /*aClipIndex*/, - TInt /*aMarkIndex*/) - { - } - -void CVeiTrimForMmsContainer::PlayL( const TDesC& aFilename, const TRect& aRect ) - { - iCutterBar->MakeVisible( EFalse ); - iVideoDisplayStart->MakeVisible( EFalse ); - iVideoDisplayEnd->MakeVisible( EFalse ); - iVideoDisplay->MakeVisible( EFalse ); - - iVideoDisplay->ShowBlackScreen(); - - iPreviewRect = aRect; - iBlack = ETrue; - iScreenLight->Start(); - - iPreviewState = EOpeningFile; - iVideoDisplay->OpenFileL( aFilename ); - } - -void CVeiTrimForMmsContainer::Stop( TBool aCloseStream ) - { - iCutterBar->MakeVisible( ETrue ); - iVideoDisplayStart->MakeVisible( ETrue ); - iVideoDisplayEnd->MakeVisible( ETrue ); - iBlack = EFalse; - iScreenLight->Stop(); - iVideoDisplay->Stop( aCloseStream ); - DrawNow(); - } - -void CVeiTrimForMmsContainer::PauseL() - { - iPreviewState = EPause; - iVideoDisplay->PauseL(); - iVideoDisplay->MakeVisible(EFalse); - DrawNow(); - } - -TInt CVeiTrimForMmsContainer::PreviewState() const - { - return iPreviewState; - } - -void CVeiTrimForMmsContainer::NotifyFramesCompleted( CFbsBitmap* aFirstFrame, - CFbsBitmap* aLastFrame, CFbsBitmap* /*aTimelineFrame*/, TInt aError ) - { - if( aError==KErrNone ) - { - iVideoDisplayStart->ShowPictureL( *aFirstFrame ); - iVideoDisplayEnd->ShowPictureL( *aLastFrame ); - } - - if( iProgressNote ) - { - iProgressInfo->SetAndDraw(100); - iProgressNote->ProcessFinishedL(); - } - } - -void CVeiTrimForMmsContainer::StartFrameTakerL( TInt aIndex ) - { - iProgressNote = - new (ELeave) CAknProgressDialog(REINTERPRET_CAST(CEikDialog**, &iProgressNote), ETrue); - iProgressNote->SetCallback(this); - iProgressNote->ExecuteDlgLD( R_VEI_PROGRESS_NOTE ); - - HBufC* stringholder; - stringholder = StringLoader::LoadL( R_VEI_PROGRESS_NOTE_PROCESSING, iEikonEnv ); - CleanupStack::PushL( stringholder ); - iProgressNote->SetTextL( *stringholder ); - CleanupStack::PopAndDestroy( stringholder ); - - iProgressInfo = iProgressNote->GetProgressInfoL(); - iProgressInfo->SetFinalValue(100); - iProgressInfo->SetAndDraw(50); - -// First frame is shown in main display so it is bigger.. Last frame is always -// on transition display and one frame for the video timeline. - TSize firstThumbResolution = iVideoDisplayStart->GetScreenSize(); - TSize lastThumbResolution = iVideoDisplayEnd->GetScreenSize(); - TSize timelineThumbResolution = TSize( 34, 28 ); - - TInt frameCount = iMovie.VideoClipInfo(aIndex)->VideoFrameCount(); - - TInt firstThumbNailIndex = iMovie.VideoClipInfo(aIndex)->GetVideoFrameIndexL( CutInTime() ); - TInt lastThumbNailIndex = iMovie.VideoClipInfo(aIndex)->GetVideoFrameIndexL( CutOutTime() ); - if ( lastThumbNailIndex >= frameCount ) - { - lastThumbNailIndex = frameCount-1; - } - - - iFrameTaker->GetFramesL( *iMovie.VideoClipInfo(aIndex), - firstThumbNailIndex, &firstThumbResolution, - lastThumbNailIndex, &lastThumbResolution, - firstThumbNailIndex, &timelineThumbResolution, - EPriorityLow ); - } - -TTypeUid::Ptr CVeiTrimForMmsContainer::MopSupplyObject( TTypeUid aId ) - { - if ( aId.iUid == MAknsControlContext::ETypeId && iBgContext ) - { - return MAknsControlContext::SupplyMopObject( aId, iBgContext ); - } - return CCoeControl::MopSupplyObject( aId ); - } -// End of File -