diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2012-08-03 13:53:39 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2012-08-10 09:19:18 -0700 |
commit | 174181eec57c963a2a17bd156d81c3f18b3ba75c (patch) | |
tree | 9eea6b8bf3577f1f24d80b5d37d714fe6374a734 /services/camera/libcameraservice/Camera2Device.cpp | |
parent | a59bf2c58311dfc28f46220383d66869e8f3f57f (diff) | |
download | frameworks_av-174181eec57c963a2a17bd156d81c3f18b3ba75c.zip frameworks_av-174181eec57c963a2a17bd156d81c3f18b3ba75c.tar.gz frameworks_av-174181eec57c963a2a17bd156d81c3f18b3ba75c.tar.bz2 |
Camera2: Add trigger support, and implement autofocus
- Add skeletons for all triggering actions into Camera2Device
- Add support for AF triggers to HAL
- Add support for AF notifications from HAL
Bug: 6243944
Change-Id: I21025440849ae41f7083e1dcb72c99f8e5b2d5f7
Diffstat (limited to 'services/camera/libcameraservice/Camera2Device.cpp')
-rw-r--r-- | services/camera/libcameraservice/Camera2Device.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/Camera2Device.cpp b/services/camera/libcameraservice/Camera2Device.cpp index d48c163..a009636 100644 --- a/services/camera/libcameraservice/Camera2Device.cpp +++ b/services/camera/libcameraservice/Camera2Device.cpp @@ -339,6 +339,42 @@ void Camera2Device::notificationCallback(int32_t msg_type, } } +status_t Camera2Device::triggerAutofocus(uint32_t id) { + status_t res; + ALOGV("%s: Triggering autofocus, id %d", __FUNCTION__, id); + res = mDevice->ops->trigger_action(mDevice, + CAMERA2_TRIGGER_AUTOFOCUS, id, 0); + if (res != OK) { + ALOGE("%s: Error triggering autofocus (id %d)", + __FUNCTION__, id); + } + return res; +} + +status_t Camera2Device::triggerCancelAutofocus(uint32_t id) { + status_t res; + ALOGV("%s: Canceling autofocus, id %d", __FUNCTION__, id); + res = mDevice->ops->trigger_action(mDevice, + CAMERA2_TRIGGER_CANCEL_AUTOFOCUS, id, 0); + if (res != OK) { + ALOGE("%s: Error canceling autofocus (id %d)", + __FUNCTION__, id); + } + return res; +} + +status_t Camera2Device::triggerPrecaptureMetering(uint32_t id) { + status_t res; + ALOGV("%s: Triggering precapture metering, id %d", __FUNCTION__, id); + res = mDevice->ops->trigger_action(mDevice, + CAMERA2_TRIGGER_PRECAPTURE_METERING, id, 0); + if (res != OK) { + ALOGE("%s: Error triggering precapture metering (id %d)", + __FUNCTION__, id); + } + return res; +} + /** * Camera2Device::NotificationListener */ |