camerauis/cameraapp/generic/inc/cameracontroller/camsnapshotprovider.h
branchRCL_3
changeset 24 bac7acad7cb3
parent 0 1ddebce53859
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/inc/cameracontroller/camsnapshotprovider.h	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+*
+* Description:  CCamSnapshotProvider class definition
+*
+*/
+
+
+#ifndef CAM_SNAPSHOTPROVIDER_H
+#define CAM_SNAPSHOTPROVIDER_H
+
+
+#include "camcameracontrollerflags.hrh" // build flags, keep first
+#include <ecam/mcamerasnapshot.h>
+
+
+class CCamera;
+class MCameraObserver2;
+class MCamCameraObservable;
+class CPeriodic;
+class CCamSnapshot;
+
+
+#ifdef CAMERAAPP_CAPI_V2_SS    
+  #define CAMERASNAPSHOT CCamera::CCameraSnapshot
+#else
+  // To be able to link without additional build time variation 
+  // in source files.
+  #define CAMERASNAPSHOT CCamSnapshot
+#endif
+
+
+// ===========================================================================
+// 
+class CCamSnapshotProvider :  public CBase,
+                              public MCameraSnapshot
+  {
+  // -------------------------------------------------------
+  // Constructors and destructor
+  public:
+
+    static CCamSnapshotProvider* NewL( CCamera&              aCamera,
+                                       MCameraObserver2&     aObserver,
+                                       MCamCameraObservable& aObservable );
+
+    virtual ~CCamSnapshotProvider();
+
+  private:
+
+    /**
+    * 2nd phase constructor
+    */
+    void ConstructL( CCamera&              aCamera, 
+                     MCameraObserver2&     aObserver,
+                     MCamCameraObservable& aObservable );
+
+    /**
+    * 1st phase constructor
+    */
+    CCamSnapshotProvider();
+
+  // -------------------------------------------------------
+  // From MCameraSnapshot
+  //
+  // All inlines as just relayed to the currently used
+  // snapshot producer.
+  public:
+
+  	inline virtual TUint32        SupportedFormats();
+    inline virtual void           PrepareSnapshotL( CCamera::TFormat aFormat, const TPoint& aPosition, const TSize& aSize, const TRgb& aBgColor, TBool aMaintainAspectRatio );
+  	inline virtual void           PrepareSnapshotL( CCamera::TFormat aFormat, const TSize& aSize, TBool aMaintainAspectRatio );
+  	inline virtual void           SetBgColorL( const TRgb& aBgColor);
+  	inline virtual void           SetPositionL( const TPoint& aPosition);
+    inline virtual TBool          IsSnapshotActive() const;
+    inline virtual void           StartSnapshot();
+  	inline virtual void           StopSnapshot();
+  	inline virtual MCameraBuffer& SnapshotDataL( RArray<TInt>& aFrameIndexOrder );
+  	inline virtual void           Release();
+
+  // =======================================================
+  // Data  
+  private:
+
+    CAMERASNAPSHOT* iSs1;
+    CCamSnapshot*   iSs2;
+
+  // =======================================================
+  };
+
+#include "camsnapshotprovider.inl"
+
+// ===========================================================================
+#endif // CAM_SNAPSHOTPROVIDER_H
+
+// end of file