| 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());
|
|
|