summaryrefslogtreecommitdiffstats
path: root/libcamera/SecCameraHWInterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcamera/SecCameraHWInterface.cpp')
-rwxr-xr-xlibcamera/SecCameraHWInterface.cpp41
1 files changed, 39 insertions, 2 deletions
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp
index fd25127..9a91ca6 100755
--- a/libcamera/SecCameraHWInterface.cpp
+++ b/libcamera/SecCameraHWInterface.cpp
@@ -238,6 +238,7 @@ void CameraHardwareSec::initDefaultParameters(int cameraId)
p.set(CameraParameters::KEY_SUPPORTED_EFFECTS, parameterString.string());
if (cameraId == SecCamera::CAMERA_ID_BACK) {
+#ifdef HAVE_FLASH
parameterString = CameraParameters::FLASH_MODE_ON;
parameterString.append(",");
parameterString.append(CameraParameters::FLASH_MODE_OFF);
@@ -249,6 +250,7 @@ void CameraHardwareSec::initDefaultParameters(int cameraId)
parameterString.string());
p.set(CameraParameters::KEY_FLASH_MODE,
CameraParameters::FLASH_MODE_OFF);
+#endif
parameterString = CameraParameters::SCENE_MODE_AUTO;
parameterString.append(",");
@@ -271,8 +273,9 @@ void CameraHardwareSec::initDefaultParameters(int cameraId)
parameterString.append(CameraParameters::SCENE_MODE_PARTY);
parameterString.append(",");
parameterString.append(CameraParameters::SCENE_MODE_CANDLELIGHT);
- p.set(CameraParameters::KEY_SUPPORTED_SCENE_MODES,
- parameterString.string());
+ // TODO: CE147 doesn't understand scene mode
+ //p.set(CameraParameters::KEY_SUPPORTED_SCENE_MODES,
+ // parameterString.string());
p.set(CameraParameters::KEY_SCENE_MODE,
CameraParameters::SCENE_MODE_AUTO);
@@ -1613,7 +1616,9 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
if (mSecCamera->getCameraId() == SecCamera::CAMERA_ID_BACK) {
int new_scene_mode = -1;
+#ifdef HAVE_FLASH
const char *new_flash_mode_str = params.get(CameraParameters::KEY_FLASH_MODE);
+#endif
// fps range is (15000,30000) by default.
mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(15000,30000)");
@@ -1622,64 +1627,86 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
if (!strcmp(new_scene_mode_str, CameraParameters::SCENE_MODE_AUTO)) {
new_scene_mode = SCENE_MODE_NONE;
+#ifdef HAVE_FLASH
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "on,off,auto,torch");
+#endif
} else {
// defaults for non-auto scene modes
if (mSecCamera->getCameraId() == SecCamera::CAMERA_ID_BACK) {
new_focus_mode_str = CameraParameters::FOCUS_MODE_AUTO;
}
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
+#endif
if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_PORTRAIT)) {
new_scene_mode = SCENE_MODE_PORTRAIT;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_AUTO;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "auto");
+#endif
} else if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_LANDSCAPE)) {
new_scene_mode = SCENE_MODE_LANDSCAPE;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "off");
+#endif
} else if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_SPORTS)) {
new_scene_mode = SCENE_MODE_SPORTS;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "off");
+#endif
} else if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_PARTY)) {
new_scene_mode = SCENE_MODE_PARTY_INDOOR;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_AUTO;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "auto");
+#endif
} else if ((!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_BEACH)) ||
(!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_SNOW))) {
new_scene_mode = SCENE_MODE_BEACH_SNOW;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "off");
+#endif
} else if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_SUNSET)) {
new_scene_mode = SCENE_MODE_SUNSET;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "off");
+#endif
} else if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_NIGHT)) {
new_scene_mode = SCENE_MODE_NIGHTSHOT;
mParameters.set(CameraParameters::KEY_SUPPORTED_PREVIEW_FPS_RANGE, "(4000,30000)");
mParameters.set(CameraParameters::KEY_PREVIEW_FPS_RANGE,
"4000,30000");
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "off");
+#endif
} else if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_FIREWORKS)) {
new_scene_mode = SCENE_MODE_FIREWORKS;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "off");
+#endif
} else if (!strcmp(new_scene_mode_str,
CameraParameters::SCENE_MODE_CANDLELIGHT)) {
new_scene_mode = SCENE_MODE_CANDLE_LIGHT;
+#ifdef HAVE_FLASH
new_flash_mode_str = CameraParameters::FLASH_MODE_OFF;
mParameters.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES, "off");
+#endif
} else {
LOGE("%s::unmatched scene_mode(%s)",
__func__, new_scene_mode_str); //action, night-portrait, theatre, steadyphoto
@@ -1724,6 +1751,7 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
}
}
+#ifdef HAVE_FLASH
// flash..
if (new_flash_mode_str != NULL) {
int new_flash_mode = -1;
@@ -1749,6 +1777,7 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
}
}
}
+#endif
// scene..
if (0 <= new_scene_mode) {
@@ -2022,6 +2051,12 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
ret = UNKNOWN_ERROR;
}
}
+
+ if (mSecCamera->setBatchReflection()) {
+ LOGE("ERR(%s):Fail on mSecCamera->setBatchReflection()", __func__);
+ ret = UNKNOWN_ERROR;
+ }
+
LOGV("%s return ret = %d", __func__, ret);
return ret;
@@ -2113,10 +2148,12 @@ static CameraInfo sCameraInfo[] = {
CAMERA_FACING_BACK,
90, /* orientation */
},
+#ifdef FFC_PRESENT
{
CAMERA_FACING_FRONT,
270, /* orientation */
}
+#endif
};
/** Close this device */