| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/pepper/pepper_media_device_manager.h" | 5 #include "content/renderer/pepper/pepper_media_device_manager.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "content/renderer/media/media_stream_dispatcher.h" | 8 #include "content/renderer/media/media_stream_dispatcher.h" |
| 9 #include "content/renderer/render_frame_impl.h" | 9 #include "content/renderer/render_frame_impl.h" |
| 10 #include "ppapi/shared_impl/ppb_device_ref_shared.h" | 10 #include "ppapi/shared_impl/ppb_device_ref_shared.h" |
| 11 | 11 |
| 12 namespace content { | 12 namespace content { |
| 13 | 13 |
| 14 namespace { | 14 namespace { |
| 15 | 15 |
| 16 ppapi::DeviceRefData FromStreamDeviceInfo(const StreamDeviceInfo& info) { | 16 ppapi::DeviceRefData FromStreamDeviceInfo(const StreamDeviceInfo& info) { |
| 17 ppapi::DeviceRefData data; | 17 ppapi::DeviceRefData data; |
| 18 data.id = info.device.id; | 18 data.id = info.device.id; |
| 19 // Some Flash content can't handle an empty string, so stick a space in to | 19 // Some Flash content can't handle an empty string, so stick a space in to |
| 20 // make them happy. See crbug.com/408404. | 20 // make them happy. See crbug.com/408404. |
| 21 data.name = info.device.name.empty() ? std::string(" ") : info.device.name; | 21 data.name = info.device.name.empty() ? std::string(" ") : info.device.name; |
| 22 data.type = PepperMediaDeviceManager::FromMediaStreamType(info.device.type); | 22 data.type = PepperMediaDeviceManager::FromMediaStreamType(info.device.type); |
| 23 return data; | 23 return data; |
| 24 } | 24 } |
| 25 | 25 |
| 26 } // namespace | 26 } // namespace |
| 27 | 27 |
| 28 PepperMediaDeviceManager* PepperMediaDeviceManager::GetForRenderFrame( | 28 base::WeakPtr<PepperMediaDeviceManager> |
| 29 PepperMediaDeviceManager::GetForRenderFrame( |
| 29 RenderFrame* render_frame) { | 30 RenderFrame* render_frame) { |
| 30 PepperMediaDeviceManager* handler = | 31 PepperMediaDeviceManager* handler = |
| 31 PepperMediaDeviceManager::Get(render_frame); | 32 PepperMediaDeviceManager::Get(render_frame); |
| 32 if (!handler) | 33 if (!handler) |
| 33 handler = new PepperMediaDeviceManager(render_frame); | 34 handler = new PepperMediaDeviceManager(render_frame); |
| 34 return handler; | 35 return handler->AsWeakPtr(); |
| 35 } | 36 } |
| 36 | 37 |
| 37 PepperMediaDeviceManager::PepperMediaDeviceManager(RenderFrame* render_frame) | 38 PepperMediaDeviceManager::PepperMediaDeviceManager(RenderFrame* render_frame) |
| 38 : RenderFrameObserver(render_frame), | 39 : RenderFrameObserver(render_frame), |
| 39 RenderFrameObserverTracker<PepperMediaDeviceManager>(render_frame), | 40 RenderFrameObserverTracker<PepperMediaDeviceManager>(render_frame), |
| 40 next_id_(1) {} | 41 next_id_(1) {} |
| 41 | 42 |
| 42 PepperMediaDeviceManager::~PepperMediaDeviceManager() { | 43 PepperMediaDeviceManager::~PepperMediaDeviceManager() { |
| 43 DCHECK(enumerate_callbacks_.empty()); | 44 DCHECK(enumerate_callbacks_.empty()); |
| 44 DCHECK(open_callbacks_.empty()); | 45 DCHECK(open_callbacks_.empty()); |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 MediaStreamDispatcher* PepperMediaDeviceManager::GetMediaStreamDispatcher() | 248 MediaStreamDispatcher* PepperMediaDeviceManager::GetMediaStreamDispatcher() |
| 248 const { | 249 const { |
| 249 DCHECK(render_frame()); | 250 DCHECK(render_frame()); |
| 250 MediaStreamDispatcher* const dispatcher = | 251 MediaStreamDispatcher* const dispatcher = |
| 251 static_cast<RenderFrameImpl*>(render_frame())->GetMediaStreamDispatcher(); | 252 static_cast<RenderFrameImpl*>(render_frame())->GetMediaStreamDispatcher(); |
| 252 DCHECK(dispatcher); | 253 DCHECK(dispatcher); |
| 253 return dispatcher; | 254 return dispatcher; |
| 254 } | 255 } |
| 255 | 256 |
| 256 } // namespace content | 257 } // namespace content |
| OLD | NEW |