Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(189)

Side by Side Diff: content/renderer/pepper/pepper_device_enumeration_event_handler.cc

Issue 11411047: Introduce PPB_AudioInput_Dev v0.3 and refactor the device enumeration code: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_device_enumeration_event_handler.h" 5 #include "content/renderer/pepper/pepper_device_enumeration_event_handler.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "ppapi/shared_impl/ppb_device_ref_shared.h" 8 #include "ppapi/shared_impl/ppb_device_ref_shared.h"
9 9
10 namespace content { 10 namespace content {
(...skipping 19 matching lines...) Expand all
30 DCHECK(enumerate_callbacks_.empty()); 30 DCHECK(enumerate_callbacks_.empty());
31 DCHECK(open_callbacks_.empty()); 31 DCHECK(open_callbacks_.empty());
32 } 32 }
33 33
34 int PepperDeviceEnumerationEventHandler::RegisterEnumerateDevicesCallback( 34 int PepperDeviceEnumerationEventHandler::RegisterEnumerateDevicesCallback(
35 const webkit::ppapi::PluginDelegate::EnumerateDevicesCallback& callback) { 35 const webkit::ppapi::PluginDelegate::EnumerateDevicesCallback& callback) {
36 enumerate_callbacks_[next_id_] = callback; 36 enumerate_callbacks_[next_id_] = callback;
37 return next_id_++; 37 return next_id_++;
38 } 38 }
39 39
40 void PepperDeviceEnumerationEventHandler::UnregisterEnumerateDevicesCallback(
41 int request_id) {
42 enumerate_callbacks_.erase(request_id);
43 }
44
40 int PepperDeviceEnumerationEventHandler::RegisterOpenDeviceCallback( 45 int PepperDeviceEnumerationEventHandler::RegisterOpenDeviceCallback(
41 const PepperPluginDelegateImpl::OpenDeviceCallback& callback) { 46 const PepperPluginDelegateImpl::OpenDeviceCallback& callback) {
42 open_callbacks_[next_id_] = callback; 47 open_callbacks_[next_id_] = callback;
43 return next_id_++; 48 return next_id_++;
44 } 49 }
45 50
46 void PepperDeviceEnumerationEventHandler::OnStreamGenerated( 51 void PepperDeviceEnumerationEventHandler::OnStreamGenerated(
47 int request_id, 52 int request_id,
48 const std::string& label, 53 const std::string& label,
49 const StreamDeviceInfoArray& audio_device_array, 54 const StreamDeviceInfoArray& audio_device_array,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 const StreamDeviceInfoArray& device_array) { 119 const StreamDeviceInfoArray& device_array) {
115 EnumerateCallbackMap::iterator iter = enumerate_callbacks_.find(request_id); 120 EnumerateCallbackMap::iterator iter = enumerate_callbacks_.find(request_id);
116 if (iter == enumerate_callbacks_.end()) { 121 if (iter == enumerate_callbacks_.end()) {
117 // This might be enumerated result sent before StopEnumerateDevices is 122 // This might be enumerated result sent before StopEnumerateDevices is
118 // called since EnumerateDevices is persistent request. 123 // called since EnumerateDevices is persistent request.
119 return; 124 return;
120 } 125 }
121 126
122 webkit::ppapi::PluginDelegate::EnumerateDevicesCallback callback = 127 webkit::ppapi::PluginDelegate::EnumerateDevicesCallback callback =
123 iter->second; 128 iter->second;
124 enumerate_callbacks_.erase(iter);
125 129
126 std::vector<ppapi::DeviceRefData> devices; 130 std::vector<ppapi::DeviceRefData> devices;
127 if (succeeded) { 131 if (succeeded) {
128 devices.reserve(device_array.size()); 132 devices.reserve(device_array.size());
129 for (StreamDeviceInfoArray::const_iterator info = 133 for (StreamDeviceInfoArray::const_iterator info =
130 device_array.begin(); info != device_array.end(); ++info) { 134 device_array.begin(); info != device_array.end(); ++info) {
131 devices.push_back(FromStreamDeviceInfo(*info)); 135 devices.push_back(FromStreamDeviceInfo(*info));
132 } 136 }
133 } 137 }
134 callback.Run(request_id, succeeded, devices); 138 callback.Run(request_id, succeeded, devices);
135 } 139 }
136 140
137 void PepperDeviceEnumerationEventHandler::NotifyDeviceOpened( 141 void PepperDeviceEnumerationEventHandler::NotifyDeviceOpened(
138 int request_id, 142 int request_id,
139 bool succeeded, 143 bool succeeded,
140 const std::string& label) { 144 const std::string& label) {
141 OpenCallbackMap::iterator iter = open_callbacks_.find(request_id); 145 OpenCallbackMap::iterator iter = open_callbacks_.find(request_id);
142 if (iter == open_callbacks_.end()) { 146 if (iter == open_callbacks_.end()) {
143 NOTREACHED(); 147 NOTREACHED();
144 return; 148 return;
145 } 149 }
146 150
147 PepperPluginDelegateImpl::OpenDeviceCallback callback = iter->second; 151 PepperPluginDelegateImpl::OpenDeviceCallback callback = iter->second;
148 open_callbacks_.erase(iter); 152 open_callbacks_.erase(iter);
149 153
150 callback.Run(request_id, succeeded, label); 154 callback.Run(request_id, succeeded, label);
151 } 155 }
152 156
153 } // namespace content 157 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698