| OLD | NEW |
| (Empty) | |
| 1 // Copyright 2017 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 "media/capture/video/chromeos/mock_camera_module.h" |
| 6 |
| 7 #include <memory> |
| 8 #include <utility> |
| 9 |
| 10 namespace media { |
| 11 namespace unittest_internal { |
| 12 |
| 13 MockCameraModule::MockCameraModule() |
| 14 : mock_module_thread_("MockModuleThread"), binding_(this) { |
| 15 mock_module_thread_.Start(); |
| 16 } |
| 17 |
| 18 MockCameraModule::~MockCameraModule() { |
| 19 mock_module_thread_.task_runner()->PostTask( |
| 20 FROM_HERE, base::Bind(&MockCameraModule::CloseBindingOnThread, |
| 21 base::Unretained(this))); |
| 22 mock_module_thread_.Stop(); |
| 23 } |
| 24 |
| 25 void MockCameraModule::OpenDevice( |
| 26 int32_t camera_id, |
| 27 arc::mojom::Camera3DeviceOpsRequest device_ops_request, |
| 28 OpenDeviceCallback callback) { |
| 29 DoOpenDevice(camera_id, device_ops_request, callback); |
| 30 } |
| 31 |
| 32 void MockCameraModule::GetNumberOfCameras(GetNumberOfCamerasCallback callback) { |
| 33 DoGetNumberOfCameras(callback); |
| 34 } |
| 35 |
| 36 void MockCameraModule::GetCameraInfo(int32_t camera_id, |
| 37 GetCameraInfoCallback callback) { |
| 38 DoGetCameraInfo(camera_id, callback); |
| 39 } |
| 40 |
| 41 void MockCameraModule::SetCallbacks( |
| 42 arc::mojom::CameraModuleCallbacksPtr callbacks, |
| 43 SetCallbacksCallback callback) { |
| 44 DoSetCallbacks(callbacks, callback); |
| 45 callbacks_ = std::move(callbacks); |
| 46 std::move(callback).Run(0); |
| 47 } |
| 48 |
| 49 arc::mojom::CameraModulePtrInfo MockCameraModule::GetInterfacePtrInfo() { |
| 50 base::WaitableEvent done(base::WaitableEvent::ResetPolicy::MANUAL, |
| 51 base::WaitableEvent::InitialState::NOT_SIGNALED); |
| 52 arc::mojom::CameraModulePtrInfo ptr_info; |
| 53 mock_module_thread_.task_runner()->PostTask( |
| 54 FROM_HERE, |
| 55 base::Bind(&MockCameraModule::BindOnThread, base::Unretained(this), |
| 56 base::Unretained(&done), base::Unretained(&ptr_info))); |
| 57 done.Wait(); |
| 58 return ptr_info; |
| 59 } |
| 60 |
| 61 void MockCameraModule::CloseBindingOnThread() { |
| 62 if (binding_.is_bound()) { |
| 63 binding_.Close(); |
| 64 } |
| 65 } |
| 66 |
| 67 void MockCameraModule::BindOnThread(base::WaitableEvent* done, |
| 68 arc::mojom::CameraModulePtrInfo* ptr_info) { |
| 69 arc::mojom::CameraModulePtr camera_module_ptr; |
| 70 arc::mojom::CameraModuleRequest camera_module_request = |
| 71 mojo::MakeRequest(&camera_module_ptr); |
| 72 binding_.Bind(std::move(camera_module_request)); |
| 73 *ptr_info = camera_module_ptr.PassInterface(); |
| 74 done->Signal(); |
| 75 } |
| 76 |
| 77 } // namespace unittest_internal |
| 78 } // namespace media |
| OLD | NEW |