diff options
Diffstat (limited to 'libcamera/SecCameraHWInterface.cpp')
-rwxr-xr-x | libcamera/SecCameraHWInterface.cpp | 41 |
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 */ |