imagingandcamerafws/camerafw/Include/ECam/ECamInfoPlugin.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/camerafw/Include/ECam/ECamInfoPlugin.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,180 @@
+// Copyright (c) 2004-2009 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:
+//
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef ECAMINFOPLUGIN_H
+#define ECAMINFOPLUGIN_H
+
+#include <ecam.h>
+
+class CCameraPlugin;
+
+/**
+Plugin used to supply static data for CCamera.
+*/
+class CCameraInfoPlugin : public CBase
+	{
+	friend class CCameraPlugin;
+	
+public:
+	
+	/**
+	Default destructor for this class.
+	*/
+	IMPORT_C ~CCameraInfoPlugin();
+	
+	/** 
+	Determines the number of cameras on the device.
+
+    @return Count of cameras present on the device.
+	*/
+	virtual TInt CamerasAvailable()=0;
+	
+protected:
+
+	/**
+	Default constructor for this class.
+	*/
+	IMPORT_C CCameraInfoPlugin();
+	
+private:	
+	/**
+	Loads the plugin and returns a pointer to it.
+	
+	@return Pointer to the plugin.
+	*/
+	static CCameraInfoPlugin* NewL();
+
+private:
+	TUid iDestructorKey;
+	
+	};
+	
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex0ReservedStatus = 0x102831F1;
+
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex1ReservedStatus = 0x102831FA;
+
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex2ReservedStatus = 0x102831FB;
+
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex3ReservedStatus = 0x102831FC;
+
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex4ReservedStatus = 0x102831FD;
+
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex5ReservedStatus = 0x102831FE;
+
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex6ReservedStatus = 0x102831FF;
+
+/**
+@publishedPartner
+@prototype
+
+'Property' in the Publish/Subscribe API.
+Used by the ECAM implementation as property sub-keys while defining the property within the category given by 
+current process's secureID.
+*/
+static const TUint KUidECamPropertyCameraIndex7ReservedStatus = 0x10283200;
+
+/**
+Plugin used to retrieve the secure ID of the process where serialized part of the ECam implementation runs.
+
+Meant for implementation by the ECam implementers.
+
+Implementation has to define and publish the properties as given by the keys KUidECamPropertyCameraIndex0ReservedStatus 
+to KUidECamPropertyCameraIndex7ReservedStatus. Client's responsibility is to subscribe to these properties using 
+TReservedInfo::SubscribeReserveInfoL and hence implement the interface MReserveObserver.
+
+@publishedPartner
+@prototype
+*/	
+class MSecureIdPlugin
+	{
+public:
+	virtual void Release() =0;
+	/**
+	Used to retrieve the Secure ID of the process where serialized part of the ECam implementation runs. Secure ID will be
+	internally used to attach to the Properties for which the Reserve notification will be subscribed for.
+	
+	@param aSecureId
+		   The secure ID of the process where serialized part of the ECam implementation runs.
+		   
+	@leave May leave with any error code.
+	
+	@note Serialized part of the ECam implementation is supposed to define and publish those Properties.
+	*/
+	virtual void GetSecureIdL(TInt& aSecureId) const =0;
+	};
+
+#endif // ECAMINFOPLUGIN_H