summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/Camera2Device.cpp
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2012-08-03 13:53:39 -0700
committerEino-Ville Talvala <etalvala@google.com>2012-08-10 09:19:18 -0700
commit174181eec57c963a2a17bd156d81c3f18b3ba75c (patch)
tree9eea6b8bf3577f1f24d80b5d37d714fe6374a734 /services/camera/libcameraservice/Camera2Device.cpp
parenta59bf2c58311dfc28f46220383d66869e8f3f57f (diff)
downloadframeworks_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.cpp36
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
*/