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

Side by Side Diff: content/renderer/media/media_stream_dispatcher.cc

Issue 16256018: Update content/ to use WeakPtr<T>::get() instead of implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix incorrectly modified code Created 7 years, 6 months 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/media/media_stream_dispatcher.h" 5 #include "content/renderer/media/media_stream_dispatcher.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop_proxy.h" 8 #include "base/message_loop_proxy.h"
9 #include "content/common/media/media_stream_messages.h" 9 #include "content/common/media/media_stream_messages.h"
10 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" 10 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h"
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 request_id, event_handler, &video_enumeration_state_); 157 request_id, event_handler, &video_enumeration_state_);
158 } 158 }
159 159
160 void MediaStreamDispatcher::RemoveEnumerationRequest( 160 void MediaStreamDispatcher::RemoveEnumerationRequest(
161 int request_id, 161 int request_id,
162 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler, 162 const base::WeakPtr<MediaStreamDispatcherEventHandler>& event_handler,
163 EnumerationState* state) { 163 EnumerationState* state) {
164 EnumerationRequestList* requests = &state->requests; 164 EnumerationRequestList* requests = &state->requests;
165 for (EnumerationRequestList::iterator it = requests->begin(); 165 for (EnumerationRequestList::iterator it = requests->begin();
166 it != requests->end(); ++it) { 166 it != requests->end(); ++it) {
167 if (it->request_id == request_id && it->handler == event_handler) { 167 if (it->request_id == request_id &&
168 it->handler.get() == event_handler.get()) {
168 requests->erase(it); 169 requests->erase(it);
169 if (requests->empty() && state->cached_devices) { 170 if (requests->empty() && state->cached_devices) {
170 // No more request and has a label, try to stop the label 171 // No more request and has a label, try to stop the label
171 // and invalidate the state. 172 // and invalidate the state.
172 Send(new MediaStreamHostMsg_StopGeneratedStream( 173 Send(new MediaStreamHostMsg_StopGeneratedStream(
173 routing_id(), state->cached_devices->label)); 174 routing_id(), state->cached_devices->label));
174 state->ipc_id = -1; 175 state->ipc_id = -1;
175 state->cached_devices.reset(); 176 state->cached_devices.reset();
176 } 177 }
177 return; 178 return;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 243
243 for (RequestList::iterator it = requests_.begin(); 244 for (RequestList::iterator it = requests_.begin();
244 it != requests_.end(); ++it) { 245 it != requests_.end(); ++it) {
245 Request& request = *it; 246 Request& request = *it;
246 if (request.ipc_request == request_id) { 247 if (request.ipc_request == request_id) {
247 Stream new_stream; 248 Stream new_stream;
248 new_stream.handler = request.handler; 249 new_stream.handler = request.handler;
249 new_stream.audio_array = audio_array; 250 new_stream.audio_array = audio_array;
250 new_stream.video_array = video_array; 251 new_stream.video_array = video_array;
251 label_stream_map_[label] = new_stream; 252 label_stream_map_[label] = new_stream;
252 if (request.handler) { 253 if (request.handler.get()) {
253 request.handler->OnStreamGenerated(request.request_id, label, 254 request.handler->OnStreamGenerated(
254 audio_array, video_array); 255 request.request_id, label, audio_array, video_array);
255 DVLOG(1) << "MediaStreamDispatcher::OnStreamGenerated(" 256 DVLOG(1) << "MediaStreamDispatcher::OnStreamGenerated("
256 << request.request_id << ", " << label << ")"; 257 << request.request_id << ", " << label << ")";
257 } 258 }
258 requests_.erase(it); 259 requests_.erase(it);
259 break; 260 break;
260 } 261 }
261 } 262 }
262 } 263 }
263 264
264 void MediaStreamDispatcher::OnStreamGenerationFailed(int request_id) { 265 void MediaStreamDispatcher::OnStreamGenerationFailed(int request_id) {
265 DCHECK(main_loop_->BelongsToCurrentThread()); 266 DCHECK(main_loop_->BelongsToCurrentThread());
266 for (RequestList::iterator it = requests_.begin(); 267 for (RequestList::iterator it = requests_.begin();
267 it != requests_.end(); ++it) { 268 it != requests_.end(); ++it) {
268 Request& request = *it; 269 Request& request = *it;
269 if (request.ipc_request == request_id) { 270 if (request.ipc_request == request_id) {
270 if (request.handler) { 271 if (request.handler.get()) {
271 request.handler->OnStreamGenerationFailed(request.request_id); 272 request.handler->OnStreamGenerationFailed(request.request_id);
272 DVLOG(1) << "MediaStreamDispatcher::OnStreamGenerationFailed(" 273 DVLOG(1) << "MediaStreamDispatcher::OnStreamGenerationFailed("
273 << request.request_id << ")\n"; 274 << request.request_id << ")\n";
274 } 275 }
275 requests_.erase(it); 276 requests_.erase(it);
276 break; 277 break;
277 } 278 }
278 } 279 }
279 } 280 }
280 281
(...skipping 17 matching lines...) Expand all
298 Send(new MediaStreamHostMsg_StopGeneratedStream(routing_id(), label)); 299 Send(new MediaStreamHostMsg_StopGeneratedStream(routing_id(), label));
299 return; 300 return;
300 } 301 }
301 302
302 DCHECK(!label.empty()); 303 DCHECK(!label.empty());
303 state->cached_devices.reset(new EnumerationState::CachedDevices( 304 state->cached_devices.reset(new EnumerationState::CachedDevices(
304 label, device_array)); 305 label, device_array));
305 306
306 for (EnumerationRequestList::iterator it = state->requests.begin(); 307 for (EnumerationRequestList::iterator it = state->requests.begin();
307 it != state->requests.end(); ++it) { 308 it != state->requests.end(); ++it) {
308 if (it->handler) { 309 if (it->handler.get()) {
309 it->handler->OnDevicesEnumerated(it->request_id, device_array); 310 it->handler->OnDevicesEnumerated(it->request_id, device_array);
310 DVLOG(1) << "MediaStreamDispatcher::OnDevicesEnumerated(" 311 DVLOG(1) << "MediaStreamDispatcher::OnDevicesEnumerated("
311 << it->request_id << ")"; 312 << it->request_id << ")";
312 } 313 }
313 } 314 }
314 } 315 }
315 316
316 void MediaStreamDispatcher::OnDevicesEnumerationFailed(int request_id) { 317 void MediaStreamDispatcher::OnDevicesEnumerationFailed(int request_id) {
317 DCHECK(main_loop_->BelongsToCurrentThread()); 318 DCHECK(main_loop_->BelongsToCurrentThread());
318 for (RequestList::iterator it = requests_.begin(); 319 for (RequestList::iterator it = requests_.begin();
319 it != requests_.end(); ++it) { 320 it != requests_.end(); ++it) {
320 Request& request = *it; 321 Request& request = *it;
321 if (request.ipc_request == request_id) { 322 if (request.ipc_request == request_id) {
322 if (request.handler) { 323 if (request.handler.get()) {
323 request.handler->OnDevicesEnumerationFailed(request.request_id); 324 request.handler->OnDevicesEnumerationFailed(request.request_id);
324 DVLOG(1) << "MediaStreamDispatcher::OnDevicesEnumerationFailed(" 325 DVLOG(1) << "MediaStreamDispatcher::OnDevicesEnumerationFailed("
325 << request.request_id << ")\n"; 326 << request.request_id << ")\n";
326 } 327 }
327 requests_.erase(it); 328 requests_.erase(it);
328 break; 329 break;
329 } 330 }
330 } 331 }
331 } 332 }
332 333
333 void MediaStreamDispatcher::OnDeviceOpened( 334 void MediaStreamDispatcher::OnDeviceOpened(
334 int request_id, 335 int request_id,
335 const std::string& label, 336 const std::string& label,
336 const StreamDeviceInfo& device_info) { 337 const StreamDeviceInfo& device_info) {
337 DCHECK(main_loop_->BelongsToCurrentThread()); 338 DCHECK(main_loop_->BelongsToCurrentThread());
338 for (RequestList::iterator it = requests_.begin(); 339 for (RequestList::iterator it = requests_.begin();
339 it != requests_.end(); ++it) { 340 it != requests_.end(); ++it) {
340 Request& request = *it; 341 Request& request = *it;
341 if (request.ipc_request == request_id) { 342 if (request.ipc_request == request_id) {
342 Stream new_stream; 343 Stream new_stream;
343 new_stream.handler = request.handler; 344 new_stream.handler = request.handler;
344 if (IsAudioMediaType(device_info.device.type)) { 345 if (IsAudioMediaType(device_info.device.type)) {
345 new_stream.audio_array.push_back(device_info); 346 new_stream.audio_array.push_back(device_info);
346 } else if (IsVideoMediaType(device_info.device.type)) { 347 } else if (IsVideoMediaType(device_info.device.type)) {
347 new_stream.video_array.push_back(device_info); 348 new_stream.video_array.push_back(device_info);
348 } else { 349 } else {
349 NOTREACHED(); 350 NOTREACHED();
350 } 351 }
351 label_stream_map_[label] = new_stream; 352 label_stream_map_[label] = new_stream;
352 if (request.handler) { 353 if (request.handler.get()) {
353 request.handler->OnDeviceOpened(request.request_id, label, 354 request.handler->OnDeviceOpened(request.request_id, label, device_info);
354 device_info);
355 DVLOG(1) << "MediaStreamDispatcher::OnDeviceOpened(" 355 DVLOG(1) << "MediaStreamDispatcher::OnDeviceOpened("
356 << request.request_id << ", " << label << ")"; 356 << request.request_id << ", " << label << ")";
357 } 357 }
358 requests_.erase(it); 358 requests_.erase(it);
359 break; 359 break;
360 } 360 }
361 } 361 }
362 } 362 }
363 363
364 void MediaStreamDispatcher::OnDeviceOpenFailed(int request_id) { 364 void MediaStreamDispatcher::OnDeviceOpenFailed(int request_id) {
365 DCHECK(main_loop_->BelongsToCurrentThread()); 365 DCHECK(main_loop_->BelongsToCurrentThread());
366 for (RequestList::iterator it = requests_.begin(); 366 for (RequestList::iterator it = requests_.begin();
367 it != requests_.end(); ++it) { 367 it != requests_.end(); ++it) {
368 Request& request = *it; 368 Request& request = *it;
369 if (request.ipc_request == request_id) { 369 if (request.ipc_request == request_id) {
370 if (request.handler) { 370 if (request.handler.get()) {
371 request.handler->OnDeviceOpenFailed(request.request_id); 371 request.handler->OnDeviceOpenFailed(request.request_id);
372 DVLOG(1) << "MediaStreamDispatcher::OnDeviceOpenFailed(" 372 DVLOG(1) << "MediaStreamDispatcher::OnDeviceOpenFailed("
373 << request.request_id << ")\n"; 373 << request.request_id << ")\n";
374 } 374 }
375 requests_.erase(it); 375 requests_.erase(it);
376 break; 376 break;
377 } 377 }
378 } 378 }
379 } 379 }
380 380
(...skipping 15 matching lines...) Expand all
396 int index) { 396 int index) {
397 LabelStreamMap::iterator it = label_stream_map_.find(label); 397 LabelStreamMap::iterator it = label_stream_map_.find(label);
398 if (it == label_stream_map_.end()) 398 if (it == label_stream_map_.end())
399 return StreamDeviceInfo::kNoId; 399 return StreamDeviceInfo::kNoId;
400 400
401 DCHECK_GT(it->second.video_array.size(), static_cast<size_t>(index)); 401 DCHECK_GT(it->second.video_array.size(), static_cast<size_t>(index));
402 return it->second.video_array[index].session_id; 402 return it->second.video_array[index].session_id;
403 } 403 }
404 404
405 } // namespace content 405 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/gpu/input_handler_manager.cc ('k') | content/renderer/media/renderer_gpu_video_decoder_factories.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698