camerauis/cameraapp/generic/common/inc/MCamAppController.h
branchRCL_3
changeset 24 bac7acad7cb3
parent 0 1ddebce53859
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/common/inc/MCamAppController.h	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,183 @@
+/*
+* 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:  Defines abstract API's for the controller observers*
+*/
+
+
+#ifndef MCAMAPPCONTROLLER_H
+#define MCAMAPPCONTROLLER_H
+
+#include "CamSettings.hrh"
+
+#include "CamPSI.h" // TCamEvCompRange
+
+class MCamControllerObserver;
+class CCameraUiConfigManager;
+/**
+* Abstract API for controller observer from the settings plugin. 
+* 
+*/
+class MCamAppController
+    {
+    public:
+        
+        /**
+        * Add a controller observer.
+        * @since 2.8
+        * @param aObserver Pointer to an object implementing 
+        *                   MCamControllerObserver
+        * @return ?description
+        */
+        virtual void AddControllerObserverL( 
+                     const MCamControllerObserver* aObserver ) = 0;
+
+        /**
+        * Remove a controller observer
+        * @since 2.8
+        * @param aObserver Pointer to the observer to remove. The object
+        *                  does not have to be added as an observer.
+        */
+        virtual void RemoveControllerObserver
+                     ( const MCamControllerObserver* aObserver ) = 0;
+        
+        /**
+        * Return number of images that can still be captured
+        * @since 2.8
+        * @param aStorage storage location - defaults to current loation
+        * @param aBurstActive - set to ETrue if burst mode is active
+        * @return the number of images
+        */
+        virtual TInt ImagesRemaining( TCamMediaStorage aStorage,
+                              TBool            aBurstActive, 
+                              TInt             aQualityIndex ) = 0;
+        
+        /*
+        * Return amount of video that can still be captured
+        * @since 2.8
+        * @return the amount of video in secs
+        */
+        virtual TTimeIntervalMicroSeconds RecordTimeRemaining() = 0;
+
+        /**
+        * Previews a new value for the specified integer setting
+        * @param aSettingItem specifies which setting item that want
+        * to preview.
+        * @param aSettingValue the new integer value for the specified 
+        * setting item to be previewed.
+        * @since 2.8
+        */
+        virtual void PreviewSettingChangeL( TInt aSettingItem,
+                                            TInt aSettingValue ) = 0;
+        
+        
+        /**
+        * Cancels all preview changes, since last commit/cancel.
+        * @since 2.8
+        */
+        virtual void CancelPreviewChangesL() = 0;
+
+        /**
+        * Commits last preview change.
+        * @since 2.8
+        */
+        virtual void CommitPreviewChanges() = 0;
+        
+        /**
+        * Restore Camera settings to default
+        * @since 3.0
+        * @param aIsEmbedded if app is embedded
+        */
+        virtual void RestoreFactorySettingsL( TBool aIsEmbedded ) = 0;
+        
+        
+        /**
+        * Returns the current integer value for the specified setting
+        * without the filtering usually performed on storage location.
+        * This is neccesary to allow the video/photo settings list to show
+        * the selected storage location rather than the forced storage location.
+        * @return the current integer setting value
+        * @param aSettingItem specifies which setting item that want the value of.
+        * @since 2.8
+        */
+        virtual TInt IntegerSettingValueUnfiltered( TInt aSettingItem ) const = 0;
+        
+        /**
+        * Returns the current integer value for the specified setting
+        * @return the current integer setting value
+        * @param aSettingItem specifies which setting item that want the value of.
+        * @since 2.8
+        */
+        virtual TInt IntegerSettingValue( TInt aSettingItem ) const = 0;
+    
+        /**
+        * Sets a new value for the specified integer setting
+        * @param aSettingItem specifies which setting item that want to set the value of.
+        * @param aSettingValue the new integer value for the specified setting item.
+        * @since 2.8
+        */
+        virtual void SetIntegerSettingValueL( TInt aSettingItem, TInt aSettingValue ) = 0;
+    
+        /**
+        * Returns the current text value for the specified setting
+        * @return the current text setting value
+        * @param aSettingItem specifies which setting item that want the text value of.
+        * @since 2.8
+        */
+        virtual TPtrC TextSettingValue( TInt aSettingItem ) const = 0;
+    
+        /**
+        * Sets a new value for the specified integer setting
+        * @param aSettingItem specifies which setting item that want to set the value of.
+        * @param aSettingValue the new integer value for the specified setting item.
+        * @since 2.8
+        */
+        virtual void SetTextSettingValueL( TInt aSettingItem,
+                                           const TDesC& aSettingValue ) = 0;
+        
+        /**
+        * Increments the engine usage count
+        * @since 2.8
+        */
+        virtual void IncCameraUsers() = 0;
+
+        /**
+        * Decrements the engine usage count If the engine is no longer required
+        * then it is released. If it is still processing, the engine count will 
+        * be checked when the current process completes and the engine will be 
+        * released if it is no longer needed.
+        * @since 2.8
+        */
+        virtual void DecCameraUsers() = 0;
+
+        /**
+         * Return range of EV value supported for current product
+         * @since 3.0
+         * @return TEvRange struct
+         */
+        virtual TCamEvCompRange EvRange() const = 0;
+
+        /**
+        * Restart the idle timer
+        * @since 2.8
+        */
+        virtual void StartIdleTimer() = 0;
+        
+        /*
+         * Get handle to CameraUiConfigManager
+         */ 
+        virtual CCameraUiConfigManager* UiConfigManagerPtr() = 0;
+    };
+
+#endif //
+        
\ No newline at end of file