Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "content/browser/renderer_host/media/video_capture_provider_switcher.h" | |
| 6 | |
| 7 namespace content { | |
| 8 | |
| 9 VideoCaptureProviderSwitcher::VideoCaptureProviderSwitcher( | |
| 10 std::unique_ptr<VideoCaptureProvider> media_device_capture_provider, | |
| 11 std::unique_ptr<VideoCaptureProvider> other_types_capture_provider) | |
| 12 : media_device_capture_provider_(std::move(media_device_capture_provider)), | |
| 13 other_types_capture_provider_(std::move(other_types_capture_provider)) {} | |
| 14 | |
| 15 VideoCaptureProviderSwitcher::~VideoCaptureProviderSwitcher() = default; | |
| 16 | |
| 17 void VideoCaptureProviderSwitcher::Uninitialize() { | |
| 18 media_device_capture_provider_->Uninitialize(); | |
| 19 other_types_capture_provider_->Uninitialize(); | |
| 20 } | |
| 21 | |
| 22 void VideoCaptureProviderSwitcher::GetDeviceInfosAsync( | |
| 23 const base::Callback<void( | |
| 24 const std::vector<media::VideoCaptureDeviceInfo>&)>& result_callback) { | |
| 25 media_device_capture_provider_->GetDeviceInfosAsync(result_callback); | |
| 26 } | |
| 27 | |
| 28 std::unique_ptr<VideoCaptureDeviceLauncher> | |
| 29 VideoCaptureProviderSwitcher::CreateDeviceLauncher() { | |
| 30 return base::MakeUnique<VideoCaptureDeviceLauncherSwitcher>( | |
| 31 media_device_capture_provider_->CreateDeviceLauncher(), | |
| 32 other_types_capture_provider_->CreateDeviceLauncher()); | |
| 33 } | |
| 34 | |
| 35 VideoCaptureDeviceLauncherSwitcher::VideoCaptureDeviceLauncherSwitcher( | |
| 36 std::unique_ptr<VideoCaptureDeviceLauncher> media_device_launcher, | |
| 37 std::unique_ptr<VideoCaptureDeviceLauncher> other_types_launcher) | |
| 38 : media_device_launcher_(std::move(media_device_launcher)), | |
| 39 other_types_launcher_(std::move(other_types_launcher)) {} | |
| 40 | |
| 41 VideoCaptureDeviceLauncherSwitcher::~VideoCaptureDeviceLauncherSwitcher() = | |
| 42 default; | |
| 43 | |
| 44 void VideoCaptureDeviceLauncherSwitcher::LaunchDeviceAsync( | |
| 45 const std::string& device_id, | |
| 46 MediaStreamType stream_type, | |
| 47 const media::VideoCaptureParams& params, | |
| 48 base::WeakPtr<media::VideoFrameReceiver> receiver, | |
| 49 Callbacks* callbacks, | |
| 50 base::OnceClosure done_cb) { | |
| 51 last_launched_stream_type_ = stream_type; | |
| 52 if (stream_type == content::MEDIA_DEVICE_VIDEO_CAPTURE) { | |
| 53 return media_device_launcher_->LaunchDeviceAsync( | |
| 54 device_id, stream_type, params, std::move(receiver), callbacks, | |
| 55 std::move(done_cb)); | |
| 56 } else { | |
|
mcasas
2017/05/10 02:33:33
No need for else after a return.
https://chromium.
chfremer
2017/05/10 17:59:39
Done.
| |
| 57 return other_types_launcher_->LaunchDeviceAsync( | |
| 58 device_id, stream_type, params, std::move(receiver), callbacks, | |
| 59 std::move(done_cb)); | |
| 60 } | |
| 61 } | |
| 62 | |
| 63 void VideoCaptureDeviceLauncherSwitcher::AbortLaunch() { | |
| 64 if (!last_launched_stream_type_.has_value()) | |
| 65 return; | |
| 66 if (last_launched_stream_type_.value() == | |
| 67 content::MEDIA_DEVICE_VIDEO_CAPTURE) { | |
| 68 media_device_launcher_->AbortLaunch(); | |
| 69 } else { | |
| 70 other_types_launcher_->AbortLaunch(); | |
| 71 } | |
|
mcasas
2017/05/10 02:33:33
Instead of |last_launched_stream_type_|, bind a me
chfremer
2017/05/10 17:59:39
Done.
| |
| 72 } | |
| 73 | |
| 74 } // namespace content | |
| OLD | NEW |