|
|
|
@ -41,7 +41,8 @@ Parameters::Parameters(int cameraId,
|
|
|
|
|
int cameraFacing) :
|
|
|
|
|
cameraId(cameraId),
|
|
|
|
|
cameraFacing(cameraFacing),
|
|
|
|
|
info(NULL) {
|
|
|
|
|
info(NULL),
|
|
|
|
|
mDefaultSceneMode(ANDROID_CONTROL_SCENE_MODE_DISABLED) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Parameters::~Parameters() {
|
|
|
|
@ -557,6 +558,10 @@ status_t Parameters::initialize(const CameraMetadata *info, int deviceVersion) {
|
|
|
|
|
noSceneModes = true;
|
|
|
|
|
break;
|
|
|
|
|
case ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY:
|
|
|
|
|
// Face priority can be used as alternate default if supported.
|
|
|
|
|
// Per API contract it shouldn't override the user set flash,
|
|
|
|
|
// white balance and focus modes.
|
|
|
|
|
mDefaultSceneMode = availableSceneModes.data.u8[i];
|
|
|
|
|
// Not in old API
|
|
|
|
|
addComma = false;
|
|
|
|
|
break;
|
|
|
|
@ -1760,7 +1765,7 @@ status_t Parameters::set(const String8& paramString) {
|
|
|
|
|
|
|
|
|
|
// SCENE_MODE
|
|
|
|
|
validatedParams.sceneMode = sceneModeStringToEnum(
|
|
|
|
|
newParams.get(CameraParameters::KEY_SCENE_MODE) );
|
|
|
|
|
newParams.get(CameraParameters::KEY_SCENE_MODE), mDefaultSceneMode);
|
|
|
|
|
if (validatedParams.sceneMode != sceneMode &&
|
|
|
|
|
validatedParams.sceneMode !=
|
|
|
|
|
ANDROID_CONTROL_SCENE_MODE_DISABLED) {
|
|
|
|
@ -1778,7 +1783,7 @@ status_t Parameters::set(const String8& paramString) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bool sceneModeSet =
|
|
|
|
|
validatedParams.sceneMode != ANDROID_CONTROL_SCENE_MODE_DISABLED;
|
|
|
|
|
validatedParams.sceneMode != mDefaultSceneMode;
|
|
|
|
|
|
|
|
|
|
// FLASH_MODE
|
|
|
|
|
if (sceneModeSet) {
|
|
|
|
@ -2157,7 +2162,7 @@ status_t Parameters::updateRequest(CameraMetadata *request) const {
|
|
|
|
|
uint8_t reqSceneMode =
|
|
|
|
|
sceneModeActive ? sceneMode :
|
|
|
|
|
enableFaceDetect ? (uint8_t)ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY :
|
|
|
|
|
(uint8_t)ANDROID_CONTROL_SCENE_MODE_DISABLED;
|
|
|
|
|
mDefaultSceneMode;
|
|
|
|
|
res = request->update(ANDROID_CONTROL_SCENE_MODE,
|
|
|
|
|
&reqSceneMode, 1);
|
|
|
|
|
if (res != OK) return res;
|
|
|
|
@ -2589,12 +2594,12 @@ int Parameters::abModeStringToEnum(const char *abMode) {
|
|
|
|
|
-1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int Parameters::sceneModeStringToEnum(const char *sceneMode) {
|
|
|
|
|
int Parameters::sceneModeStringToEnum(const char *sceneMode, uint8_t defaultSceneMode) {
|
|
|
|
|
return
|
|
|
|
|
!sceneMode ?
|
|
|
|
|
ANDROID_CONTROL_SCENE_MODE_DISABLED :
|
|
|
|
|
defaultSceneMode :
|
|
|
|
|
!strcmp(sceneMode, CameraParameters::SCENE_MODE_AUTO) ?
|
|
|
|
|
ANDROID_CONTROL_SCENE_MODE_DISABLED :
|
|
|
|
|
defaultSceneMode :
|
|
|
|
|
!strcmp(sceneMode, CameraParameters::SCENE_MODE_ACTION) ?
|
|
|
|
|
ANDROID_CONTROL_SCENE_MODE_ACTION :
|
|
|
|
|
!strcmp(sceneMode, CameraParameters::SCENE_MODE_PORTRAIT) ?
|
|
|
|
|