camerauis/cameraapp/generic/src/cameracontroller/camsettingconversion.cpp
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:  Setting conversion utility class implementation
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // ===========================================================================
       
    20 // Includes
       
    21 #include "camcameracontrollerflags.hrh" // Keep first
       
    22 
       
    23 #include <ecam.h>
       
    24 #ifdef CAMERAAPP_CAPI_V2_ADV
       
    25   #include <ecamadvsettingsuids.hrh>
       
    26 #endif
       
    27 #include "camcameracontroller.pan"
       
    28 #include "CamSettings.hrh"
       
    29 #include "CamSettingsInternal.hrh"
       
    30 #include "camcameracontrollersettings.h"
       
    31 #include "camsettingconversion.h"
       
    32 
       
    33 
       
    34 using namespace NCamCameraController;
       
    35 
       
    36 // ===========================================================================
       
    37 // Class methods
       
    38 
       
    39 // ---------------------------------------------------------------------------
       
    40 // Map2CameraWb
       
    41 // ---------------------------------------------------------------------------
       
    42 //
       
    43 CCamera::TWhiteBalance
       
    44 CCamSettingConversion::Map2CameraWb( const TCamWhiteBalanceId& aWbId )
       
    45   {
       
    46   CCamera::TWhiteBalance wb( CCamera::EWBAuto );
       
    47   switch( aWbId )
       
    48     {
       
    49     case ECamWhiteBalanceAWB:         wb = CCamera::EWBAuto;        break;
       
    50     case ECamWhiteBalanceDaylight:    wb = CCamera::EWBDaylight;    break;
       
    51     case ECamWhiteBalanceCloudy:      wb = CCamera::EWBCloudy;      break;
       
    52     case ECamWhiteBalanceTungsten:    wb = CCamera::EWBTungsten;    break;
       
    53     case ECamWhiteBalanceFlourescent: wb = CCamera::EWBFluorescent; break;
       
    54 /*
       
    55     case ECamWhiteBalanceFlash:       wb = CCamera::EWBFlash;       break;
       
    56     case ECamWhiteBalanceSnow:        wb = CCamera::EWBSnow;        break;
       
    57     case ECamWhiteBalanceBeach:       wb = CCamera::EWBBeach;       break;
       
    58     case ECamWhiteBalanceManual:      wb = CCamera::EWBManual;      break;
       
    59     case ECamWhiteBalanceShade:       wb = CCamera::EWBShade;       break;
       
    60 */
       
    61     default:                  
       
    62       break;
       
    63     }
       
    64   return wb;
       
    65   }
       
    66 
       
    67 // ---------------------------------------------------------------------------
       
    68 // Map2CameraFlash
       
    69 // ---------------------------------------------------------------------------
       
    70 //
       
    71 CCamera::TFlash
       
    72 CCamSettingConversion::Map2CameraFlash( const TCamFlashId& aFlashId )
       
    73   {
       
    74   CCamera::TFlash flash( CCamera::EFlashAuto );
       
    75   switch ( aFlashId )
       
    76     {
       
    77     case ECamFlashAuto:       flash = CCamera::EFlashAuto;          break;
       
    78     case ECamFlashAntiRedEye: flash = CCamera::EFlashRedEyeReduce;  break;
       
    79     case ECamFlashForced:     flash = CCamera::EFlashForced;        break;
       
    80     case ECamFlashOff:        flash = CCamera::EFlashNone;          break;
       
    81 /*
       
    82     case ECamFlashFill:       flash = CCamera::EFlashFillIn;        break;
       
    83     case ECamFlashSlowFront:  flash = CCamera::EFlashSlowFrontSync; break;
       
    84     case ECamFlashSlowRear:   flash = CCamera::EFlashSlowRearSync;  break;
       
    85     case ECamFlashManual:     flash = CCamera::EFlashManual;        break;
       
    86 */
       
    87     default:                  
       
    88       break;
       
    89     }
       
    90   return flash;
       
    91   }
       
    92 
       
    93 
       
    94 // ---------------------------------------------------------------------------
       
    95 // Map2FlashId
       
    96 // ---------------------------------------------------------------------------
       
    97 //
       
    98 TCamFlashId
       
    99 CCamSettingConversion::Map2FlashId( const CCamera::TFlash& aCameraFlash )
       
   100   {
       
   101   TCamFlashId flashId( ECamFlashAuto );
       
   102 
       
   103   switch( aCameraFlash )
       
   104     {
       
   105     case CCamera::EFlashAuto:         flashId = ECamFlashAuto;       break;
       
   106     case CCamera::EFlashRedEyeReduce: flashId = ECamFlashAntiRedEye; break;
       
   107     case CCamera::EFlashForced:       flashId = ECamFlashForced;     break;
       
   108     case CCamera::EFlashNone:         flashId = ECamFlashOff;        break;
       
   109     default: 
       
   110       break;
       
   111     }
       
   112 
       
   113   return flashId;
       
   114   }
       
   115 
       
   116 
       
   117 
       
   118 
       
   119 // ---------------------------------------------------------------------------
       
   120 // Map2CameraFormat
       
   121 // ---------------------------------------------------------------------------
       
   122 //
       
   123 CCamera::TFormat
       
   124 CCamSettingConversion::Map2CameraFormat( const TDisplayMode& aDisplayMode )
       
   125   {
       
   126   CCamera::TFormat format( CCamera::EFormatFbsBitmapColor16M );
       
   127   switch ( aDisplayMode )
       
   128     {
       
   129     case EColor16MA:       format = CCamera::EFormatFbsBitmapColor16MU;  break;
       
   130     case EColor16MU:       format = CCamera::EFormatFbsBitmapColor16MU;  break;
       
   131     case EColor4K:         format = CCamera::EFormatFbsBitmapColor4K;    break;
       
   132     case EColor16M:        format = CCamera::EFormatFbsBitmapColor16M;   break;
       
   133     case EColor64K:        format = CCamera::EFormatFbsBitmapColor64K;   break;
       
   134   //case EColor256:        format = CCamera::                            break;
       
   135   //case EColor16:         format = CCamera::                            break;
       
   136   //case EGray256:         format = CCamera::                            break;
       
   137   //case EGray16:          format = CCamera::                            break;
       
   138   //case EGray4:           format = CCamera::                            break;
       
   139   //case EGray2:           format = CCamera::                            break;
       
   140     default:                                                             break;
       
   141     }
       
   142   return format;
       
   143   }
       
   144 
       
   145 
       
   146 // ---------------------------------------------------------------------------
       
   147 // Map2CameraExposureMode
       
   148 // ---------------------------------------------------------------------------
       
   149 //
       
   150 CCamera::TExposure
       
   151 CCamSettingConversion::Map2CameraExposureMode( const TCamSceneAEMode& aExpModeId )
       
   152   {
       
   153   CCamera::TExposure expo( CCamera::EExposureAuto );
       
   154 
       
   155   switch ( aExpModeId )
       
   156     {
       
   157     case ECamSceneAEModeAuto:       expo = CCamera::EExposureAuto; break;
       
   158     case ECamSceneAEModeNight:      expo = CCamera::EExposureNight; break;
       
   159     case ECamSceneAEModeBacklight:  expo = CCamera::EExposureBacklight; break;
       
   160     case ECamSceneAEModeCenter:     expo = CCamera::EExposureCenter; break;
       
   161     case ECamSceneAEModeSports:     expo = CCamera::EExposureSport; break;
       
   162     default:
       
   163       break;
       
   164     }
       
   165 
       
   166   return expo;
       
   167   }
       
   168 
       
   169 
       
   170 
       
   171 
       
   172 #ifdef CAMERAAPP_CAPI_V2_IP
       
   173 // ---------------------------------------------------------------------------
       
   174 // Map2CameraEffect
       
   175 // ---------------------------------------------------------------------------
       
   176 //
       
   177 CCamera::CCameraImageProcessing::TEffect
       
   178 CCamSettingConversion::Map2CameraEffect( const TCamColourFilterId& aColourFilterId )
       
   179   {
       
   180   CCamera::CCameraImageProcessing::TEffect effect(
       
   181             CCamera::CCameraImageProcessing::EEffectNone );
       
   182 
       
   183   switch( aColourFilterId )
       
   184     {
       
   185     case ECamColourFilterColour:        effect = CCamera::CCameraImageProcessing::EEffectNone;       break;
       
   186     case ECamColourFilterBlackAndWhite: effect = CCamera::CCameraImageProcessing::EEffectMonochrome; break;
       
   187     case ECamColourFilterSepia:         effect = CCamera::CCameraImageProcessing::EEffectSepia;      break;
       
   188     case ECamColourFilterNegative:      effect = CCamera::CCameraImageProcessing::EEffectNegative;   break;
       
   189     case ECamColourFilterVivid:         effect = CCamera::CCameraImageProcessing::EEffectVivid;      break;
       
   190     default:
       
   191       break;
       
   192     }
       
   193   return effect;
       
   194   }
       
   195 #endif
       
   196 
       
   197 
       
   198 // ---------------------------------------------------------------------------
       
   199 // Map2CameraControllerSettingId
       
   200 // ---------------------------------------------------------------------------
       
   201 //
       
   202 TCamCameraSettingId
       
   203 CCamSettingConversion
       
   204 ::Map2CameraControllerSettingId( const TCamSettingItemIds& aUiSettingId )
       
   205   {
       
   206   switch( aUiSettingId )
       
   207     {
       
   208     // -------------------------------
       
   209     case ECamSettingItemPhotoDigitalZoom: 
       
   210     case ECamSettingItemVideoDigitalZoom:               return ECameraSettingDigitalZoom;
       
   211     // -------------------------------
       
   212     case ECamSettingItemPhotoCompression:               return ECameraSettingQualityFactor;
       
   213     // -------------------------------
       
   214     case ECamSettingItemDynamicPhotoExposure:
       
   215     case ECamSettingItemDynamicVideoExposure:           return ECameraSettingExposure;
       
   216     // -------------------------------
       
   217     case ECamSettingItemUserSceneExposure:              return ECameraUserSceneSettingExposure;
       
   218     // -------------------------------
       
   219     case ECamSettingItemDynamicPhotoWhiteBalance:
       
   220     case ECamSettingItemDynamicVideoWhiteBalance:       return ECameraSettingWhiteBalance;
       
   221     // -------------------------------
       
   222     case ECamSettingItemUserSceneWhitebalance:          return ECameraUserSceneSettingWhiteBalance;
       
   223     // -------------------------------
       
   224     case ECamSettingItemDynamicPhotoLightSensitivity:
       
   225     case ECamSettingItemDynamicVideoLightSensitivity:   return ECameraSettingLightSensitivity;
       
   226     // -------------------------------
       
   227     case ECamSettingItemUserSceneLightSensitivity:      return ECameraUserSceneSettingLightSensitivity;
       
   228     // -------------------------------
       
   229     case ECamSettingItemFaceTracking:                   return ECameraSettingFacetracking;
       
   230     // -------------------------------
       
   231     case ECamSettingItemDynamicPhotoFlash:
       
   232     case ECamSettingItemDynamicVideoFlash:              return ECameraSettingFlash;
       
   233     // -------------------------------
       
   234     case ECamSettingItemUserSceneFlash:                 return ECameraUserSceneSettingFlash;
       
   235     // -------------------------------
       
   236     case ECamSettingItemDynamicPhotoBrightness:
       
   237     case ECamSettingItemDynamicVideoBrightness:         return ECameraSettingBrightness;
       
   238     // -------------------------------
       
   239     case ECamSettingItemUserSceneBrightness:            return ECameraUserSceneSettingBrightness;
       
   240     // -------------------------------
       
   241     case ECamSettingItemDynamicPhotoContrast:
       
   242     case ECamSettingItemDynamicVideoContrast:           return ECameraSettingContrast;
       
   243     // -------------------------------
       
   244     case ECamSettingItemUserSceneContrast:              return ECameraUserSceneSettingContrast;
       
   245     // -------------------------------
       
   246     case ECamSettingItemDynamicPhotoImageSharpness:     return ECameraSettingSharpness;
       
   247     /* no video sharpness setting item available */
       
   248     case ECamSettingItemUserSceneImageSharpness:        return ECameraUserSceneSettingSharpness;
       
   249     // -------------------------------
       
   250     case ECamSettingItemDynamicPhotoColourFilter:
       
   251     case ECamSettingItemDynamicVideoColourFilter:       return ECameraSettingColourEffect;
       
   252     // -------------------------------
       
   253     case ECamSettingItemUserSceneColourFilter:          return ECameraUserSceneSettingColourEffect;
       
   254     // -------------------------------
       
   255     case ECamSettingItemVideoAudioRec:                  return ECameraSettingAudioMute;
       
   256     // -------------------------------
       
   257     case ECamSettingItemContinuousAutofocus:            return ECameraSettingContAF;  
       
   258     // -------------------------------
       
   259     case ECamSettingItemVideoClipLength:                return ECameraSettingFileMaxSize;
       
   260     // -------------------------------
       
   261     case ECamSettingItemVideoNameBase:
       
   262     case ECamSettingItemVideoNameBaseType:
       
   263     case ECamSettingItemVideoNumber:                    return ECameraSettingFileName;
       
   264     // -------------------------------
       
   265     case ECamSettingItemVideoStab:                      return ECameraSettingStabilization;
       
   266     case ECamSettingItemFlickerCancel:                  return ECameraSettingFlickerCancel;
       
   267     // -------------------------------
       
   268     // Not supported
       
   269     case ECamSettingItemDynamicSelfTimer:
       
   270     case ECamSettingItemDynamicPhotoColourSaturation:
       
   271     case ECamSettingItemDynamicVideoColourSaturation:
       
   272     case ECamSettingItemUserSceneColourSaturation:
       
   273     default:                                            return ECameraSettingNone;
       
   274     // -------------------------------
       
   275     }
       
   276   }
       
   277 
       
   278 
       
   279 #if defined( CAMERAAPP_CAPI_V2_ADV ) || defined( CAMERAAPP_CAPI_V2_IP )
       
   280 // ---------------------------------------------------------------------------
       
   281 // MapCameraSetting2EventUidValue
       
   282 // ---------------------------------------------------------------------------
       
   283 //
       
   284 TInt
       
   285 CCamSettingConversion::Map2EventUidValue( const TCamCameraSettingId& aSettingId )
       
   286   {
       
   287   TInt uid( 0 );
       
   288 
       
   289   switch( aSettingId )
       
   290     {
       
   291     case ECameraSettingFlash:            uid = KUidECamEventCameraSettingFlashModeUidValue;                   break;
       
   292     case ECameraSettingExposure:         uid = KUidECamEventCameraSettingExposureCompensationStepUidValue;    break;
       
   293     case ECameraSettingLightSensitivity: uid = KUidECamEventCameraSettingIsoRateTypeUidValue;                 break;
       
   294     case ECameraSettingWhiteBalance:     uid = KUidECamEventCameraSettingWhiteBalanceModeUidValue;            break;
       
   295     case ECameraSettingColourEffect:     uid = KUidECamEventImageProcessingEffectUidValue;                    break;
       
   296     case ECameraSettingSharpness:        uid = KUidECamEventImageProcessingAdjustSharpnessUidValue;           break;
       
   297  
       
   298     case ECameraSettingDigitalZoom:      uid = KUidECamEventCameraSettingDigitalZoomUidValue;                 break;
       
   299     case ECameraSettingOpticalZoom:      uid = KUidECamEventCameraSettingOpticalZoomUidValue;                 break;
       
   300 
       
   301     case ECameraSettingFocusRange:       uid = KUidECamEventCameraSettingFocusRange2UidValue;                 break;
       
   302     case ECameraSettingStabilization:    uid = KUidECamEventSettingsStabilizationAlgorithmComplexityUidValue; break;
       
   303 
       
   304 
       
   305     // case ECameraSettingAudioMute:
       
   306     // case ECameraSettingFileMaxSize:
       
   307     // case ECameraSettingFileName:    
       
   308     // case ECameraSettingContrast:   
       
   309     // case ECameraSettingBrightness: 
       
   310     // case ECameraSettingQualityFactor
       
   311     // case ECameraSettingNone
       
   312     default:
       
   313       break;
       
   314     }
       
   315 
       
   316   return uid;
       
   317   }
       
   318 
       
   319 
       
   320 // ---------------------------------------------------------------------------
       
   321 // Map2CameraSetting
       
   322 // ---------------------------------------------------------------------------
       
   323 //
       
   324 TCamCameraSettingId
       
   325 CCamSettingConversion::Map2CameraSetting( TInt aUidValue )
       
   326   {
       
   327   TCamCameraSettingId id( ECameraSettingNone );
       
   328 
       
   329   switch( aUidValue )
       
   330     {
       
   331     case KUidECamEventCameraSettingFlashModeUidValue:                   id = ECameraSettingFlash;            break;
       
   332     case KUidECamEventCameraSettingExposureCompensationStepUidValue:    id = ECameraSettingExposure;         break;
       
   333     case KUidECamEventCameraSettingIsoRateTypeUidValue:                 id = ECameraSettingLightSensitivity; break;
       
   334     case KUidECamEventCameraSettingWhiteBalanceModeUidValue:            id = ECameraSettingWhiteBalance;     break;
       
   335     case KUidECamEventImageProcessingEffectUidValue:                    id = ECameraSettingColourEffect;     break;
       
   336     case KUidECamEventImageProcessingAdjustSharpnessUidValue:           id = ECameraSettingSharpness;        break;
       
   337     case KUidECamEventCameraSettingDigitalZoomUidValue:                 id = ECameraSettingDigitalZoom;      break;
       
   338     case KUidECamEventCameraSettingOpticalZoomUidValue:                 id = ECameraSettingOpticalZoom;      break;
       
   339     case KUidECamEventCameraSettingFocusRange2UidValue:                 id = ECameraSettingFocusRange;       break;
       
   340     case KUidECamEventSettingsStabilizationAlgorithmComplexityUidValue: id = ECameraSettingStabilization;    break;
       
   341     default:
       
   342       break;
       
   343     }
       
   344 
       
   345   return id;
       
   346   }
       
   347 
       
   348 // ---------------------------------------------------------------------------
       
   349 // CCamSettingConversion::Map2CameraAutofocus
       
   350 // ---------------------------------------------------------------------------
       
   351 //
       
   352 CCamera::CCameraAdvancedSettings::TFocusRange
       
   353 CCamSettingConversion::Map2CameraAutofocus( const TCamSceneAFMode& aAfMode )
       
   354   {
       
   355   switch( aAfMode )
       
   356     {
       
   357     case ECamSceneAFModeMacro:
       
   358       return CCamera::CCameraAdvancedSettings::EFocusRangeMacro;
       
   359     case ECamSceneAFPortrait:
       
   360       return CCamera::CCameraAdvancedSettings::EFocusRangePortrait;
       
   361     case ECamSceneAFModeInfinity:
       
   362       return CCamera::CCameraAdvancedSettings::EFocusRangeInfinite;
       
   363     case ECamSceneAFModeHyperfocal:
       
   364       return CCamera::CCameraAdvancedSettings::EFocusRangeHyperfocal;
       
   365       
       
   366     case ECamSceneAFModeContinuous: // Fall through              
       
   367       // Currently no support for continuous auto focus.
       
   368       // This case anyway needs to be handled differently as 
       
   369       // continuous auto focus is not a setting, but autofocus
       
   370       // type given when starting focusing.
       
   371     case ECamSceneAFModeNormal:     // Fall through
       
   372     default:
       
   373       return CCamera::CCameraAdvancedSettings::EFocusRangeAuto;
       
   374     }
       
   375   
       
   376   }
       
   377 
       
   378 #endif // defined( CAMERAAPP_CAPI_V2_ADV ) || defined( CAMERAAPP_CAPI_V2_IP )
       
   379 
       
   380 // ---------------------------------------------------------------------------
       
   381 // CCamSettingConversion::Map2CameraOrientation
       
   382 // ---------------------------------------------------------------------------
       
   383 //
       
   384 MCameraOrientation::TOrientation 
       
   385 CCamSettingConversion::Map2CameraOrientation( 
       
   386     const TCamImageOrientation& aSettingOrientation )
       
   387   {
       
   388   switch( aSettingOrientation )
       
   389     {
       
   390     case ECamOrientation90:   return MCameraOrientation::EOrientation90;
       
   391     case ECamOrientation180:  return MCameraOrientation::EOrientation180;
       
   392     case ECamOrientation270:  return MCameraOrientation::EOrientation270;
       
   393     case ECamOrientation0:    // <<fall through>>
       
   394     default:                  return MCameraOrientation::EOrientation0;
       
   395     }
       
   396   }
       
   397 
       
   398 
       
   399 
       
   400 // ===========================================================================
       
   401 // end of file