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

Side by Side Diff: content/browser/renderer_host/media/video_capture_manager.cc

Issue 16294003: Update content/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased 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/browser/renderer_host/media/video_capture_manager.h" 5 #include "content/browser/renderer_host/media/video_capture_manager.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 55
56 VideoCaptureManager::~VideoCaptureManager() { 56 VideoCaptureManager::~VideoCaptureManager() {
57 DCHECK(devices_.empty()); 57 DCHECK(devices_.empty());
58 DCHECK(controllers_.empty()); 58 DCHECK(controllers_.empty());
59 } 59 }
60 60
61 void VideoCaptureManager::Register(MediaStreamProviderListener* listener, 61 void VideoCaptureManager::Register(MediaStreamProviderListener* listener,
62 base::MessageLoopProxy* device_thread_loop) { 62 base::MessageLoopProxy* device_thread_loop) {
63 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 63 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
64 DCHECK(!listener_); 64 DCHECK(!listener_);
65 DCHECK(!device_loop_); 65 DCHECK(!device_loop_.get());
66 listener_ = listener; 66 listener_ = listener;
67 device_loop_ = device_thread_loop; 67 device_loop_ = device_thread_loop;
68 } 68 }
69 69
70 void VideoCaptureManager::Unregister() { 70 void VideoCaptureManager::Unregister() {
71 DCHECK(listener_); 71 DCHECK(listener_);
72 listener_ = NULL; 72 listener_ = NULL;
73 } 73 }
74 74
75 void VideoCaptureManager::EnumerateDevices(MediaStreamType stream_type) { 75 void VideoCaptureManager::EnumerateDevices(MediaStreamType stream_type) {
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 base::Callback<void(VideoCaptureController*)> added_cb) { 480 base::Callback<void(VideoCaptureController*)> added_cb) {
481 DCHECK(IsOnDeviceThread()); 481 DCHECK(IsOnDeviceThread());
482 482
483 media::VideoCaptureDevice* video_capture_device = 483 media::VideoCaptureDevice* video_capture_device =
484 GetDeviceInternal(capture_params.session_id); 484 GetDeviceInternal(capture_params.session_id);
485 scoped_refptr<VideoCaptureController> controller; 485 scoped_refptr<VideoCaptureController> controller;
486 if (video_capture_device) { 486 if (video_capture_device) {
487 Controllers::iterator cit = controllers_.find(video_capture_device); 487 Controllers::iterator cit = controllers_.find(video_capture_device);
488 if (cit == controllers_.end()) { 488 if (cit == controllers_.end()) {
489 controller = new VideoCaptureController(this); 489 controller = new VideoCaptureController(this);
490 controllers_[video_capture_device] = new Controller(controller, handler); 490 controllers_[video_capture_device] =
491 new Controller(controller.get(), handler);
491 } else { 492 } else {
492 controllers_[video_capture_device]->handlers.push_front(handler); 493 controllers_[video_capture_device]->handlers.push_front(handler);
493 controller = controllers_[video_capture_device]->controller; 494 controller = controllers_[video_capture_device]->controller;
494 } 495 }
495 } 496 }
496 added_cb.Run(controller); 497 added_cb.Run(controller.get());
497 } 498 }
498 499
499 void VideoCaptureManager::RemoveController( 500 void VideoCaptureManager::RemoveController(
500 VideoCaptureController* controller, 501 VideoCaptureController* controller,
501 VideoCaptureControllerEventHandler* handler) { 502 VideoCaptureControllerEventHandler* handler) {
502 DCHECK(handler); 503 DCHECK(handler);
503 device_loop_->PostTask( 504 device_loop_->PostTask(
504 FROM_HERE, 505 FROM_HERE,
505 base::Bind(&VideoCaptureManager::DoRemoveControllerOnDeviceThread, this, 506 base::Bind(&VideoCaptureManager::DoRemoveControllerOnDeviceThread, this,
506 make_scoped_refptr(controller), handler)); 507 make_scoped_refptr(controller), handler));
507 } 508 }
508 509
509 void VideoCaptureManager::DoRemoveControllerOnDeviceThread( 510 void VideoCaptureManager::DoRemoveControllerOnDeviceThread(
510 VideoCaptureController* controller, 511 VideoCaptureController* controller,
511 VideoCaptureControllerEventHandler* handler) { 512 VideoCaptureControllerEventHandler* handler) {
512 DCHECK(IsOnDeviceThread()); 513 DCHECK(IsOnDeviceThread());
513 514
514 for (Controllers::iterator cit = controllers_.begin(); 515 for (Controllers::iterator cit = controllers_.begin();
515 cit != controllers_.end(); ++cit) { 516 cit != controllers_.end(); ++cit) {
516 if (controller == cit->second->controller) { 517 if (controller == cit->second->controller.get()) {
517 Handlers& handlers = cit->second->handlers; 518 Handlers& handlers = cit->second->handlers;
518 for (Handlers::iterator hit = handlers.begin(); 519 for (Handlers::iterator hit = handlers.begin();
519 hit != handlers.end(); ++hit) { 520 hit != handlers.end(); ++hit) {
520 if ((*hit) == handler) { 521 if ((*hit) == handler) {
521 handlers.erase(hit); 522 handlers.erase(hit);
522 break; 523 break;
523 } 524 }
524 } 525 }
525 if (handlers.empty() && cit->second->ready_to_delete) { 526 if (handlers.empty() && cit->second->ready_to_delete) {
526 delete cit->second; 527 delete cit->second;
(...skipping 30 matching lines...) Expand all
557 558
558 VideoCaptureDevices::iterator dit = devices_.find(capture_session_id); 559 VideoCaptureDevices::iterator dit = devices_.find(capture_session_id);
559 if (dit != devices_.end()) { 560 if (dit != devices_.end()) {
560 return dit->second.capture_device; 561 return dit->second.capture_device;
561 } 562 }
562 } 563 }
563 return NULL; 564 return NULL;
564 } 565 }
565 566
566 } // namespace content 567 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698