diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/cameracontroller/mcamsettingprovider.h --- /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& aSettingIds ) = 0; + + /** + * Number of currently pending setting changes. + */ + virtual TInt PendingSettingChangeCount() const = 0; + + /** + * Set the supported ISO rates. + */ + virtual void SetSupportedISORatesL( const RArray& 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