videditor/VideoEditorUiComponents/src/VeiVideoDisplay.cpp
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- a/videditor/VideoEditorUiComponents/src/VeiVideoDisplay.cpp	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1025 +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:  
-*
-*/
-
-
-// System includes
-#include <gulicon.h>
-#include <coemain.h>
-#include <eikenv.h>
-#include <akniconutils.h>
-#include <aknsdrawutils.h> 
-#include <aknsdatacontext.h> 
-#include <akniconutils.h>
-#include <aknbitmapanimation.h>
-#include <barsread.h>
-#include <VideoEditorUiComponents.mbg>
-#include <VideoEditorUiComponents.rsg>
-#include <audiopreference.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <ConeResLoader.h>
-#include <data_caging_path_literals.hrh>
-#include <mmf/common/mmfcontrollerframeworkbase.h> 
-#include <mmf/common/mmferrors.h>
-#ifdef VERBOSE
-#include <eikappui.h>
-#endif
-
-// User includes
-#include "VeiVideoEditorSettings.h"
-#include "VeiVideoDisplay.h"
-#include "VideoEditorCommon.h"
-#include "VideoEditorUtils.h"
-#include "VideoEditorDebugUtils.h"
-
-// CONSTANTS
-_LIT(KResourceFile, "VideoEditorUiComponents.rsc");
-
-EXPORT_C CVeiVideoDisplay* CVeiVideoDisplay::NewL( const TRect& aRect, const CCoeControl* aParent,
-										  MVeiVideoDisplayObserver& aObserver )
-    {
-    CVeiVideoDisplay* self = CVeiVideoDisplay::NewLC( aRect, aParent, aObserver );
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-EXPORT_C CVeiVideoDisplay* CVeiVideoDisplay::NewLC( const TRect& aRect, const CCoeControl* aParent,
-										   MVeiVideoDisplayObserver& aObserver )
-    {
-    CVeiVideoDisplay* self = new (ELeave) CVeiVideoDisplay (aObserver);
-    CleanupStack::PushL( self );
-    self->ConstructL( aRect, aParent );
-    return self;
-    }
-
-CVeiVideoDisplay::CVeiVideoDisplay( MVeiVideoDisplayObserver& aObserver ) : iObserver (aObserver)
-	{
-	}	
-
-void CVeiVideoDisplay::ConstructL( const TRect& aRect, 
-                                   const CCoeControl* aParent)
-    {
-    LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ConstructL: in");
-
-	TFileName mbmPath( VideoEditorUtils::IconFileNameAndPath(KVideoEditorUiComponentsIconFileId) );
-    
-    
-// Backgroud squares icon loading is disabled there is no suitable graphic in 
-// S60 build at the moment. A new graphic should be requested and added here.
-    
-//	AknIconUtils::CreateIconL( iBgSquaresBitmap, iBgSquaresBitmapMask,
-//			mbmPath, EMbmVideoeditoruicomponentsQgn_graf_ve_novideo, 
-//			EMbmVideoeditoruicomponentsQgn_graf_ve_novideo_mask );    
-    
-    
-	TRAP_IGNORE( CVeiVideoEditorSettings::GetMediaPlayerVolumeLevelL( iInternalVolume ) );
-
-	iMuted = (iInternalVolume == 0);
-
-	iBorderWidth = 2;
-	iDuration = 0;
-	iMaxVolume = 0;
-	iBlank = ETrue;
-	iAnimationOn = EFalse;
-	iBufferingCompleted = ETrue;
-	SetContainerWindowL( *aParent );
-
-	SetRect( aRect );
-    ActivateL();
-
-	ControlEnv()->AddForegroundObserverL( *this );
-
-    LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ConstructL: out");
-    }
-
-void CVeiVideoDisplay::SizeChanged()
-    {
-	LOGFMT2(KVideoEditorLogFile, "CVeiVideoDisplay::SizeChanged: in: Size(): (%d,%d)", Size().iWidth, Size().iHeight);
-
-	if ( iVideoPlayerUtility )
-		{
-		TRect screenRect = CalculateVideoPlayerArea();
-		LOGFMT4(KVideoEditorLogFile, "CVeiVideoDisplay::SizeChanged 1, ScreenRect Tl:(%d,%d) Br:(%d,%d)", screenRect.iTl.iX,screenRect.iTl.iY,screenRect.iBr.iX,screenRect.iBr.iY);
-
-		/* Get the required parameters for the video player. */
-		CCoeEnv* coeEnv = CCoeEnv::Static();
-		RWsSession& session = coeEnv->WsSession();
-		CWsScreenDevice* screenDevice = coeEnv->ScreenDevice();
-		RDrawableWindow* drawableWindow = DrawableWindow();
-
-		TRAPD(err, iVideoPlayerUtility->SetDisplayWindowL( session, *screenDevice, *drawableWindow,
-			screenRect, screenRect ) );
-		if( KErrNone != err )
-			{
-			LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::SizeChanged: iVideoPlayerUtility->SetDisplayWindowL failed: %d", err);
-			iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EError );
-			}
-		}
-	AknIconUtils::SetSize( iBgSquaresBitmap, Size(), EAspectRatioNotPreserved );
-
-
-	if( iAnimationOn )
-		{
-		iAnimation->CancelAnimation();
-		TRect rect( Rect() );
-		rect.Move( iBorderWidth, iBorderWidth );
-		rect.Resize( -iBorderWidth*2, -iBorderWidth );
-
-		iAnimation->SetRect( rect );
-		TRAPD(err, iAnimation->StartAnimationL() );
-		if( KErrNone != err )
-			{
-			LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::SizeChanged: StartAnimationL failed: %d", err);
-			iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EError );
-			}
-		}
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::SizeChanged: out");
-	}
-
-TRect CVeiVideoDisplay::CalculateVideoPlayerArea()
-	{
-	/* Calculate regions. */ 
-	TRect screenRect;
-	TRect rect( Rect() );
-	/* In full screen mode return whole screen rect*/
-	if ( rect.iTl == TPoint( 0,0) )
-		{
-		return rect;
-		}
-	LOGFMT4(KVideoEditorLogFile, "CVeiVideoDisplay::CalculateVideoPlayerArea() 1: Rect() Tl:(%d,%d) Br:(%d,%d)", rect.iTl.iX,rect.iTl.iY,rect.iBr.iX,rect.iBr.iY);
-	
-	TPoint position = PositionRelativeToScreen();
-	LOGFMT2(KVideoEditorLogFile, "CVeiVideoDisplay::CalculateVideoPlayerArea() 2: PositionRelativeToScreen(%d,%d)", position.iX, position.iY);
-
-	screenRect = rect;  
-	screenRect.Move( TPoint( iBorderWidth, (position.iY-Rect().iTl.iY) + iBorderWidth ) ); 
-	screenRect.Resize( -(iBorderWidth*2), -(iBorderWidth*2 ));
-	return screenRect;
-	}
-
-TKeyResponse CVeiVideoDisplay::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
-	{
-	LOGFMT2(KVideoEditorLogFile, "CVeiVideoDisplay::OfferKeyEventL: aKeyEvent.iCode:%d, aType:%d", aKeyEvent.iCode, aType);
-
-	if ( iMuted )
-		{
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::OfferKeyEventL: volume is muted.");
-		return EKeyWasNotConsumed;
-		}
-	
-	if ( aType == EEventKey )
-		{
-		switch (aKeyEvent.iCode)
-			{
-			case EKeyDownArrow:
-			case EStdKeyDecVolume:
-				{
-				AdjustVolumeL( -1 );
-				return EKeyWasConsumed;
-				}
-			case EKeyUpArrow:
-			case EStdKeyIncVolume:
-				{
-				AdjustVolumeL( 1 );
-				return EKeyWasConsumed;
-				}
-			default:
-				{
-				return EKeyWasConsumed;
-				}
-			}
-		}
-	return EKeyWasConsumed;
-	}
-
-EXPORT_C CVeiVideoDisplay::~CVeiVideoDisplay()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::~CVeiVideoDisplay(): In");
-	// Remove foreground event observer
-	ControlEnv()->RemoveForegroundObserver( *this );
-	if ( iDisplayBitmap )
-		{
-		delete iDisplayBitmap;
-		iDisplayBitmap = NULL;
-		}
-	if ( iDisplayMask )
-		{
-		delete iDisplayMask;
-		iDisplayMask = NULL;
-		}
-	delete iBgSquaresBitmap;
-	delete iBgSquaresBitmapMask;
-
-	if ( iVideoPlayerUtility != NULL )
-		{
-		iVideoPlayerUtility->Close();
-		delete iVideoPlayerUtility;
-		iVideoPlayerUtility = NULL;
-		}
-	delete iAnimation;
-	delete iCallBack;
-	delete iFilename;
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::~CVeiVideoDisplay(): Out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::ShowPictureL( const CFbsBitmap& aBitmap, const CFbsBitmap& aMask )
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowPictureL: In");
-
-	StoreDisplayBitmapL( aBitmap, &aMask );
-
-	DrawDeferred();
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowPictureL: Out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::ShowPictureL( const CFbsBitmap& aBitmap )
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowPicture2: In");
-
-	StoreDisplayBitmapL( aBitmap );
-
-	// set screen size to pause mode
-	if ( iVideoPlayerUtility )
-		{
-		TRect screenRect = TRect( TPoint(0,0), TPoint(0,0) );			
-		LOGFMT4(KVideoEditorLogFile, "CVeiVideoDisplay::SizeChanged 1, ScreenRect Tl:(%d,%d) Br:(%d,%d)", screenRect.iTl.iX,screenRect.iTl.iY,screenRect.iBr.iX,screenRect.iBr.iY);
-
-		/* Get the required parameters for the video player. */
-		CCoeEnv* coeEnv = CCoeEnv::Static();
-		RWsSession& session = coeEnv->WsSession();
-		CWsScreenDevice* screenDevice = coeEnv->ScreenDevice();
-		RDrawableWindow* drawableWindow = DrawableWindow();
-
-		iVideoPlayerUtility->SetDisplayWindowL( session, *screenDevice, *drawableWindow,
-			screenRect, screenRect );
-		}
-
-	DrawDeferred();
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowPicture2: Out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::SetPictureL( const CFbsBitmap& aBitmap )
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::SetPictureL: In");
-
-	StoreDisplayBitmapL( aBitmap );
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::SetPictureL: Out");	
-	}
-
-void CVeiVideoDisplay::StoreDisplayBitmapL( const CFbsBitmap& aBitmap, const CFbsBitmap* aMask )
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::StoreDisplayBitmapL: In");
-
-	iBlank = EFalse;
-	iBlack = EFalse;
-
-	// Delete old bitmaps
-	if ( iDisplayBitmap )
-		{
-		delete iDisplayBitmap;
-		iDisplayBitmap = NULL;
-		}
-	if ( iDisplayMask )
-		{
-		delete iDisplayMask;
-		iDisplayMask = NULL;
-		}
-
-	// Create new bitmaps
-	iDisplayBitmap = new (ELeave) CFbsBitmap;
-	iDisplayBitmap->Duplicate( aBitmap.Handle() );
-	if (aMask)
-		{
-		iDisplayMask = new (ELeave) CFbsBitmap;
-		iDisplayMask->Duplicate( aMask->Handle() );
-		}
-
-#ifdef VERBOSE
-	// Write the display bitmap to disk
-	_LIT(KFileName, "C:\\data\\images\\videoeditor\\iDisplayBitmap.mbm");
-	TFileName saveToFile( KFileName );
-	CEikonEnv* env = CEikonEnv::Static();
-	env->EikAppUi()->Application()->GenerateFileName( env->FsSession(), saveToFile );
-	User::LeaveIfError( iDisplayBitmap->Save( saveToFile ) );
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::StoreDisplayBitmapL: saved %S", &saveToFile);
-#endif
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::StoreDisplayBitmapL: Out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::ShowBlackScreen()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowBlackScreen: In");	
-	iBlack = ETrue;
-	DrawDeferred();
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowBlackScreen: Out");	
-	}
-EXPORT_C void CVeiVideoDisplay::SetBlackScreen( TBool aBlack )
-    {
-    LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::SetBlackScreen: In and out, aBlack:%d", aBlack);	
-    iBlack = aBlack;
-    }
-EXPORT_C void CVeiVideoDisplay::ShowBlankScreen()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowBlankScreen: In and out");	
-	iBlank = ETrue;
-	DrawDeferred();
-	}
-
-EXPORT_C TTimeIntervalMicroSeconds CVeiVideoDisplay::PositionL() const
-	{
-	if ( !iVideoPlayerUtility )
-		return TTimeIntervalMicroSeconds(0);
-	else
-		return iVideoPlayerUtility->PositionL();
-	}
-
-EXPORT_C TVideoRotation CVeiVideoDisplay::RotationL() const
-    {
-    if ( iVideoPlayerUtility )
-    	{
-        return iVideoPlayerUtility->RotationL();
-    	}
-    else
-    	{
-        return EVideoRotationNone;
-    	}
-    }
-
-EXPORT_C void CVeiVideoDisplay::SetPositionL( const TTimeIntervalMicroSeconds& aPosition )
-	{
-	LOGFMT(KVideoEditorLogFile, "VideoDisplay SetPositionL: %Ld", aPosition.Int64());
-	iStartPoint = aPosition;
-	if ( iVideoPlayerUtility && iBufferingCompleted )
-		{	
-		iVideoPlayerUtility->SetPositionL( iStartPoint );
-		}
-	}
-
-EXPORT_C void CVeiVideoDisplay::SetRotationL(TVideoRotation aRotation)
-    {
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::SetRotationL: in");
-    if ( iVideoPlayerUtility )
-		{
-		iVideoPlayerUtility->SetRotationL( aRotation );
-		}
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::SetRotationL: out");
-    }
-
-
-EXPORT_C void CVeiVideoDisplay::Stop( TBool aCloseStream )
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Stop: in");	
-	if ( iVideoPlayerUtility )
-		{
-		// this is poor solution, responsibility of taking care of iStartPoint be elsewhere
-		TRAP_IGNORE(iStartPoint = PositionL());
-		iVideoPlayerUtility->Stop();
-	
-		if ( aCloseStream )
-			{
-			LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Stop 1, Close CVideoPlayerUtility.");
-			iVideoPlayerUtility->Close(); 
-			delete iVideoPlayerUtility;
-			iVideoPlayerUtility = NULL;
-			}
-		}
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Stop 2");
-	iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EStop );
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Stop: out");
-	}
-
-EXPORT_C TInt CVeiVideoDisplay::GetBorderWidth() const
-	{
-	return iBorderWidth;
-	}
-
-EXPORT_C TSize CVeiVideoDisplay::GetScreenSize() const
-	{
-	TRect rect( Rect() );
-	rect.Shrink( iBorderWidth, iBorderWidth-1 );
-	return rect.Size();
-	}
-
-EXPORT_C void CVeiVideoDisplay::Play()
-	{
-	/*LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Play :in");
-	if (iVideoPlayerUtility &&  iBufferingCompleted )
-		{	
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Play :2");
-		//SizeChanged();
-		iVideoPlayerUtility->Play();
-		}
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Play: out");
-	*/
-	PlayL(*iFilename);
-	}
-
-EXPORT_C void CVeiVideoDisplay::PlayMarkedL( const TTimeIntervalMicroSeconds& aStartPoint, const TTimeIntervalMicroSeconds& aEndPoint)
-	{
-	/*
-	LOGFMT2(KVideoEditorLogFile, "CVeiVideoDisplay::PlayMarked:In, aStartPoint:%Ld, aEndPoint:%Ld", aStartPoint.Int64(), aEndPoint.Int64());
-	iVideoPlayerUtility->SetPositionL(aStartPoint);
-	//SizeChanged();
-	iVideoPlayerUtility->Play(aStartPoint, aEndPoint);
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PlayMarked :Out");
-	*/
-	PlayL(*iFilename, aStartPoint, aEndPoint);
-	}
-
-EXPORT_C void CVeiVideoDisplay::PlayL( 	const TDesC& aFilename,
-								const TTimeIntervalMicroSeconds& aStartPoint, 
-								const TTimeIntervalMicroSeconds& aEndPoint )
-	{
-	LOGFMT3(KVideoEditorLogFile, "CVeiVideoDisplay::PlayL(): In, aFilename:%S, aStartPoint:%Ld, aEndPoint:%Ld", &aFilename, aStartPoint.Int64(), aEndPoint.Int64());
-		
-	if ( iVideoPlayerUtility && iBufferingCompleted)
-		{
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PlayL 1");
-		if ( aEndPoint.Int64() != 0 )
-			{
-			LOGFMT2(KVideoEditorLogFile, "CVeiVideoDisplay::Play 2, iStartPoint:%Ld, aStartPoint:%Ld", iStartPoint.Int64(), aStartPoint.Int64());	
-			iStartPoint = aStartPoint;
-			//iVideoPlayerUtility->SetPositionL(iStartPoint);
-			//SizeChanged();
-			iVideoPlayerUtility->Stop();
-			iVideoPlayerUtility->Play( aStartPoint, aEndPoint );
-			}
-		else
-			{
-			LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PlayL 3");	
-			//SizeChanged();
-			//iVideoPlayerUtility->Play(iStartPoint, iVideoPlayerUtility->DurationL());
-			iVideoPlayerUtility->Play();
-			}
-		}
-	else if (!iVideoPlayerUtility && iBufferingCompleted) /* should this be: if (! iVideoPlayerUtility)*/
-		{		
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PlayL 4");
-		if ( aEndPoint.Int64() != 0 )
-			{
-			iStartPoint = aStartPoint;
-			iEndPoint = aEndPoint;	
-			}	
-		OpenFileL( aFilename );
-		}
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PlayL(): out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::PauseL()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PauseL(): in");
-	if ( iVideoPlayerUtility && iBufferingCompleted )
-		{
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PauseL 1, calling pause");
-		iVideoPlayerUtility->PauseL();
-		
-		/*						
-		//@: for some reason this does not work 
-		TDisplayMode dmode = EColor64K;		
-		iVideoPlayerUtility->GetFrameL(dmode, ContentAccess::EPlay);
-		*/
-		
-		/*
-		//@: do not work either:
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PauseL(): 2, refreshing");
-		TInt err = KErrNone;
-		TRAP(err, iVideoPlayerUtility->RefreshFrameL());
-		LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::PauseL(): 3, err:%d", err);
-		*/
-		}
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::PauseL(): out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::OpenFileL( const TDesC& aFilename )
-    {
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::OpenFileL: In, aFilename:%S", &aFilename);		
-
-	/* Calculate regions. */ 
-    TRect screenRect = CalculateVideoPlayerArea();
-
-	/* Get the required parameters for the video player. */
-	CCoeEnv* coeEnv = CCoeEnv::Static();
-	RWsSession& session = coeEnv->WsSession();
-	CWsScreenDevice* screenDevice = coeEnv->ScreenDevice();
-	RDrawableWindow* drawableWindow = DrawableWindow();
-
-	if ( iVideoPlayerUtility != NULL )
-		{
-		delete iVideoPlayerUtility;
-		iVideoPlayerUtility = NULL;		
-		}
-		
-	if (!iFilename)
-		{	
-		iNewFile = ETrue;
-		iDuration = TTimeIntervalMicroSeconds(0);
-		iFilename = aFilename.AllocL();		
-		}	
-	else if ((*iFilename).CompareF(aFilename))
-		{
-		iNewFile = ETrue;
-		iDuration = TTimeIntervalMicroSeconds(0);
-		HBufC* temp = aFilename.AllocL();
-		delete iFilename;
-		iFilename = temp;
-		}
-
-	/* Initialize the video player. */
-	iVideoPlayerUtility = CVideoPlayerUtility::NewL( *this, 
-	static_cast<enum TMdaPriority>(KAudioPriorityRealOnePlayer),
-	static_cast<enum TMdaPriorityPreference>(KAudioPrefRealOneLocalPlayback),
-	session, *screenDevice, *drawableWindow, screenRect, screenRect );
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::OpenFileL 2");
-	iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::ELoadingStarted );
-	iVideoPlayerUtility->RegisterForVideoLoadingNotification( *this );
-	/* Open the file. */	
-	iVideoPlayerUtility->OpenFileL( *iFilename );
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::OpenFileL: Out");
-    }
-// ---------------------------------------------------------
-// CVeiPreviewContainer::MvpuoFrameReady( CFbsBitmap& aFrame, TInt aError )
-// Notification to the client that the frame requested by a call to GetFrameL is ready.
-// ---------------------------------------------------------
-void CVeiVideoDisplay::MvpuoFrameReady( CFbsBitmap& /*aFrame*/, TInt DEBUGLOG_ARG(aError) )
-	{	
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoFrameReady: In and Out, aError:%d", aError);
-	/*
-	@: for some reason this does not work 
-	if (KErrNone == aError)
-		{
-		SetPictureL(aFrame);		
-		}
-	DrawDeferred();
-	*/			
-	}
-
-// ---------------------------------------------------------
-// CVeiVideoDisplay::MvpuoOpenComplete( TInt aError )
-// Notification to the client that the opening of the video clip has completed.
-// ---------------------------------------------------------
-void CVeiVideoDisplay::MvpuoOpenComplete( TInt aError )
-	{
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoOpenComplete: In, aError:%d", aError);
-	if( aError != KErrNone )
-		{
-		iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EError );
-		return;
-		}
-	
-	iVideoPlayerUtility->Prepare();
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoOpenComplete: Out");
-	}
-
-// ---------------------------------------------------------
-// CVeiVideoDisplay::MvpuoPlayComplete( TInt aError )
-// Notification that video playback has completed.
-// ---------------------------------------------------------
-void CVeiVideoDisplay::MvpuoPlayComplete( TInt aError )
-	{
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoPlayComplete:In, aError:%d", aError);
-	iStartPoint = TTimeIntervalMicroSeconds(0);
-	/* iBufferingCompleted is set to EFalse in MvloLoadingStarted and set back ETrue in 
-	   MvloLoadingCompleted.
-	   If error occurs in the middle of the loading process the latter one is not called and 
-	   iBufferingCompleted is left to EFalse, that is why is it set to ETrue here also for safety's sake
-	*/   
-	iBufferingCompleted = ETrue;
-	iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EPlayComplete, aError );			
-	
-	// Stop() better to be called from iObserver 
-	/*if ( KErrSessionClosed == aError ) // -45 (10/2006)
-		{		
-		Stop( ETrue );
-		}	
-		*/
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoPlayComplete: Out");
-	}
-
-// ---------------------------------------------------------
-// CVeiPreviewContainer::MvpuoEvent( const TMMFEvent& /*aEvent*/ )
-// 
-// ---------------------------------------------------------
-void CVeiVideoDisplay::MvpuoEvent( const TMMFEvent& aEvent )
-	{	
-	LOGFMT2(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoEvent In, aEvent.iEventType:%d, aEvent.iErrorCode:%d",
-		aEvent.iEventType.iUid, aEvent.iErrorCode);			
-	
-	if (KMMFEventCategoryVideoPlayerGeneralError == aEvent.iEventType  &&
-		KErrMMAudioDevice == aEvent.iErrorCode)
-		{
-		iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EError, aEvent.iErrorCode );	
-		}
-	
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoEvent, Out");	
-	}
-
-// ---------------------------------------------------------
-// CVeiVideoDisplay::MvpuoPrepareComplete( TInt aError )
-// Notification to the client that the opening of the video clip has been prepared.
-// ---------------------------------------------------------
-void CVeiVideoDisplay::MvpuoPrepareComplete( TInt aError )
-	{
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoPrepareComplete:In, aError:%d",aError);
-		
-	//LocateEntryL();
-	if( KErrNone != aError )
-		{		
-		iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EError, aError );
-		return;
-		}
-
-	SetPlaybackVolumeL();
- 
-	SetPositionL(iStartPoint);
-	iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EOpenComplete, iStartPoint.Int64() );
-/** If volume is 0(muted) give event so muted icon is drawn to navipane */
-	if ( iInternalVolume == 0 )
-		{
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoPrepareComplete 1");
-		iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EVolumeLevelChanged);
-		}
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvpuoPrepareComplete: Out");	
-	}
-	
-
-void CVeiVideoDisplay::LocateEntryL()
-	{
-	TInt metaDataCount = iVideoPlayerUtility->NumberOfMetaDataEntriesL();
-	CMMFMetaDataEntry* entry = NULL;
-	// Loop through metadata
-	for ( TInt i = 0; i < metaDataCount; i++ )
-		{
-		entry =	iVideoPlayerUtility->MetaDataEntryL( i );		
-		HBufC* name = entry->Name().AllocLC();
-		HBufC* value = entry->Value().AllocLC();
-		LOGFMT3(KVideoEditorLogFile, "CVeiVideoDisplay::LocateEntryL, i:%d, name,value:%S,%S", i, name, value);
-		CleanupStack::PopAndDestroy( value );
-		CleanupStack::PopAndDestroy( name );
-		}		
-	}
-
-void CVeiVideoDisplay::MvloLoadingStarted()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvloLoadingStarted, In");
-	iBufferingCompleted = EFalse;
-	iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EBufferingStarted );
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvloLoadingStarted, Out");
-	}
-
-void CVeiVideoDisplay::MvloLoadingComplete()
-	{
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::MvloLoadingComplete, In, iStartPoint:%Ld", iStartPoint.Int64());
-	iBufferingCompleted = ETrue;			
-	iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::ELoadingComplete, iStartPoint.Int64() );
-	// set screen size to play mode
-	SizeChanged();	
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::MvloLoadingComplete, Out");
-	}
-
-void CVeiVideoDisplay::Draw( const TRect& aRect ) const
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Draw in");
-    CWindowGc& gc = SystemGc();
-
-	TRect rect( Rect() );
-
-	rect.Move(iBorderWidth,iBorderWidth);
-	rect.Resize(-iBorderWidth*2,-iBorderWidth*2);
-	TSize clipRect( rect.Size() );
-
-    if ( Window().DisplayMode() == EColor16MA )
-        {
-        gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
-        gc.SetBrushColor(TRgb::Color16MA( 0 ));
-        gc.Clear(aRect);
-        }
-	
-   	if ( iBlack )
-   		{        
-/*   		
-   		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Draw 1");
-        gc.SetPenStyle( CWindowGc::ENullPen );
-		gc.SetBrushColor( KRgbBlack );
-		gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-		gc.DrawRect( rect );
-
-        gc.SetPenStyle( CWindowGc::ESolidPen );
-        gc.SetPenSize( TSize(iBorderWidth,iBorderWidth) );
-	
-	    gc.DrawRoundRect(aRect, TSize(4,4));
-*/ 
-		return;
-        }
-	
-	if ( iBlank )
-		{
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Draw 2");
-		gc.BitBltMasked( rect.iTl, iBgSquaresBitmap, clipRect, iBgSquaresBitmapMask, EFalse);
-		}
-	else
-		{		
-		LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Draw 3");
-
-		if ( iDisplayBitmap->SizeInPixels() == GetScreenSize() )
-			{						
-
-			gc.BitBlt( rect.iTl, iDisplayBitmap, clipRect);
-			}
-		else
-			{						
-
-			TSize clipRectSize = iDisplayBitmap->SizeInPixels();                 
-            TRect destRect;
-            
-            // check which one has bigger aspect ratio, video diplay or thumbnail.
-            TReal displayAR = rect.Width() / TReal(rect.Height());
-            TReal thumbnailAR = clipRectSize.iWidth / TReal(clipRectSize.iHeight);
-            
-            if (thumbnailAR > displayAR)
-                {
-                //Create proper destination rect                                    
-                TInt newHeight = (clipRectSize.iHeight * rect.Width() ) / clipRectSize.iWidth;
-                TInt newTLiY = rect.iTl.iY + (rect.Height() - newHeight) / 2;
-                destRect = TRect(TPoint(rect.iTl.iX,newTLiY), TSize(rect.Width(), newHeight));
-                }
-            else
-                {
-                // write here destrect calculation when thumbnailAR < displayAR
-                TInt newWidth = rect.Height()*thumbnailAR;
-                TInt newTLiX = rect.iTl.iX + ((rect.Width()-newWidth)/2);
-                destRect = TRect (TPoint(newTLiX, rect.iTl.iY), TSize(newWidth, rect.Height()));
-                }
-		   gc.DrawBitmap( destRect, iDisplayBitmap );
-			}
-		}
-
-/*
-	gc.SetPenStyle( CWindowGc::ESolidPen );
-	gc.SetPenSize( TSize(iBorderWidth,iBorderWidth) );
-	
-	rect = Rect();
-	rect.Resize(-(iBorderWidth-1),-(iBorderWidth-1));
-	gc.DrawRoundRect( rect, TSize(4,4));
-*/	
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::Draw out");
-	}
-
-
-EXPORT_C TTimeIntervalMicroSeconds CVeiVideoDisplay::TotalLengthL()
-	{
-	if ( !iVideoPlayerUtility )
-		{
-		return iDuration;	
-		//return TTimeIntervalMicroSeconds(0);
-		}
-	else
-		{
-		TRAPD( err, iDuration =iVideoPlayerUtility->DurationL() );
-		if ( err == KErrNone )
-			{
-			return iDuration;
-			}
-		else
-			{
-			return TTimeIntervalMicroSeconds(0);
-			}
-		}
-	}
-
-EXPORT_C void CVeiVideoDisplay::AdjustVolumeL( TInt aIncrement )
-	{
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::AdjustVolumeL( %d ): in", aIncrement);
-
-	iInternalVolume += aIncrement;
-
-	if ( iInternalVolume < 0 )
-		{
-		iInternalVolume = 0;
-		}
-	if ( iInternalVolume > KMaxVolumeLevel )
-		{
-		iInternalVolume = KMaxVolumeLevel;
-		}
-
-	SetPlaybackVolumeL();
-	iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EVolumeLevelChanged );
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::SetVolumeL(): out");
-	}
-
-void CVeiVideoDisplay::SetPlaybackVolumeL()
-	{
-	LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::SetPlaybackVolumeL(): in: iInternalVolume: %d", iInternalVolume);
-
-	if ( iVideoPlayerUtility )
-		{
-		// Convert the internal volume to CVideoPlayerUtility's scale.
-		iMaxVolume = iVideoPlayerUtility->MaxVolume();
-
-		TInt vol = iMaxVolume * iInternalVolume / KMaxVolumeLevel;
-		iVideoPlayerUtility->SetVolumeL( vol );
-		}
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::SetPlaybackVolumeL(): out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::ShowAnimationL( TInt aResourceId, TInt aFrameIntervalInMilliSeconds )
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowAnimationL: in");
-
-	iAnimationResourceId = aResourceId;
-
-	if ( iAnimation )
-		{
-		delete iAnimation;
-		iAnimation = 0;
-		}
-	/* In slowmotion video thumbnail is shown */
-	if ( aResourceId != R_VEI_SLOW_MOTION_ANIMATION )
-		{
-		iBlack = ETrue;
-		DrawNow();
-		iBlack = EFalse;
-		}
-	else
-		{
-		DrawNow();
-		}
-
-	// Locate and open the resource file
-    TFileName fileName;
-    TParse p;    
-
-    Dll::FileName(fileName);
-    p.Set(KResourceFile, &KDC_RESOURCE_FILES_DIR, &fileName);
-    fileName = p.FullName();
-
-    LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::ShowAnimationL: Loading resource file: %S", &fileName);
-    RConeResourceLoader coneResLoader (*iCoeEnv);
-	coneResLoader.OpenL( fileName ); // RConeResourceLoader selects the correct language file
-	CleanupClosePushL( coneResLoader );
-
-	// Create animation from resource
-	iAnimation = CAknBitmapAnimation::NewL();
-
-	TResourceReader reader;
-	iCoeEnv->CreateResourceReaderLC( reader, aResourceId );
-	iAnimation->ConstructFromResourceL( reader );
-	TRect rect( Rect() );
-	rect.Move( iBorderWidth, iBorderWidth );
-	rect.Resize( -iBorderWidth*2, -iBorderWidth );
-	iAnimation->SetRect( rect );
-	iAnimation->SetContainerWindowL( *this );
-	iAnimationOn = ETrue;
-	iAnimation->StartAnimationL();
-	CleanupStack::PopAndDestroy(); //reader
-	CBitmapAnimClientData* animClientData = iAnimation->BitmapAnimData();
-	iAnimationFrameIntervalInMilliSeconds = animClientData->FrameIntervalInMilliSeconds();
-	
-	CleanupStack::PopAndDestroy(); // coneResLoader
-
-	if ( aFrameIntervalInMilliSeconds > 0 )
-		{
-		SetFrameIntervalL( aFrameIntervalInMilliSeconds );
-		}
-	DrawDeferred();
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::ShowAnimationL: out");
-	}
-
-EXPORT_C void CVeiVideoDisplay::StopAnimation()
-	{
-	if ( iAnimationOn )
-		{
-		iAnimation->CancelAnimation();
-		}
-	iAnimationOn = EFalse;
-	DrawDeferred();
-	}
-
-EXPORT_C void CVeiVideoDisplay::SetFrameIntervalL(TInt aFrameIntervalInMilliSeconds)
-	{
-	iAnimationFrameIntervalInMilliSeconds+=aFrameIntervalInMilliSeconds;
-	iAnimation->SetFrameIntervalL( iAnimationFrameIntervalInMilliSeconds );
-	}
-
-void CVeiVideoDisplay::HandleResourceChange(TInt aType)
-	{
-	if( (aType == KEikMessageFadeAllWindows) && iAnimationOn )
-		{
-		iAnimation->CancelAnimation();
-		}
-	else if( (aType == KEikMessageUnfadeWindows) && iAnimationOn )
-		{
-		TRAPD(err, iAnimation->StartAnimationL() );
-		if( KErrNone != err )
-			{
-			LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::HandleResourceChange: StartAnimationL failed: %d", err);
-			iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EError );
-			}
-		}
-	}
-
-EXPORT_C TInt CVeiVideoDisplay::Volume() const
-	{
-	return iInternalVolume;
-	}
-	
-EXPORT_C void CVeiVideoDisplay::SetMuteL( TBool aMuted )
-	{
-	iMuted = aMuted;	
-	}
-
-//=======================================================================================================
-void CVeiVideoDisplay::HandleLosingForeground()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::HandleLosingForeground(): In");
-
-	if( iAnimationOn )
-		{
-		LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::HandleLosingForeground(): stopping animation. iAnimationFrameIntervalInMilliSeconds == %d", iAnimationFrameIntervalInMilliSeconds);
-
-		// Delete the animation when going to backgroung. This should not be necessary, there are some
-		// platforms where the bitmap animation works incorrectly when swithching back (see EFLI-6VL4JS)
-		iStoredAnimationFrameIntervalInMilliSeconds = iAnimationFrameIntervalInMilliSeconds;
-		delete iAnimation;
-		iAnimation = NULL;
-		}
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::HandleLosingForeground(): Out");
-	}
-
-//=======================================================================================================
-void CVeiVideoDisplay::HandleGainingForeground()
-	{
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::HandleGainingForeground(): In");
-
-	if( iAnimationOn )
-		{
-		TRAPD(err, ShowAnimationL( iAnimationResourceId, 0 ));
-		if( KErrNone == err )
-			{
-			// restore the animation speed
-			LOGFMT2(KVideoEditorLogFile, "CVeiVideoDisplay::HandleLosingForeground(): animation started. next restoring speed to %d (now it is %d)", iStoredAnimationFrameIntervalInMilliSeconds, iAnimationFrameIntervalInMilliSeconds);
-			iAnimationFrameIntervalInMilliSeconds = iStoredAnimationFrameIntervalInMilliSeconds;
-			// set the animation's frame interval via callback. if set directly after starting the
-			// animation, the rate change does not take effect on screen.
-			SetAnimationFrameIntervalCallbackL();
-			}
-		else
-			{
-			LOGFMT(KVideoEditorLogFile, "CVeiVideoDisplay::SizeChanged: HandleGainingForeground failed: %d", err);
-			iObserver.NotifyVideoDisplayEvent( MVeiVideoDisplayObserver::EError );
-			}
-		}
-
-	LOG(KVideoEditorLogFile, "CVeiVideoDisplay::HandleGainingForeground: Out");
-	}
-
-//=======================================================================================================
-void CVeiVideoDisplay::SetAnimationFrameIntervalCallbackL()
-	{
-	LOG( KVideoEditorLogFile, "CVeiVideoDisplay::DoSetAnimationFrameIntervalL: in");
-
-	if (! iCallBack)
-		{		
-		TCallBack cb (CVeiVideoDisplay::SetAnimationFrameIntervalCallbackMethod, this);
-		iCallBack = new (ELeave) CAsyncCallBack(cb, CActive::EPriorityLow);
-		}
-	iCallBack->CallBack();
-
-	LOG( KVideoEditorLogFile, "CVeiVideoDisplay::DoSetAnimationFrameIntervalL: out");
-	}
-
-//=======================================================================================================
-TInt CVeiVideoDisplay::SetAnimationFrameIntervalCallbackMethod(TAny* aThis)
-	{
-    LOG( KVideoEditorLogFile, "CVeiVideoDisplay::SetAnimationFrameIntervalCallbackMethod");
-
-	CVeiVideoDisplay* me = static_cast<CVeiVideoDisplay*>(aThis);
-	TRAPD( err, me->SetFrameIntervalL( 0 ) );
-	
-	return err;
-	}
-
-// End of File