summaryrefslogtreecommitdiffstats
path: root/libcamera
diff options
context:
space:
mode:
authorJeong-Seok Yang <jseok.yang@samsung.com>2010-10-20 01:03:57 +0900
committerMaarten Hooft <mthooft@google.com>2010-10-24 14:24:54 -0700
commit0617b242ae3f1779981919a2d8456234866b0154 (patch)
treeda35cc821811c043243adb06c8c795a8dba36151 /libcamera
parentd4cc9f0ff9c4985dcd7bda608de72df1601d8ea8 (diff)
downloaddevice_samsung_crespo-0617b242ae3f1779981919a2d8456234866b0154.zip
device_samsung_crespo-0617b242ae3f1779981919a2d8456234866b0154.tar.gz
device_samsung_crespo-0617b242ae3f1779981919a2d8456234866b0154.tar.bz2
libcamera: Add torch mode of flash
for supporting torch mode of flash fix: bugs 3064986 Change-Id: I7b5f822c232635640be7156b918b065623e04319 Signed-off-by: Jeong-Seok Yang <jseok.yang@samsung.com>
Diffstat (limited to 'libcamera')
-rw-r--r--libcamera/SecCamera.cpp3
-rw-r--r--libcamera/SecCameraHWInterface.cpp4
2 files changed, 7 insertions, 0 deletions
diff --git a/libcamera/SecCamera.cpp b/libcamera/SecCamera.cpp
index 93450b1..f3267b1 100644
--- a/libcamera/SecCamera.cpp
+++ b/libcamera/SecCamera.cpp
@@ -1009,6 +1009,9 @@ int SecCamera::stopPreview(void)
/* if auto focus wasn't complete by now, stop it */
fimc_v4l2_s_ctrl(m_cam_fd, V4L2_CID_CAMERA_SET_AUTO_FOCUS, AUTO_FOCUS_OFF);
+ if (m_params->flash_mode == FLASH_MODE_TORCH)
+ setFlashMode(FLASH_MODE_OFF);
+
#ifdef ENABLE_HDMI_DISPLAY
hdmi_deinitialize();
hdmi_gl_streamon(0);
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp
index 94b1a5d..f5e79a4 100644
--- a/libcamera/SecCameraHWInterface.cpp
+++ b/libcamera/SecCameraHWInterface.cpp
@@ -268,6 +268,8 @@ void CameraHardwareSec::initDefaultParameters(int cameraId)
parameterString.append(CameraParameters::FLASH_MODE_OFF);
parameterString.append(",");
parameterString.append(CameraParameters::FLASH_MODE_AUTO);
+ parameterString.append(",");
+ parameterString.append(CameraParameters::FLASH_MODE_TORCH);
p.set(CameraParameters::KEY_SUPPORTED_FLASH_MODES,
parameterString.string());
p.set(CameraParameters::KEY_FLASH_MODE,
@@ -1943,6 +1945,8 @@ status_t CameraHardwareSec::setParameters(const CameraParameters& params)
new_flash_mode = FLASH_MODE_AUTO;
else if (!strcmp(new_flash_mode_str, CameraParameters::FLASH_MODE_ON))
new_flash_mode = FLASH_MODE_ON;
+ else if (!strcmp(new_flash_mode_str, CameraParameters::FLASH_MODE_TORCH))
+ new_flash_mode = FLASH_MODE_TORCH;
else {
LOGE("%s::unmatched flash_mode(%s)", __func__, new_flash_mode_str); //red-eye
ret = UNKNOWN_ERROR;