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 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 JNIEnv* env = AttachCurrentThread(); | 497 JNIEnv* env = AttachCurrentThread(); |
498 | 498 |
499 PhotoCapabilities caps( | 499 PhotoCapabilities caps( |
500 Java_VideoCapture_getPhotoCapabilities(env, j_capture_)); | 500 Java_VideoCapture_getPhotoCapabilities(env, j_capture_)); |
501 | 501 |
502 // TODO(mcasas): Manual member copying sucks, consider adding typemapping from | 502 // TODO(mcasas): Manual member copying sucks, consider adding typemapping from |
503 // PhotoCapabilities to mojom::PhotoCapabilitiesPtr, https://crbug.com/622002. | 503 // PhotoCapabilities to mojom::PhotoCapabilitiesPtr, https://crbug.com/622002. |
504 mojom::PhotoCapabilitiesPtr photo_capabilities = | 504 mojom::PhotoCapabilitiesPtr photo_capabilities = |
505 mojom::PhotoCapabilities::New(); | 505 mojom::PhotoCapabilities::New(); |
506 | 506 |
507 // TODO(mcasas): Update |supported_{white_balance,exposure,focus}_modes| as | 507 const auto jni_white_balance_modes = caps.getWhiteBalanceModes(); |
508 // well, https://crbug.com/700607. | 508 std::vector<mojom::MeteringMode> white_balance_modes; |
| 509 for (const auto& white_balance_mode : jni_white_balance_modes) |
| 510 white_balance_modes.push_back(ToMojomMeteringMode(white_balance_mode)); |
| 511 photo_capabilities->supported_white_balance_modes = white_balance_modes; |
509 photo_capabilities->current_white_balance_mode = | 512 photo_capabilities->current_white_balance_mode = |
510 ToMojomMeteringMode(caps.getWhiteBalanceMode()); | 513 ToMojomMeteringMode(caps.getWhiteBalanceMode()); |
| 514 |
| 515 const auto jni_exposure_modes = caps.getExposureModes(); |
| 516 std::vector<mojom::MeteringMode> exposure_modes; |
| 517 for (const auto& exposure_mode : jni_exposure_modes) |
| 518 exposure_modes.push_back(ToMojomMeteringMode(exposure_mode)); |
| 519 photo_capabilities->supported_exposure_modes = exposure_modes; |
511 photo_capabilities->current_exposure_mode = | 520 photo_capabilities->current_exposure_mode = |
512 ToMojomMeteringMode(caps.getExposureMode()); | 521 ToMojomMeteringMode(caps.getExposureMode()); |
| 522 |
| 523 const auto jni_focus_modes = caps.getFocusModes(); |
| 524 std::vector<mojom::MeteringMode> focus_modes; |
| 525 for (const auto& focus_mode : jni_focus_modes) |
| 526 focus_modes.push_back(ToMojomMeteringMode(focus_mode)); |
| 527 photo_capabilities->supported_focus_modes = focus_modes; |
513 photo_capabilities->current_focus_mode = | 528 photo_capabilities->current_focus_mode = |
514 ToMojomMeteringMode(caps.getFocusMode()); | 529 ToMojomMeteringMode(caps.getFocusMode()); |
515 | 530 |
516 photo_capabilities->exposure_compensation = mojom::Range::New(); | 531 photo_capabilities->exposure_compensation = mojom::Range::New(); |
517 photo_capabilities->exposure_compensation->current = | 532 photo_capabilities->exposure_compensation->current = |
518 caps.getCurrentExposureCompensation(); | 533 caps.getCurrentExposureCompensation(); |
519 photo_capabilities->exposure_compensation->max = | 534 photo_capabilities->exposure_compensation->max = |
520 caps.getMaxExposureCompensation(); | 535 caps.getMaxExposureCompensation(); |
521 photo_capabilities->exposure_compensation->min = | 536 photo_capabilities->exposure_compensation->min = |
522 caps.getMinExposureCompensation(); | 537 caps.getMinExposureCompensation(); |
523 photo_capabilities->exposure_compensation->step = | 538 photo_capabilities->exposure_compensation->step = |
524 caps.getStepExposureCompensation(); | 539 caps.getStepExposureCompensation(); |
525 photo_capabilities->color_temperature = mojom::Range::New(); | 540 photo_capabilities->color_temperature = mojom::Range::New(); |
526 photo_capabilities->color_temperature->current = | 541 photo_capabilities->color_temperature->current = |
527 caps.getCurrentColorTemperature(); | 542 caps.getCurrentColorTemperature(); |
528 photo_capabilities->color_temperature->max = caps.getMaxColorTemperature(); | 543 photo_capabilities->color_temperature->max = caps.getMaxColorTemperature(); |
529 photo_capabilities->color_temperature->min = caps.getMinColorTemperature(); | 544 photo_capabilities->color_temperature->min = caps.getMinColorTemperature(); |
530 photo_capabilities->color_temperature->step = caps.getStepColorTemperature(); | 545 photo_capabilities->color_temperature->step = caps.getStepColorTemperature(); |
531 photo_capabilities->iso = mojom::Range::New(); | 546 photo_capabilities->iso = mojom::Range::New(); |
532 photo_capabilities->iso->current = caps.getCurrentIso(); | 547 photo_capabilities->iso->current = caps.getCurrentIso(); |
533 photo_capabilities->iso->max = caps.getMaxIso(); | 548 photo_capabilities->iso->max = caps.getMaxIso(); |
534 photo_capabilities->iso->min = caps.getMinIso(); | 549 photo_capabilities->iso->min = caps.getMinIso(); |
535 photo_capabilities->iso->step = caps.getStepIso(); | 550 photo_capabilities->iso->step = caps.getStepIso(); |
536 | 551 |
537 photo_capabilities->brightness = media::mojom::Range::New(); | 552 photo_capabilities->brightness = mojom::Range::New(); |
538 photo_capabilities->contrast = media::mojom::Range::New(); | 553 photo_capabilities->contrast = mojom::Range::New(); |
539 photo_capabilities->saturation = media::mojom::Range::New(); | 554 photo_capabilities->saturation = mojom::Range::New(); |
540 photo_capabilities->sharpness = media::mojom::Range::New(); | 555 photo_capabilities->sharpness = mojom::Range::New(); |
541 | 556 |
542 photo_capabilities->zoom = mojom::Range::New(); | 557 photo_capabilities->zoom = mojom::Range::New(); |
543 photo_capabilities->zoom->current = caps.getCurrentZoom(); | 558 photo_capabilities->zoom->current = caps.getCurrentZoom(); |
544 photo_capabilities->zoom->max = caps.getMaxZoom(); | 559 photo_capabilities->zoom->max = caps.getMaxZoom(); |
545 photo_capabilities->zoom->min = caps.getMinZoom(); | 560 photo_capabilities->zoom->min = caps.getMinZoom(); |
546 photo_capabilities->zoom->step = caps.getStepZoom(); | 561 photo_capabilities->zoom->step = caps.getStepZoom(); |
547 | 562 |
548 photo_capabilities->supports_torch = caps.getSupportsTorch(); | 563 photo_capabilities->supports_torch = caps.getSupportsTorch(); |
549 photo_capabilities->torch = caps.getTorch(); | 564 photo_capabilities->torch = caps.getTorch(); |
550 | 565 |
551 photo_capabilities->red_eye_reduction = | 566 photo_capabilities->red_eye_reduction = |
552 caps.getRedEyeReduction() ? media::mojom::RedEyeReduction::CONTROLLABLE | 567 caps.getRedEyeReduction() ? mojom::RedEyeReduction::CONTROLLABLE |
553 : media::mojom::RedEyeReduction::NEVER; | 568 : mojom::RedEyeReduction::NEVER; |
554 photo_capabilities->height = mojom::Range::New(); | 569 photo_capabilities->height = mojom::Range::New(); |
555 photo_capabilities->height->current = caps.getCurrentHeight(); | 570 photo_capabilities->height->current = caps.getCurrentHeight(); |
556 photo_capabilities->height->max = caps.getMaxHeight(); | 571 photo_capabilities->height->max = caps.getMaxHeight(); |
557 photo_capabilities->height->min = caps.getMinHeight(); | 572 photo_capabilities->height->min = caps.getMinHeight(); |
558 photo_capabilities->height->step = caps.getStepHeight(); | 573 photo_capabilities->height->step = caps.getStepHeight(); |
559 photo_capabilities->width = mojom::Range::New(); | 574 photo_capabilities->width = mojom::Range::New(); |
560 photo_capabilities->width->current = caps.getCurrentWidth(); | 575 photo_capabilities->width->current = caps.getCurrentWidth(); |
561 photo_capabilities->width->max = caps.getMaxWidth(); | 576 photo_capabilities->width->max = caps.getMaxWidth(); |
562 photo_capabilities->width->min = caps.getMinWidth(); | 577 photo_capabilities->width->min = caps.getMinWidth(); |
563 photo_capabilities->width->step = caps.getStepWidth(); | 578 photo_capabilities->width->step = caps.getStepWidth(); |
564 const auto fill_light_modes = caps.getFillLightModes(); | 579 const auto fill_light_modes = caps.getFillLightModes(); |
565 std::vector<media::mojom::FillLightMode> modes; | 580 std::vector<mojom::FillLightMode> modes; |
566 for (const auto& fill_light_mode : fill_light_modes) | 581 for (const auto& fill_light_mode : fill_light_modes) |
567 modes.push_back(ToMojomFillLightMode(fill_light_mode)); | 582 modes.push_back(ToMojomFillLightMode(fill_light_mode)); |
568 photo_capabilities->fill_light_mode = modes; | 583 photo_capabilities->fill_light_mode = modes; |
569 | 584 |
570 callback.Run(std::move(photo_capabilities)); | 585 callback.Run(std::move(photo_capabilities)); |
571 } | 586 } |
572 | 587 |
573 void VideoCaptureDeviceAndroid::DoSetPhotoOptions( | 588 void VideoCaptureDeviceAndroid::DoSetPhotoOptions( |
574 mojom::PhotoSettingsPtr settings, | 589 mojom::PhotoSettingsPtr settings, |
575 SetPhotoOptionsCallback callback) { | 590 SetPhotoOptionsCallback callback) { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 settings->has_exposure_compensation, exposure_compensation, | 646 settings->has_exposure_compensation, exposure_compensation, |
632 static_cast<int>(white_balance_mode), iso, | 647 static_cast<int>(white_balance_mode), iso, |
633 settings->has_red_eye_reduction, settings->red_eye_reduction, | 648 settings->has_red_eye_reduction, settings->red_eye_reduction, |
634 static_cast<int>(fill_light_mode), settings->has_torch, settings->torch, | 649 static_cast<int>(fill_light_mode), settings->has_torch, settings->torch, |
635 color_temperature); | 650 color_temperature); |
636 | 651 |
637 callback.Run(true); | 652 callback.Run(true); |
638 } | 653 } |
639 | 654 |
640 } // namespace media | 655 } // namespace media |
OLD | NEW |