static const int _RELOAD_FOCUS_MODE = 0x1 << 21;
static const int _RELOAD_ZERO_SHUTTER_LAG = 0x1 << 22;
static const int _RELOAD_METERING_MODE = 0x1 << 23;
-static const int _RELOAD_SCENE_MODE = 0x1 << 24;
+static const int _RELOAD_SCENE_MODE_SET = 0x1 << 24;
static const int _RELOAD_EXTRA = 0x1 << 25;
+static const int _RELOAD_SCEN_MODE_OFF = _RELOAD_BRIGHTNESS | _RELOAD_WB |_RELOAD_ISO | _RELOAD_METERING_MODE | _RELOAD_FOCUS_MODE | _RELOAD_FLASH;
+
static const int _PREVIEW_PRE_PROCESSING = 0x01;
static const int _PREVIEW_POST_PROCESSING = 0x01 << 1;
// re-configuration for new camera handle. active conf.
if (__sceneMode == CAMERA_SCENE_OFF)
{
- r = ReloadConfiguration(_RELOAD_BRIGHTNESS | _RELOAD_WB | _RELOAD_ISO | _RELOAD_METERING_MODE | _RELOAD_FLASH);
+ r = ReloadConfiguration(_RELOAD_SCEN_MODE_OFF);
+ SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] camera reload configuration failed", GetErrorMessage(r));
+ }
+ else
+ {
+ r = ReloadConfiguration(_RELOAD_SCENE_MODE_SET);
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] camera reload configuration failed", GetErrorMessage(r));
}
| _RELOAD_PREVIEW_RESOLUTION | _RELOAD_CAPTURE_RESOLUTION | _RELOAD_PREVIEW_FORMAT
| _RELOAD_CAPTURE_FORMAT | _RELOAD_FPS | _RELOAD_EFFECT | _RELOAD_QUALITY
| _RELOAD_EXIF_ORIENTATION | _RELOAD_EXIF_GPS_COORDINATES
- | _RELOAD_FLIP | _RELOAD_PREVIEW_ROTATION | _RELOAD_SCENE_MODE
+ | _RELOAD_FLIP | _RELOAD_PREVIEW_ROTATION
| _RELOAD_EXTRA);
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] camera reload configuration failed", GetErrorMessage(r));
return r;
{
if(__sceneMode != CAMERA_SCENE_OFF)
{//because this attribute is related to scene mode.
- r = SetSceneModeAttr(CAMERA_SCENE_OFF);
- SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating. ResetSceneMode", GetErrorMessage(r));
+ r = SetSceneModeOff(_RELOAD_SCEN_MODE_OFF & (~_RELOAD_BRIGHTNESS));
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
}
operation = (__selection == CAMERA_PRIMARY ? _COP_PRIMARY_BRIGHTNESS : _COP_SECONDARY_BRIGHTNESS);
r = SetProperty(operation, _MIN_PROPERTY, _MAX_PROPERTY, brightness);
if(__sceneMode != CAMERA_SCENE_OFF)
{//because this attribute is related to scene mode.
- r = SetSceneModeAttr(CAMERA_SCENE_OFF);
- SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating. ResetSceneMode", GetErrorMessage(r));
+ r = SetSceneModeOff(_RELOAD_SCEN_MODE_OFF & (~_RELOAD_FLASH));
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
}
r = _CameraUtil::GetMmFlashMode(flashMode, attr);
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating. flashMode:%d", GetErrorMessage(r), flashMode);
if(__sceneMode != CAMERA_SCENE_OFF)
{//because this attribute is related to scene mode.
- r = SetSceneModeAttr(CAMERA_SCENE_OFF);
- SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating. ResetSceneMode", GetErrorMessage(r));
+ r = SetSceneModeOff(_RELOAD_SCEN_MODE_OFF & (~_RELOAD_WB));
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
}
camera_attr_whitebalance_e attr = ::CAMERA_ATTR_WHITE_BALANCE_NONE;
r = _CameraUtil::GetMmWhiteBalance(whiteBalance, attr);
if(__sceneMode != CAMERA_SCENE_OFF)
{//because this attribute is related to scene mode.
- r = SetSceneModeAttr(CAMERA_SCENE_OFF);
- SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating. ResetSceneMode", GetErrorMessage(r));
+ r = SetSceneModeOff(_RELOAD_SCEN_MODE_OFF & (~_RELOAD_FOCUS_MODE));
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
}
// Set the __focusCallback to false not to call the focus callback in case of CAF.
r = ChangeFocusModeTo(__focusMode, focusMode);
if(__sceneMode != CAMERA_SCENE_OFF)
{//because this attribute is related to scene mode.
- r = SetSceneModeAttr(CAMERA_SCENE_OFF);
- SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating. ResetSceneMode", GetErrorMessage(r));
+ r = SetSceneModeOff(_RELOAD_SCEN_MODE_OFF & (~_RELOAD_ISO));
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
}
r = _CameraUtil::GetMmIso(isoLevel, attr);
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating. isoLevel :%d", GetErrorMessage(r), isoLevel);
if(__sceneMode != CAMERA_SCENE_OFF)
{//because this attribute is related to scene mode.
- r = SetSceneModeAttr(CAMERA_SCENE_OFF);
- SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating. ResetSceneMode", GetErrorMessage(r));
+ r = SetSceneModeOff(_RELOAD_SCEN_MODE_OFF & (~_RELOAD_METERING_MODE));
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
}
r = _CameraUtil::GetMmMeteringMode(meteringMode, attr);
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating. rotation:%d", GetErrorMessage(r), meteringMode);
SysTryCatch(NID_MEDIA, pSceneModeList->Contains(Integer(sceneMode))
, r = E_UNSUPPORTED_TYPE, E_UNSUPPORTED_TYPE, "[E_UNSUPPORTED_TYPE]. This mode(%d) is not supported in the device.\n", sceneMode);
- r = _CameraUtil::GetMmSceneMode(sceneMode, attr);
- SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating. sceneMode:%d", GetErrorMessage(r), sceneMode);
-
- err = camera_attr_set_scene_mode(__handle, attr);
- r = ConvertResult(err);
- SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] camera scene mode failed. sceneMode:%d", GetErrorMessage(r), sceneMode);
-
if ((sceneMode == CAMERA_SCENE_OFF) && (__sceneMode != CAMERA_SCENE_OFF))
{
- __sceneMode = sceneMode;
- r = ReloadConfiguration(_RELOAD_BRIGHTNESS | _RELOAD_WB | _RELOAD_ISO | _RELOAD_METERING_MODE | _RELOAD_FOCUS_MODE | _RELOAD_FLASH);
+ r = SetSceneModeOff(_RELOAD_SCEN_MODE_OFF);
SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating", GetErrorMessage(r));
+ __sceneMode = CAMERA_SCENE_OFF;
}
else
{
+ r = _CameraUtil::GetMmSceneMode(sceneMode, attr);
+ SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating. sceneMode:%d", GetErrorMessage(r), sceneMode);
+
+ err = camera_attr_set_scene_mode(__handle, attr);
+ r = ConvertResult(err);
+ SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] camera scene mode failed. sceneMode:%d", GetErrorMessage(r), sceneMode);
__sceneMode = sceneMode;
}
CATCH:
}
result
-_CameraImpl::SetSceneModeAttr(CameraSceneMode sceneMode)
+_CameraImpl::SetSceneModeOff(int reload)
{
result r = E_SUCCESS;
int err = MM_SUCCESS;
camera_attr_scene_mode_e attr = ::CAMERA_ATTR_SCENE_MODE_NORMAL;
- r = _CameraUtil::GetMmSceneMode(sceneMode, attr);
- SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating. sceneMode:%d", GetErrorMessage(r), sceneMode);
+ r = _CameraUtil::GetMmSceneMode(CAMERA_SCENE_OFF, attr);
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r));
err = camera_attr_set_scene_mode(__handle, attr);
r = ConvertResult(err);
- SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] camera scene mode failed. sceneMode:%d", GetErrorMessage(r), sceneMode);
- __sceneMode = sceneMode;
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] CAMERA_SCENE_OFF setting failed.", GetErrorMessage(r));
- if(sceneMode == CAMERA_SCENE_OFF)
- {
- r = ReloadConfiguration(_RELOAD_BRIGHTNESS | _RELOAD_WB | _RELOAD_ISO | _RELOAD_METERING_MODE | _RELOAD_FOCUS_MODE | _RELOAD_FLASH);
- SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating", GetErrorMessage(r));
- }
-CATCH:
+ r = ReloadConfiguration(reload);
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating", GetErrorMessage(r));
+
+ __sceneMode = CAMERA_SCENE_OFF;
return r;
}
SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Propagating. metering:%d", GetErrorMessage(r), __meteringMode);
}
}
- if (reload & _RELOAD_SCENE_MODE)
+ if (reload & _RELOAD_SCENE_MODE_SET)
{
_CameraOperationType operation = _COP_NONE;
operation = (__selection == CAMERA_PRIMARY ? _COP_PRIMARY_SCENE_MODE : _COP_SECONDARY_SCENE_MODE);
if (__sceneMode == CAMERA_SCENE_OFF)
{
- r = ReloadConfiguration(_RELOAD_BRIGHTNESS | _RELOAD_WB | _RELOAD_ISO | _RELOAD_METERING_MODE | _RELOAD_FLASH | _RELOAD_FOCUS_MODE );
+ r = ReloadConfiguration(_RELOAD_SCEN_MODE_OFF);
+ SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating", GetErrorMessage(r));
+ }
+ else
+ {
+ r = ReloadConfiguration(_RELOAD_SCENE_MODE_SET);
SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating", GetErrorMessage(r));
}
r = ReloadConfiguration(_RELOAD_CONTRAST | _RELOAD_EXPOSURE | _RELOAD_MAX_ZOOM_LEVEL | _RELOAD_ZOOM_LEVEL | _RELOAD_EFFECT
| _RELOAD_QUALITY | _RELOAD_EXIF_ORIENTATION | _RELOAD_EXIF_GPS_COORDINATES
- | _RELOAD_SCENE_MODE | _RELOAD_EXTRA);
+ | _RELOAD_EXTRA);
SysTryReturn(NID_MEDIA, r == E_SUCCESS, r, r, "[%s] Propagating", GetErrorMessage(r));
SysLog(NID_MEDIA, "Post mode changed operation succeeded.");