camerauis/cameraapp/generic/inc/cameracontroller/mcamsettingprovider.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/mcamsettingprovider.h	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,99 @@
+/*
+* 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:  Camera setting provider interface.
+*
+*/
+
+
+#ifndef CAM_MCAMSETTINGPROVIDER_H
+#define CAM_MCAMSETTINGPROVIDER_H
+
+#include "camcameracontrollersettings.h"
+
+/**
+ *  MCamSettingProvider mixin.
+ */
+class MCamSettingProvider
+  {
+  public:
+    
+    /**
+    * Get given camera parameters.
+    * The associated data is returned in the TAny pointer.
+    * Actual data type depends on the parameter id and is documented in
+    * TCamCameraParamId documentation.
+    *
+    * These parameters represent overall settings of camera, e.g.
+    * image quality and format, viewfinder size etc. The setting version
+    * (ProvideCameraSettingL) is used to get more exact settings like
+    * flash mode, exposure compensation setting etc.
+    *
+    * @param aParamId   Id of the parameter which the user is interested in.
+    * @param aParamData Pointer to the parameter data structure. The actual
+    *                   data type depends on parameter id.
+    * @see TCamCameraParamId
+    */
+    virtual void 
+      ProvideCameraParamL( 
+        const NCamCameraController::TCamCameraParamId& aParamId,
+              TAny*                                    aParamData ) = 0;
+
+    /**
+    * Get given camera setting.
+    * The associated data is returned in the TAny pointer.
+    * Actual data type depends on the setting id and is documented in
+    * TCamCameraSettingId documentation.
+    * 
+    * This method is used to get specific settings for camera, e.g.
+    * exposure compensation, white balance etc. Some of these settings
+    * still combine mode and value, so TAny pointer is used to be able
+    * to return setting data of variable size and type.
+    *
+    * @see TCamCameraSettingId
+    */
+    virtual void 
+      ProvideCameraSettingL( 
+        const NCamCameraController::TCamCameraSettingId& aSettingId,
+              TAny*                                      aSettingData ) = 0;
+
+    /**
+    * Provide the currently pending setting changes.
+    *
+    */
+    virtual void 
+      ProvidePendingSettingChangesL( 
+        RArray<NCamCameraController::TCamCameraSettingId>& aSettingIds ) = 0;
+        
+    /**
+    * Number of currently pending setting changes.
+    */
+    virtual TInt PendingSettingChangeCount() const = 0;
+
+    /**
+    * Set the supported ISO rates.
+    */
+    virtual void SetSupportedISORatesL( const RArray<TInt>& aSupportedIsoRates ) = 0;
+    
+    /**
+    * Virtual destructor.
+    * Need to be defined in order to be able to gracefully delete
+    * inherited class entities through MCamSettingProvider pointer.
+    * If not declared here, User-42 panic occurs on delete.
+    */
+    virtual ~MCamSettingProvider() {};
+  };
+
+#endif // CAM_MCAMSETTINGPROVIDER_H
+
+// end of file