camerauis/cameraapp/generic/camerauiconfigmanager/inc/CameraUiConfigManager.h
changeset 0 1ddebce53859
child 1 f5ec9446e5bf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/camerauiconfigmanager/inc/CameraUiConfigManager.h	Thu Jan 07 16:18:56 2010 +0200
@@ -0,0 +1,468 @@
+/*
+* Copyright (c) 2007-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:  CameraUiConfigManager API header.
+ *
+*/
+
+
+#ifndef CAMERAUICONFIGMANAGER_H
+#define CAMERAUICONFIGMANAGER_H
+
+// INCLUDES
+
+#include <eikenv.h>
+
+
+// Photo/Video scene information
+struct TSceneSettings
+  {
+  // Used for both image and video scene configuration.
+  TInt iSupported;
+  TInt iIdentifier;
+  TInt iExposureMode;
+  TInt iWhiteBalance;
+  TInt iFlash;
+  TInt iContrastMode;
+  TInt iFocalDistance;
+  /*
+  * The following 3 only used for image mode. In Video mode, we ignore this
+  */
+  TInt iSharpnessMode; 
+  TInt iLightSensitivityMode;
+  TInt iExposureCompensationValue;
+  /*
+  * 0 -> Read from ICM or else.. take the frame rate defined here into use
+  * only used in video. Ingored in image mode.
+  */
+  TInt iFrameRate;  
+  };
+
+
+class CCameraUiConfigManagerImp;
+
+// CCameraUiConfigManager API 
+
+class CCameraUiConfigManager : public CBase
+  {
+  // =========================================================================
+  public: // Constructors and destructor
+  
+        /**
+        * Symbian two-phased constructor.
+        * @since 2.8
+        * @param aConfiguration    
+        * engine changes.
+        */
+        IMPORT_C static CCameraUiConfigManager* NewLC();
+      
+        /**
+        * Symbian two-phased constructor.
+        * @since 2.8
+        * @param aConfiguration    
+        * engine changes.
+        */
+        IMPORT_C static CCameraUiConfigManager* NewL();
+        
+        /*
+        * Constructor
+        */
+        CCameraUiConfigManager();
+        
+        /**
+        * Destructor.
+        */
+        ~CCameraUiConfigManager();
+    
+ public:
+ 
+        /*
+        * Checking for Color feature support
+        */
+        IMPORT_C TBool IsColorToneFeatureSupported() const;
+        
+        /*
+        * To check for sharpness feature support
+        */
+        IMPORT_C TBool IsSharpnessFeatureSupported() const;
+        
+        /*
+        * To check for white balance feature support
+        */
+        IMPORT_C TBool IsWhiteBalanceFeatureSupported() const;
+        
+        /*
+        * Secondary camera support
+        */
+        IMPORT_C TBool IsSecondaryCameraSupported() const;
+        
+        /*
+        * Direct Screen View Finder feature support
+        * aPrimaryCamera = ETrue ( Direct screen access support for primary camera )
+        * aPrimaryCamera = EFalse ( Direct screen access support for secondary camera )
+        */
+        IMPORT_C TBool IsDSAViewFinderSupported( TBool aPrimaryCamera = ETrue ) const;
+        
+        /*
+        * Lens cover feature support
+        */
+        IMPORT_C TBool IsLensCoverSupported() const;
+        
+        /*
+        * Xenon flash feature support
+        */
+        IMPORT_C TBool IsXenonFlashSupported() const;
+        
+        /*
+         * Light sensitivity feature support
+        */
+        IMPORT_C TBool IsISOSupported() const;
+            
+        /*
+        * EV feature support
+        */
+        IMPORT_C TBool IsEVSupported() const;
+        
+        /*
+        * Flash mode feature support
+        */
+        IMPORT_C TBool IsFlashModeSupported() const;
+    
+        
+        /*
+        * Contrast feature support
+        */
+        IMPORT_C TBool IsContrastSupported() const;
+        
+        /*
+        * Brightness feature support
+        */
+        IMPORT_C TBool IsBrightnessSupported() const;
+        
+        
+        /*
+        * Flash mode feature support
+        */
+        IMPORT_C TBool IsExtendedLightSensitivitySupported() const;
+        
+        
+        /*
+        * One click upload feature support
+        */
+        IMPORT_C TBool IsOneClickUploadSupported() const;
+        
+        
+        /*
+        * Video Light feature support
+        */
+        IMPORT_C TBool IsVideoLightSupported() const;
+        
+        
+        /*
+        * Auto focus feature support
+        */
+        IMPORT_C TBool IsAutoFocusSupported() const;
+    
+        /*
+        * Video Stabilization feature support
+        */
+        IMPORT_C TBool IsVideoStabilizationSupported() const;
+        
+        /*
+        * Orientation sensor feature support
+        */
+        IMPORT_C TBool IsOrientationSensorSupported() const;
+        
+        /*
+        * Face-tracking feature support
+        */
+        IMPORT_C TBool IsFaceTrackingSupported() const;
+        
+        /*
+        * Optical joy stick feature support
+        */
+        IMPORT_C TBool IsOpticalJoyStickSupported() const;
+
+        /*
+        * location feature support
+        */
+        IMPORT_C TBool IsLocationSupported() const;
+        
+        /*
+        * keywatcher feature support
+        */
+        IMPORT_C TBool IsKeyLockWatcherSupported() const;
+        
+        /*
+        * Extended Digital Zoom feature support
+        */
+        IMPORT_C TBool IsExtendedDigitalZoomSupported() const;
+
+        /*
+        * MC photos support available
+        */
+        IMPORT_C TBool IsPhotosSupported() const;
+
+        /*
+        * Publish Zoom State support available
+        */
+        IMPORT_C TBool IsPublishZoomStateSupported() const;
+        
+        /*
+        * EFalse = HW/Adapation sets AF to Hyperfocal during startup
+        * ETrue  = Should be handled in UI
+        */
+        IMPORT_C TBool IsAutofocusSetInHyperfocalAtStartup() const;
+
+        /*
+        * Capture tone delay support available
+        */
+        IMPORT_C TBool IsCaptureToneDelaySupported() const;
+
+        /*
+        * UI Orientation Override feature support
+        */
+        IMPORT_C TBool IsUIOrientationOverrideSupported() const;
+        
+        /*
+        * ThumbnailManager API feature support
+        */
+        IMPORT_C TBool IsThumbnailManagerAPISupported() const;
+        
+        /*
+        * Capture tone delay in milliseconds.
+        */
+        IMPORT_C TInt CaptureToneDelay() const;
+
+        /*
+        * Required RAM memory for CameraApp
+        */
+        IMPORT_C TInt RequiredRamMemory() const;
+        
+        /*
+        * Critical Level RAM memory for CameraApp
+        */
+        IMPORT_C TInt CriticalLevelRamMemory() const;
+
+        /*
+        * Required RAM memory for CameraApp when focus gained
+        */
+        IMPORT_C TInt RequiredRamMemoryFocusGained() const;
+        
+        /*
+        * Critical Level RAM memory for CameraApp when focus gained
+        */
+        IMPORT_C TInt CriticalLevelRamMemoryFocusGained() const;
+
+        /*
+        *  To get all supported color tone setting items
+        * aParam: aSupportedValues contain colortone setting enums supported by camera ui
+        * check camsettings.hrh for supported enums in camera ui
+        */
+        IMPORT_C void SupportedColorToneSettingsL( RArray<TInt>& aSupportedValues );
+        
+        /*
+        * To get all supported white balance setting items
+        * aParam: aSupportedValues contain white balance setting enums supported by camera ui
+        * check camsettings.hrh for supported enums in camera ui
+        */
+        IMPORT_C void SupportedWhiteBalanceSettingsL( 
+                                    RArray<TInt>& aSupportedValues );
+        
+        /*
+        * To get all supported Sharpness setting items
+        * @aSupportedValues contains values ranging from MIN to MAX
+        */
+        IMPORT_C void SupportedSharpnessSettingsL( RArray<TInt>& aSupportedValues );
+
+        /*
+        * Primary Camera Zoom-In Keys
+        * aParam: aSupportedValues will have key scan codes configured via cenrep
+        */
+        IMPORT_C void SupportedPrimaryCameraZoomInKeysL( RArray<TInt>& aSupportedValues );
+    
+        /*
+        * Primary Camera Zoom-Out Keys
+        * aParam: aSupportedValues will have key scan codes configured via cenrep
+        */
+        IMPORT_C void SupportedPrimaryCameraZoomOutKeysL( RArray<TInt>& aSupportedValues );
+    
+        /*
+        * Secondary Camera Zoom-In Keys
+        * aParam: aSupportedValues will have key scan codes configured via cenrep
+        */
+        IMPORT_C void SupportedSecondaryCameraZoomInKeysL( RArray<TInt>& aSupportedValues );
+    
+        /*
+        * Secondary Camera Zoom-Out Keys
+        * aParam: aSupportedValues will have key scan codes configured via cenrep
+        */
+        IMPORT_C void SupportedSecondaryCameraZoomOutKeysL( RArray<TInt>& aSupportedValues );
+        
+        /*
+        * EV compensation supported settings
+        * aSupportedValues contains the complete range of EV settings from MIN to MAX
+        * @e.g. -2,2,10 ( aSupportedValues[0] = MIN,
+        *                 aSupportedValues[1] = MAX,
+        *                 aSupportedValues[2] = Steps )
+        */
+        IMPORT_C void SupportedEVSettingsL( RArray<TInt>& aSupportedValues );
+    
+    
+        /*
+        * Flash mode setting items
+        * aParam: aSupportedValues contain flash mode enums supported by camera ui
+        * check camsettings.hrh for supported enums in camera ui
+        */
+        IMPORT_C void SupportedFlashModeSettingsL( RArray<TInt>& aSupportedValues );
+
+        
+        /*
+        * Primary camera capture key
+        * aParam: aSupportedValues will have key mappings for capture key
+        */
+        IMPORT_C void SupportedPrimaryCameraCaptureKeyL( RArray<TInt>& aSupportedValues );
+    
+        /*
+        * Secondary camera capture key
+        * aParam: aSupportedValues will have key mappings for capture key
+        */
+        IMPORT_C void SupportedSecondaryCameraCaptureKeyL( RArray<TInt>& aSupportedValues );
+        
+        /*
+        * Primary camera AF key
+        * aParam: aSupportedValues will have key mappings for Autofocus key
+        */
+        IMPORT_C void SupportedPrimaryCameraAutoFocusKeyL( RArray<TInt>& aSupportedValues );
+    
+        /*
+        * Secondary camera AutoFocus key
+        * aParam: aSupportedValues will have key mappings for Autofocus key
+        */
+        IMPORT_C void SupportedSecondaryCameraAutoFocusKeyL( RArray<TInt>& aSupportedValues );
+        
+        /*
+        * Supported contrast setting range values
+        * aParam: aSupportedValues will have contrast values ranging 
+        * from MIN - MAX and step size
+        * aSupportedValues[0] -> MIN value
+        * aSupportedValues[1] -> MAX value
+        * aSupportedValues[2] -> Steps
+        */
+        IMPORT_C void SupportedContrastRangeL( RArray<TInt>& aSupportedValues );
+        
+        /*
+        * Supported brightness setting range values
+        * aParam: aSupportedValues will have brightness values ranging 
+        * from MIN - MAX and step size
+        * aSupportedValues[0] -> MIN value
+        * aSupportedValues[1] -> MAX value
+        * aSupportedValues[2] -> Steps
+        */
+        IMPORT_C void SupportedBrightnessRangeL( RArray<TInt>& aSupportedValues );
+        
+        /*
+        *  To get all supported Max Zoom steps for all Image, Video resoultions for
+        *  primary and second camera
+        *  @ aSupportedValues[ 0] -> KMaxPhoto8MPZoomStep
+        *  @ aSupportedValues[ 1] -> KMaxPhoto5MPZoomStep
+        *  @ aSupportedValues[ 2] -> KMaxPhoto3MPZoomStep
+        *  @ aSupportedValues[ 3] -> KMaxPhoto2MPZoomStep
+        *  @ aSupportedValues[ 4] -> KMaxPhoto1_3MPZoomStep
+        *  @ aSupportedValues[ 5] -> KMaxPhoto1MPZoomStep
+        *  @ aSupportedValues[ 6] -> KMaxPhoto08MPZoomStep
+        *  @ aSupportedValues[ 7] -> ?? no constant in UI
+        *  @ aSupportedValues[ 8] -> KMaxPhotoVGAZoomStep
+        *  @ aSupportedValues[ 9] -> KMaxVideoZoomStepHD
+        *  @ aSupportedValues[10] -> KMaxVideoZoomStepWVGA
+        *  @ aSupportedValues[11] -> KMaxVideoZoomStepNHD
+        *  @ aSupportedValues[12] -> KMaxVideoZoomStepVGA
+        *  @ aSupportedValues[13] -> KMaxVideoZoomStepQVGA
+        *  @ aSupportedValues[14] -> KMaxVideoZoomStepCIF
+        *  @ aSupportedValues[15] -> KMaxVideoZoomStepQCIF
+        *  @ aSupportedValues[16] -> iMaxVideoStepSQCIF
+        *  @ aSupportedValues[17] -> KMax2ndCamPhotoStep
+        *  @ aSupportedValues[18] -> KMax2ndCamVideoStepCIF
+        *  @ aSupportedValues[19] -> KMax2ndCamVideoStepQCIF
+        *  @ aSupportedValues[20] -> iMax2ndCamVideoStepSQCIF
+        */
+        IMPORT_C void SupportedMaxZoomStepsL( RArray<TInt>& aSupportedValues );
+        
+        /*
+        * To get all supported photo specific MAX extended zoom steps w.r.t all photo
+        * resoultions ( only for main camera for now )
+        * aSupportedValues[0] -> 5MP max ext-zoom step
+        * aSupportedValues[n] -> lowest resolution for main camera MAX ext-zoom step
+        */
+        IMPORT_C void SupportedMaxExtendedZoomStepsL( 
+                                    RArray<TInt>& aSupportedValues );
+        /*
+        * Supported zoom bar Look and Feel ( LAF ) values
+        * @aSupportedValues[0] -> Time per zoom tick in milliseconds
+        * @aSupportedValues[1] -> Time per extended zoom tick in milliseconds 
+        * @aSupportedValues[2] -> No of zoom steps per tick
+        * @aSupportedValues[3] -> No of extended zoom steps per tick 
+        * @aSupportedValues[4] -> Secondary camera zoom steps per tick
+        */
+        IMPORT_C void SupportedLAFZoomBarL( 
+                                    RArray<TInt>& aSupportedValues );
+        
+        /*
+        * Supported Image Scene modes and Scene specific settings
+        */
+        IMPORT_C void SupportedSceneModesAndSettingsL( 
+                               RArray<TSceneSettings>& aSupportedValues,
+                               TBool aPhotoScene = ETrue );
+
+        /*
+        * Determines device qwerty-mode state.
+        * This method is meant to be used with secondary camera.
+        * @return ETrue if qwerty keyboard is open
+        */
+        IMPORT_C TInt IsQwerty2ndCamera() const;  
+
+        /*
+        * Burst file size estimate correction factor
+        * in percent (100 = 100%).
+        * @return correction factor in percent
+        */        
+        IMPORT_C TInt BurstFileSizeEstimateFactor() const;       
+        
+        /*
+        * @aSupportedValues[0] -> Value for iCamZoomCooldown
+        * @aSupportedValues[1] -> Value for iCamMaxZoomCooldown
+        */
+        IMPORT_C void SupportedZoomDelaysL( 
+                                    RArray<TInt>& aSupportedValues );
+        /*
+         * BurstMode Support
+         */
+        IMPORT_C TBool IsBurstModeSupported() const; 
+		
+		 /*
+        * Continuous autofocus. 
+        * @return ETrue if continuous autofocus feature is enabled
+        */
+        IMPORT_C TBool IsContinuosAutofocusSupported() const; 
+        
+ private:
+        void ConstructL();
+  
+ private:
+ 
+        CCameraUiConfigManagerImp* iConfigManagerImp;
+};
+
+#endif // CAMERAUICONFIGMANAGER_H
+
+// End of File