camerauis/cameraapp/generic/inc/cameracontroller/camcameracontrollersettings.h
branchRCL_3
changeset 24 bac7acad7cb3
parent 0 1ddebce53859
equal deleted inserted replaced
23:61bc0f252b2b 24:bac7acad7cb3
       
     1 /*
       
     2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Camera controller setting ids and associated data types.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CAM_CAMERACONTROLLERSETTINGS_H
       
    20 #define CAM_CAMERACONTROLLERSETTINGS_H
       
    21 
       
    22 #include <ecam.h>            // Data types (CCamera::TFormat etc)
       
    23 #include <ecamadvsettings.h> // Data types
       
    24 
       
    25 // ===========================================================================
       
    26 // Definitions
       
    27 
       
    28 namespace NCamCameraController
       
    29   {
       
    30   // =======================================================
       
    31   // Settings and parameters needed by Camera Controller from Setting Provider.
       
    32   // These are the keys by which Camera Controller requests the value.
       
    33   //
       
    34   // The comments list 
       
    35   //   [meaning of setting][expected setting data type]
       
    36   //
       
    37 
       
    38   // -------------------------------------------------------
       
    39   // Camera parameter ids and related data types
       
    40   enum TCamCameraParamId
       
    41     {
       
    42     ECameraParamNone,
       
    43 
       
    44     ECameraParamImage,    // [ Image init parameters ] [ TPckgBuf<TCamImageParams>    ]
       
    45 
       
    46     ECameraParamVfMode,   // [ Viewfinder mode       ] [ TPckgBuf<TCamViewfinderMode> ]
       
    47     ECameraParamVfBitmap, // [ Bitmap vf parameters  ] [ TPckgBuf<TCamVfBitmapParams> ]
       
    48     ECameraParamVfDirect, // [ Direct vf parameters  ] [ TPckgBuf<TCamVfDirectParams> ]
       
    49 
       
    50     ECameraParamSnapshot, // [ Snapshot parameters   ] [ TPckgBuf<TCamSnapshotParams> ]
       
    51 
       
    52     ECameraParamVideoCae, // [ CCaeEngine video parameters ] [ TPckgBuf<TCamVideoCaeParams> ]
       
    53 
       
    54     // NOTE: As the name of the enum below suggests, 
       
    55     //       ADD ALL NEW PARAMETER IDS ABOVE THIS COMMENT!
       
    56     //       Remember also to add the name of the item to
       
    57     //       the KCameraParamNames array of debug strings.
       
    58     ECameraParamCount    
       
    59     };
       
    60 
       
    61 
       
    62   /**
       
    63   * Camera image parameters
       
    64   */
       
    65   class TCamParamsImage
       
    66     {
       
    67     public:
       
    68       TCamParamsImage() 
       
    69         : iFormat( CCamera::EFormatExif ),
       
    70           iSize  (   ),
       
    71           iQualityFactor( 100 ) {};
       
    72   
       
    73     public:
       
    74 
       
    75       CCamera::TFormat iFormat;
       
    76       TSize            iSize;
       
    77       TInt             iQualityFactor;
       
    78     };
       
    79 
       
    80   /**
       
    81   * Camera bitmap viewfinder setting data
       
    82   */
       
    83   class TCamParamsVfBitmap
       
    84     {
       
    85     public:
       
    86       TCamParamsVfBitmap()
       
    87         : iFormat( CCamera::EFormatFbsBitmapColor16M ), 
       
    88           iRect(),
       
    89           iMirrorImage (EFalse)
       
    90           {
       
    91           }
       
    92 
       
    93     public:
       
    94       CCamera::TFormat iFormat;
       
    95       TRect            iRect;
       
    96 
       
    97       TBool iMirrorImage;
       
    98     };
       
    99 
       
   100   /**
       
   101   * Camera direct viewfinder setting data
       
   102   */
       
   103   class TCamParamsVfDirect
       
   104     {
       
   105     public:
       
   106       TCamParamsVfDirect()
       
   107         : iWindowServer  ( NULL ),
       
   108           iScreenDevice  ( NULL ),
       
   109           iWindow        ( NULL ),
       
   110           iScreenRect    ( NULL ) {};
       
   111 
       
   112     public:
       
   113       RWsSession*      iWindowServer;
       
   114       CWsScreenDevice* iScreenDevice;
       
   115       RWindowBase*     iWindow;
       
   116       TRect*           iScreenRect;
       
   117     };
       
   118   
       
   119   /**
       
   120   * Camera snapshot setting data
       
   121   */
       
   122   class TCamParamsSnapshot
       
   123     {
       
   124     public:
       
   125       TCamParamsSnapshot()
       
   126         : iSize(),
       
   127           iFormat( CCamera::EFormatFbsBitmapColor16M ),
       
   128           iMaintainAspect( EFalse ) {};
       
   129 
       
   130     public:
       
   131       TSize            iSize;
       
   132       CCamera::TFormat iFormat;
       
   133       TBool            iMaintainAspect;
       
   134     };  
       
   135 
       
   136 
       
   137   /**
       
   138   * Camera video quality setting data
       
   139   */
       
   140   class TCamParamsVideoCae
       
   141     {
       
   142     public:
       
   143       TCamParamsVideoCae() 
       
   144         : iFrameSize   ( /*empty*/  ),
       
   145           iFrameRate   ( 0          ),
       
   146           iVideoBitRate( 0          ),
       
   147           iAudioBitRate( 0          ),
       
   148           iAudioOn     ( ETrue      ),
       
   149           iMimeType    ( KNullDesC8 ),
       
   150           iSupplier    ( KNullDesC  ),
       
   151           iVideoType   ( KNullDesC8 ),
       
   152           iAudioType   ( KNullDesC8 ) {};
       
   153 
       
   154     public:
       
   155       TSize   iFrameSize;
       
   156       TReal32 iFrameRate;
       
   157       TInt    iVideoBitRate;
       
   158       TInt    iAudioBitRate;
       
   159       TBool   iAudioOn;
       
   160       TPtrC8  iMimeType;
       
   161       TPtrC   iSupplier;
       
   162       TPtrC8  iVideoType;
       
   163       TPtrC8  iAudioType;
       
   164     };
       
   165 
       
   166   // -------------------------------------------------------
       
   167   // Camera setting ids and related data types
       
   168 
       
   169   enum TCamCameraSettingId
       
   170     {
       
   171     ECameraSettingNone,
       
   172     
       
   173     ECameraSettingQualityFactor,    // [ (image) quality factor ] [ TInt {0..100}         ]
       
   174 
       
   175     ECameraSettingFlash,            // [ flash                  ] [ CCamera::TFlash                               ]
       
   176     ECameraSettingExposure,         // [ Exposure               ] [ TPckgBuf<TCamSettingDataExposure>             ]
       
   177     ECameraSettingLightSensitivity, // [ ISO                    ] [ TInt (ISO value)                              ]
       
   178     ECameraSettingWhiteBalance,     // [ WB                     ] [ TPckgBuf<TCamSettingDataWhiteBalance>         ]
       
   179     ECameraSettingColourEffect,     // [ colour effect          ] [ CCamera::CCameraImageProcessing::TEffect      ]
       
   180     ECameraSettingBrightness,       // [ brightness             ] [ CCamera::TBrightness                          ]
       
   181     ECameraSettingContrast,         // [ contrast               ] [ CCamera::TContrast                            ]
       
   182     ECameraSettingSharpness,        // [ sharpness              ] [ TInt (contrast adjustment value)              ]
       
   183     
       
   184     ECameraUserSceneSettingFlash,            // [ flash                  ] [ CCamera::TFlash                               ]
       
   185     ECameraUserSceneSettingExposure,         // [ Exposure               ] [ TPckgBuf<TCamSettingDataExposure>             ]
       
   186     ECameraUserSceneSettingLightSensitivity, // [ ISO                    ] [ TInt (ISO value)                              ]
       
   187     ECameraUserSceneSettingWhiteBalance,     // [ WB                     ] [ TPckgBuf<TCamSettingDataWhiteBalance>         ]
       
   188     ECameraUserSceneSettingColourEffect,     // [ colour effect          ] [ CCamera::CCameraImageProcessing::TEffect      ]
       
   189     ECameraUserSceneSettingBrightness,       // [ brightness             ] [ CCamera::TBrightness                          ]
       
   190     ECameraUserSceneSettingContrast,         // [ contrast               ] [ CCamera::TContrast                            ]
       
   191     ECameraUserSceneSettingSharpness,        // [ sharpness              ] [ TInt (contrast adjustment value)              ]
       
   192     
       
   193     ECameraSettingDigitalZoom,      // [ digital zoom           ] [ TInt (zoom step)       ]
       
   194     ECameraSettingOpticalZoom,      // [ optical zoom           ] [ TInt (zoom step)       ]
       
   195 
       
   196     ECameraSettingFocusRange,       // [ focus range            ] [ CCamera::CCameraAdvancedSettings::TFocusRange ]
       
   197 
       
   198     ECameraSettingStabilization,    // [ stabilization mode     ] [ TPckgBuf<TCamSettingDataStabilization>           ]
       
   199     ECameraSettingFlickerCancel,    // [ flicker cancellation   ] [ MCameraFlickerCancellation::TFlickerCancellation ]
       
   200     ECameraSettingOrientation,      // [ device orientation     ] [ MCameraOrientation::TOrientation                 ]
       
   201   
       
   202     ECameraSettingAudioMute,        // [ (video) audio muting   ] [ TBool (ETrue => muted) ]
       
   203     ECameraSettingContAF,           // [ (video) continuous AF  ] [ TBool (ETrue => on)    ]    
       
   204     ECameraSettingFileMaxSize,      // [ (video) max file size  ] [ TInt (bytes)           ]
       
   205     ECameraSettingFileName,         // [ (video) file name      ] [ TPtr                   ]
       
   206     
       
   207     ECameraSettingCaptureLimit,     // [ (image) capture limit  ] [ TInt (amount of images requested) ]
       
   208 
       
   209     ECameraSettingFacetracking,        // [ (still) facetracking   ] [ TBool (ETrue => facetracking on) ]
       
   210 
       
   211     // NOTE: As the name of the enum below suggests, 
       
   212     //       ADD ALL NEW SETTING IDS ABOVE THIS COMMENT!
       
   213     //       Remember also to add the name of the item to
       
   214     //       the KCameraSettingNames array of debug strings.
       
   215     ECameraSettingCount
       
   216     };
       
   217 
       
   218 
       
   219   /**
       
   220   * Exposure compensation setting data
       
   221   */
       
   222   class TCamSettingDataExposure
       
   223     {
       
   224     public:
       
   225       TCamSettingDataExposure()
       
   226         : iExposureMode( CCamera::EExposureAuto ),
       
   227           iExposureStep( 0 ) {};
       
   228 
       
   229     public:
       
   230       CCamera::TExposure iExposureMode;
       
   231       // EV compensation step times KECamFineResolutionFactor.
       
   232       // For example EV = 0.7, KECamFineResolutionFactor = 100
       
   233       // => this value should be 70
       
   234       TInt               iExposureStep; 
       
   235       };
       
   236 
       
   237   /**
       
   238   * White balance setting data
       
   239   */
       
   240   class TCamSettingDataWhiteBalance
       
   241     {
       
   242     public:
       
   243       TCamSettingDataWhiteBalance() 
       
   244         : iWhiteBalanceMode( CCamera::EWBAuto ) {};
       
   245 
       
   246     public:
       
   247       CCamera::TWhiteBalance iWhiteBalanceMode;
       
   248     };
       
   249 
       
   250   /**
       
   251   * Stabilization setting data
       
   252   */
       
   253   class TCamSettingDataStabilization
       
   254     {
       
   255     protected:
       
   256       typedef CCamera::CCameraAdvancedSettings CAS;
       
   257 
       
   258     public:
       
   259 
       
   260       TCamSettingDataStabilization() 
       
   261         : iMode      ( CAS::EStabilizationModeOff        ),
       
   262           iEffect    ( CAS::EStabilizationOff            ),
       
   263           iComplexity( CAS::EStabilizationComplexityAuto ) {};
       
   264 
       
   265     public:
       
   266 
       
   267       CAS::TStabilizationMode                iMode;
       
   268       CAS::TStabilizationEffect              iEffect; 
       
   269       CAS::TStabilizationAlgorithmComplexity iComplexity;
       
   270     };
       
   271 
       
   272 
       
   273 
       
   274 
       
   275   // -------------------------------------------------------  
       
   276 #ifdef _DEBUG
       
   277 const TUint16* const KCameraParamNames[] =
       
   278   {
       
   279   (const TUint16* const)_S16("ECameraParamNone"),
       
   280   (const TUint16* const)_S16("ECameraParamImage"),   
       
   281   (const TUint16* const)_S16("ECameraParamVfMode"),   
       
   282   (const TUint16* const)_S16("ECameraParamVfBitmap"), 
       
   283   (const TUint16* const)_S16("ECameraParamVfDirect"), 
       
   284   (const TUint16* const)_S16("ECameraParamSnapshot"), 
       
   285   (const TUint16* const)_S16("ECameraParamVideoCae")
       
   286   };
       
   287 __ASSERT_COMPILE( (sizeof(KCameraParamNames)/sizeof(TUint16*)) == ECameraParamCount );
       
   288 
       
   289 const TUint16* const KCameraSettingNames[] =
       
   290   {
       
   291   (const TUint16* const)_S16("ECameraSettingNone"),
       
   292   (const TUint16* const)_S16("ECameraSettingQualityFactor"),
       
   293   (const TUint16* const)_S16("ECameraSettingFlash"),
       
   294   (const TUint16* const)_S16("ECameraSettingExposure"),
       
   295   (const TUint16* const)_S16("ECameraSettingLightSensitivity"),
       
   296   (const TUint16* const)_S16("ECameraSettingWhiteBalance"),
       
   297   (const TUint16* const)_S16("ECameraSettingColourEffect"),
       
   298   (const TUint16* const)_S16("ECameraSettingBrightness"),
       
   299   (const TUint16* const)_S16("ECameraSettingContrast"),
       
   300   (const TUint16* const)_S16("ECameraSettingSharpness"),
       
   301   (const TUint16* const)_S16("ECameraUserSceneSettingFlash"),
       
   302   (const TUint16* const)_S16("ECameraUserSceneSettingExposure"),
       
   303   (const TUint16* const)_S16("ECameraUserSceneSettingLightSensitivity"),
       
   304   (const TUint16* const)_S16("ECameraUserSceneSettingWhiteBalance"),
       
   305   (const TUint16* const)_S16("ECameraUserSceneSettingColourEffect"),
       
   306   (const TUint16* const)_S16("ECameraUserSceneSettingBrightness"),
       
   307   (const TUint16* const)_S16("ECameraUserSceneSettingContrast"),
       
   308   (const TUint16* const)_S16("ECameraUserSceneSettingSharpness"),
       
   309   (const TUint16* const)_S16("ECameraSettingDigitalZoom"),
       
   310   (const TUint16* const)_S16("ECameraSettingOpticalZoom"),
       
   311   (const TUint16* const)_S16("ECameraSettingFocusRange"),
       
   312   (const TUint16* const)_S16("ECameraSettingStabilization"),
       
   313   (const TUint16* const)_S16("ECameraSettingFlickerCancel"),
       
   314   (const TUint16* const)_S16("ECameraSettingOrientation"),
       
   315   (const TUint16* const)_S16("ECameraSettingAudioMute"),
       
   316   (const TUint16* const)_S16("ECameraSettingContAF"),  
       
   317   (const TUint16* const)_S16("ECameraSettingFileMaxSize"),
       
   318   (const TUint16* const)_S16("ECameraSettingFileName"),
       
   319   (const TUint16* const)_S16("ECameraSettingCaptureLimit"),
       
   320   (const TUint16* const)_S16("ECameraSettingFacetracking")
       
   321   };  
       
   322 __ASSERT_COMPILE( (sizeof(KCameraSettingNames)/sizeof(TUint16*)) == ECameraSettingCount );
       
   323 
       
   324 #endif  
       
   325   // -------------------------------------------------------  
       
   326   } // namespace
       
   327 
       
   328 // ===========================================================================
       
   329 #endif // CAM_CAMERACONTROLLERSETTINGS_H
       
   330 
       
   331 // end of file