camerauis/cameraapp/generic/inc/cameracontroller/mcamsettingpreviewhandler.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/mcamsettingpreviewhandler.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:  Camera setting preview handler interface.
+*
+*/
+
+
+#ifndef CAM_MCAMSETTINGPREVIEWHANDLER_H
+#define CAM_MCAMSETTINGPREVIEWHANDLER_H
+
+#include "CamSettingsInternal.hrh"
+
+/**
+ *  MCamSettingPreviewHandler mixin.
+ */
+class MCamSettingPreviewHandler
+  {
+  public:
+
+    /**
+    * Activates preview for one setting.
+    * Returns the preview value as setting value in ProvideCameraSettingL
+    * until Commit or Cancel is called.
+    * @param aSettingId    The setting for which preview is set
+    * @param aSettingValue The setting value used for preview
+    * @leave Any system error code.
+    */
+    virtual void ActivatePreviewL( const TCamSettingItemIds& aSettingId,
+                                         TInt                aSettingValue ) = 0;
+
+    /**
+    * Cancels the preview for one setting. 
+    * After this call ProvideCameraSettingL returns the actual setting value.
+    * If the setting does not have active preview, such error is ignored.
+    * @param aSettingId Id of the setting for which the preview is cancelled.
+    */
+    virtual void CancelPreview( const TCamSettingItemIds& aSettingId ) = 0;
+    
+
+    /**
+    * Cancels the preview for a set of settings.
+    * If some of the settings do not have active preview, such error is ignored.
+    */
+    virtual void CancelPreviews( const RArray<TCamSettingItemIds> aSettingIds ) = 0;
+    
+    /**
+    * Cancels all previews.
+    * No error reported, if no previews active.
+    */
+    virtual void CancelAllPreviews() = 0;
+    
+    /**
+    * Commits the preview value for the given set of settings.
+    * After this call completes, the preview is no more active for the setting.
+    * If the call completes successfully, the preview is stored as the
+    * actual setting value. If leave occurs, the preview is not stored.
+    * @param aSettingId Id of the setting for which the preview is committed.
+    * @leave KErrArgument There was no preview value for the given setting.
+    * @leave Any system error code.
+    */
+    virtual void CommitPreviewL( const TCamSettingItemIds& aSettingId ) = 0;
+
+    /**
+    * Commits the preview for a set of settings.
+    * If some of the settings do not have active preview, such error is ignored.
+    */
+    virtual void CommitPreviewsL( const RArray<TCamSettingItemIds>& aSettingIds ) = 0;
+
+    /**
+    * Commit previews for all settings with active preview.
+    * @leave Any system error code.
+    */
+    virtual void CommitAllPreviewsL() = 0;
+    
+    /**
+    * Get the set of settings with active preview.
+    * Preview is active if it has been set with ActivatePreviewL
+    * but not cancelled or committed after that.
+    * @param aSettingIds Return the ids of the active settings in this array.
+    */
+    virtual void ActivePreviewsL( RArray<TCamSettingItemIds>& aSettingIds ) const = 0;
+
+    /**
+    * Virtual destructor.
+    * Need to be defined in order to be able to gracefully delete
+    * inherited class entities through MCamCameraPreviewHandler pointer.
+    * If not declared here, User-42 panic occurs on delete.
+    */
+    virtual ~MCamSettingPreviewHandler() {};
+  };
+
+#endif // CAM_MCAMSETTINGPREVIEWHANDLER_H
+
+// end of file