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

Side by Side Diff: media/capture/video/android/video_capture_device_android.cc

Issue 2301053004: Image Capture: adding fillLightMode getting/setting (Closed)
Patch Set: Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/capture/video/android/video_capture_device_android.h" 5 #include "media/capture/video/android/video_capture_device_android.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 22 matching lines...) Expand all
33 33
34 mojom::MeteringMode ToMojomMeteringMode( 34 mojom::MeteringMode ToMojomMeteringMode(
35 PhotoCapabilities::AndroidMeteringMode android_mode) { 35 PhotoCapabilities::AndroidMeteringMode android_mode) {
36 switch (android_mode) { 36 switch (android_mode) {
37 case PhotoCapabilities::AndroidMeteringMode::FIXED: 37 case PhotoCapabilities::AndroidMeteringMode::FIXED:
38 return mojom::MeteringMode::MANUAL; 38 return mojom::MeteringMode::MANUAL;
39 case PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT: 39 case PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT:
40 return mojom::MeteringMode::SINGLE_SHOT; 40 return mojom::MeteringMode::SINGLE_SHOT;
41 case PhotoCapabilities::AndroidMeteringMode::CONTINUOUS: 41 case PhotoCapabilities::AndroidMeteringMode::CONTINUOUS:
42 return mojom::MeteringMode::CONTINUOUS; 42 return mojom::MeteringMode::CONTINUOUS;
43 case PhotoCapabilities::AndroidMeteringMode::UNAVAILABLE: 43 case PhotoCapabilities::AndroidMeteringMode::NONE:
44 return mojom::MeteringMode::UNAVAILABLE; 44 return mojom::MeteringMode::NONE;
45 case PhotoCapabilities::AndroidMeteringMode::NOT_SET: 45 case PhotoCapabilities::AndroidMeteringMode::NOT_SET:
46 NOTREACHED(); 46 NOTREACHED();
47 } 47 }
48 return mojom::MeteringMode::UNAVAILABLE; 48 return mojom::MeteringMode::NONE;
49 } 49 }
50 50
51 PhotoCapabilities::AndroidMeteringMode ToAndroidMeteringMode( 51 PhotoCapabilities::AndroidMeteringMode ToAndroidMeteringMode(
52 mojom::MeteringMode mojom_mode) { 52 mojom::MeteringMode mojom_mode) {
53 switch (mojom_mode) { 53 switch (mojom_mode) {
54 case mojom::MeteringMode::MANUAL: 54 case mojom::MeteringMode::MANUAL:
55 return PhotoCapabilities::AndroidMeteringMode::FIXED; 55 return PhotoCapabilities::AndroidMeteringMode::FIXED;
56 case mojom::MeteringMode::SINGLE_SHOT: 56 case mojom::MeteringMode::SINGLE_SHOT:
57 return PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT; 57 return PhotoCapabilities::AndroidMeteringMode::SINGLE_SHOT;
58 case mojom::MeteringMode::CONTINUOUS: 58 case mojom::MeteringMode::CONTINUOUS:
59 return PhotoCapabilities::AndroidMeteringMode::CONTINUOUS; 59 return PhotoCapabilities::AndroidMeteringMode::CONTINUOUS;
60 case mojom::MeteringMode::UNAVAILABLE: 60 case mojom::MeteringMode::NONE:
61 return PhotoCapabilities::AndroidMeteringMode::UNAVAILABLE; 61 return PhotoCapabilities::AndroidMeteringMode::NONE;
62 } 62 }
63 NOTREACHED(); 63 NOTREACHED();
64 return PhotoCapabilities::AndroidMeteringMode::NOT_SET; 64 return PhotoCapabilities::AndroidMeteringMode::NOT_SET;
65 } 65 }
66 66
67 mojom::FillLightMode ToMojomFillLightMode(
68 PhotoCapabilities::AndroidFillLightMode android_mode) {
69 switch (android_mode) {
70 case PhotoCapabilities::AndroidFillLightMode::TORCH:
71 return mojom::FillLightMode::TORCH;
72 case PhotoCapabilities::AndroidFillLightMode::FLASH:
73 return mojom::FillLightMode::FLASH;
74 case PhotoCapabilities::AndroidFillLightMode::AUTO:
75 return mojom::FillLightMode::AUTO;
76 case PhotoCapabilities::AndroidFillLightMode::OFF:
77 return mojom::FillLightMode::OFF;
78 case PhotoCapabilities::AndroidFillLightMode::NONE:
79 return mojom::FillLightMode::NONE;
80 case PhotoCapabilities::AndroidFillLightMode::NOT_SET:
81 NOTREACHED();
82 }
83 return mojom::FillLightMode::NONE;
84 }
85
86 PhotoCapabilities::AndroidFillLightMode ToAndroidFillLightMode(
87 mojom::FillLightMode mojom_mode) {
88 switch (mojom_mode) {
89 case mojom::FillLightMode::TORCH:
90 return PhotoCapabilities::AndroidFillLightMode::TORCH;
91 case mojom::FillLightMode::FLASH:
92 return PhotoCapabilities::AndroidFillLightMode::FLASH;
93 case mojom::FillLightMode::AUTO:
94 return PhotoCapabilities::AndroidFillLightMode::AUTO;
95 case mojom::FillLightMode::OFF:
96 return PhotoCapabilities::AndroidFillLightMode::OFF;
97 case mojom::FillLightMode::NONE:
98 return PhotoCapabilities::AndroidFillLightMode::NONE;
99 }
100 NOTREACHED();
101 return PhotoCapabilities::AndroidFillLightMode::NOT_SET;
102 }
103
67 } // anonymous namespace 104 } // anonymous namespace
68 105
69 // static 106 // static
70 bool VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice(JNIEnv* env) { 107 bool VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice(JNIEnv* env) {
71 return RegisterNativesImpl(env); 108 return RegisterNativesImpl(env);
72 } 109 }
73 110
74 VideoCaptureDeviceAndroid::VideoCaptureDeviceAndroid( 111 VideoCaptureDeviceAndroid::VideoCaptureDeviceAndroid(
75 const VideoCaptureDeviceDescriptor& device_descriptor) 112 const VideoCaptureDeviceDescriptor& device_descriptor)
76 : main_task_runner_(base::ThreadTaskRunnerHandle::Get()), 113 : main_task_runner_(base::ThreadTaskRunnerHandle::Get()),
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 ToMojomMeteringMode(caps.getExposureMode()); 513 ToMojomMeteringMode(caps.getExposureMode());
477 photo_capabilities->exposure_compensation = mojom::Range::New(); 514 photo_capabilities->exposure_compensation = mojom::Range::New();
478 photo_capabilities->exposure_compensation->current = 515 photo_capabilities->exposure_compensation->current =
479 caps.getCurrentExposureCompensation(); 516 caps.getCurrentExposureCompensation();
480 photo_capabilities->exposure_compensation->max = 517 photo_capabilities->exposure_compensation->max =
481 caps.getMaxExposureCompensation(); 518 caps.getMaxExposureCompensation();
482 photo_capabilities->exposure_compensation->min = 519 photo_capabilities->exposure_compensation->min =
483 caps.getMinExposureCompensation(); 520 caps.getMinExposureCompensation();
484 photo_capabilities->white_balance_mode = 521 photo_capabilities->white_balance_mode =
485 ToMojomMeteringMode(caps.getWhiteBalanceMode()); 522 ToMojomMeteringMode(caps.getWhiteBalanceMode());
523 photo_capabilities->fill_light_mode =
524 ToMojomFillLightMode(caps.getFillLightMode());
486 525
487 callback.Run(std::move(photo_capabilities)); 526 callback.Run(std::move(photo_capabilities));
488 } 527 }
489 528
490 void VideoCaptureDeviceAndroid::DoSetPhotoOptions( 529 void VideoCaptureDeviceAndroid::DoSetPhotoOptions(
491 mojom::PhotoSettingsPtr settings, 530 mojom::PhotoSettingsPtr settings,
492 SetPhotoOptionsCallback callback) { 531 SetPhotoOptionsCallback callback) {
493 DCHECK(main_task_runner_->BelongsToCurrentThread()); 532 DCHECK(main_task_runner_->BelongsToCurrentThread());
494 #if DCHECK_IS_ON() 533 #if DCHECK_IS_ON()
495 { 534 {
(...skipping 29 matching lines...) Expand all
525 const int exposure_compensation = 564 const int exposure_compensation =
526 settings->has_exposure_compensation ? settings->exposure_compensation : 0; 565 settings->has_exposure_compensation ? settings->exposure_compensation : 0;
527 566
528 const PhotoCapabilities::AndroidMeteringMode white_balance_mode = 567 const PhotoCapabilities::AndroidMeteringMode white_balance_mode =
529 settings->has_white_balance_mode 568 settings->has_white_balance_mode
530 ? ToAndroidMeteringMode(settings->white_balance_mode) 569 ? ToAndroidMeteringMode(settings->white_balance_mode)
531 : PhotoCapabilities::AndroidMeteringMode::NOT_SET; 570 : PhotoCapabilities::AndroidMeteringMode::NOT_SET;
532 571
533 const int iso = settings->has_iso ? settings->iso : 0; 572 const int iso = settings->has_iso ? settings->iso : 0;
534 573
574 const PhotoCapabilities::AndroidFillLightMode fill_light_mode =
575 settings->has_fill_light_mode
576 ? ToAndroidFillLightMode(settings->fill_light_mode)
577 : PhotoCapabilities::AndroidFillLightMode::NOT_SET;
578
535 Java_VideoCapture_setPhotoOptions( 579 Java_VideoCapture_setPhotoOptions(
536 env, j_capture_, zoom, static_cast<int>(focus_mode), 580 env, j_capture_, zoom, static_cast<int>(focus_mode),
537 static_cast<int>(exposure_mode), width, height, points_of_interest, 581 static_cast<int>(exposure_mode), width, height, points_of_interest,
538 settings->has_exposure_compensation, exposure_compensation, 582 settings->has_exposure_compensation, exposure_compensation,
539 static_cast<int>(white_balance_mode), iso, 583 static_cast<int>(white_balance_mode), iso,
540 settings->has_red_eye_reduction, settings->red_eye_reduction); 584 settings->has_red_eye_reduction, settings->red_eye_reduction,
585 static_cast<int>(fill_light_mode));
541 586
542 callback.Run(true); 587 callback.Run(true);
543 } 588 }
544 589
545 } // namespace media 590 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698