OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |