Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1168)

Unified Diff: media/capture/video/android/photo_capabilities.cc

Issue 2808073003: Image Capture: wire supported exposure/focus/white balance modes Android (Closed)
Patch Set: reillyg@ comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/capture/video/android/photo_capabilities.cc
diff --git a/media/capture/video/android/photo_capabilities.cc b/media/capture/video/android/photo_capabilities.cc
index adb0377e63c86dde881fb8a0250dad4f4d3a1c1b..152cea8ecad76ea639a7e3b241ec407198ede311 100644
--- a/media/capture/video/android/photo_capabilities.cc
+++ b/media/capture/video/android/photo_capabilities.cc
@@ -13,6 +13,27 @@ using base::android::AttachCurrentThread;
namespace media {
+namespace {
+
+static_assert(
+ std::is_same<int,
+ std::underlying_type<
+ PhotoCapabilities::AndroidMeteringMode>::type>::value,
+ "AndroidMeteringMode underlying type should be int");
+
+std::vector<PhotoCapabilities::AndroidMeteringMode> ToAndroidMeteringModes(
+ base::android::ScopedJavaLocalRef<jintArray> jni_modes) {
+ JNIEnv* env = AttachCurrentThread();
+ std::vector<PhotoCapabilities::AndroidMeteringMode> modes;
+ if (jni_modes.obj()) {
+ base::android::JavaIntArrayToIntVector(
+ env, jni_modes.obj(), reinterpret_cast<std::vector<int>*>(&modes));
+ }
+ return modes;
+}
+
+} // anonymous namespace
+
PhotoCapabilities::PhotoCapabilities(
base::android::ScopedJavaLocalRef<jobject> object)
: object_(object) {}
@@ -106,6 +127,16 @@ PhotoCapabilities::AndroidMeteringMode PhotoCapabilities::getFocusMode() const {
Java_PhotoCapabilities_getFocusMode(AttachCurrentThread(), object_));
}
+std::vector<PhotoCapabilities::AndroidMeteringMode>
+PhotoCapabilities::getFocusModes() const {
+ DCHECK(!object_.is_null());
+
+ JNIEnv* env = AttachCurrentThread();
+ base::android::ScopedJavaLocalRef<jintArray> jni_modes =
+ Java_PhotoCapabilities_getFocusModes(env, object_);
+ return ToAndroidMeteringModes(jni_modes);
+}
+
PhotoCapabilities::AndroidMeteringMode PhotoCapabilities::getExposureMode()
const {
DCHECK(!object_.is_null());
@@ -113,6 +144,16 @@ PhotoCapabilities::AndroidMeteringMode PhotoCapabilities::getExposureMode()
Java_PhotoCapabilities_getExposureMode(AttachCurrentThread(), object_));
}
+std::vector<PhotoCapabilities::AndroidMeteringMode>
+PhotoCapabilities::getExposureModes() const {
+ DCHECK(!object_.is_null());
+
+ JNIEnv* env = AttachCurrentThread();
+ base::android::ScopedJavaLocalRef<jintArray> jni_modes =
+ Java_PhotoCapabilities_getExposureModes(env, object_);
+ return ToAndroidMeteringModes(jni_modes);
+}
+
double PhotoCapabilities::getMinExposureCompensation() const {
DCHECK(!object_.is_null());
return Java_PhotoCapabilities_getMinExposureCompensation(
@@ -145,6 +186,16 @@ PhotoCapabilities::AndroidMeteringMode PhotoCapabilities::getWhiteBalanceMode()
object_));
}
+std::vector<PhotoCapabilities::AndroidMeteringMode>
+PhotoCapabilities::getWhiteBalanceModes() const {
+ DCHECK(!object_.is_null());
+
+ JNIEnv* env = AttachCurrentThread();
+ base::android::ScopedJavaLocalRef<jintArray> jni_modes =
+ Java_PhotoCapabilities_getWhiteBalanceModes(env, object_);
+ return ToAndroidMeteringModes(jni_modes);
+}
+
std::vector<PhotoCapabilities::AndroidFillLightMode>
PhotoCapabilities::getFillLightModes() const {
DCHECK(!object_.is_null());
« no previous file with comments | « media/capture/video/android/photo_capabilities.h ('k') | media/capture/video/android/video_capture_device_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698