videditor/VideoEditorCommon/inc/VeiFrameTaker.h
changeset 0 951a5db380a0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videditor/VideoEditorCommon/inc/VeiFrameTaker.h	Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2010 Ixonos Plc.
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+*
+* Contributors:
+* Ixonos Plc
+*
+* Description:  
+*
+*/
+
+
+#ifndef __FRAMETAKER_H
+#define __FRAMETAKER_H
+
+#include <vedmovie.h>
+
+class MVeiFrameTakerObserver
+	{
+
+public:
+
+	virtual void NotifyFramesCompleted( CFbsBitmap* aFirstFrame, CFbsBitmap* aLastFrame, 
+        CFbsBitmap* aTimelineFrame, TInt aError ) = 0;
+	};
+
+
+NONSHARABLE_CLASS( CVeiFrameTaker ):	public CActive,
+										public MVedVideoClipFrameObserver
+
+{
+public:
+    IMPORT_C static CVeiFrameTaker* NewL( MVeiFrameTakerObserver& aObserver );
+    ~CVeiFrameTaker();
+
+public:
+	IMPORT_C void GetFramesL(CVedVideoClipInfo& aInfo,
+							TInt const aFirstFrame, TSize* const aFirstResolution, 
+							TInt const aLastFrame, TSize* const aLastResolution,
+                            TInt const aTimelineFrame, TSize* const aTimelineResolution,
+							TInt aPriority);
+
+private:
+	CVeiFrameTaker( MVeiFrameTakerObserver& aObserver );
+	void ConstructL();
+
+	void DoCancel();
+	void RunL();
+
+	virtual void NotifyVideoClipFrameCompleted(CVedVideoClipInfo& aInfo, 
+											   TInt aError, 
+							 				   CFbsBitmap* aFrame);
+private:
+	CActiveSchedulerWait *iWaitScheduler;
+	CFbsBitmap*	iFirstFrame;
+	CFbsBitmap*	iLastFrame;
+    CFbsBitmap*	iTimelineFrame;
+
+	TInt		iFrameCount;
+	TInt		iError;
+
+	MVeiFrameTakerObserver& iObserver;
+};
+#endif