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

Side by Side Diff: chrome/browser/media/media_internals.cc

Issue 10168008: Show camera and microphone status indicators. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updated the media_stream_dispatcher_unittest Created 8 years, 7 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/media/media_internals.h" 5 #include "chrome/browser/media/media_internals.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/string16.h" 8 #include "base/string16.h"
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "chrome/browser/media/media_internals_observer.h" 10 #include "chrome/browser/media/media_internals_observer.h"
11 #include "chrome/browser/media/media_stream_capture_indicator.h"
11 #include "content/public/browser/browser_thread.h" 12 #include "content/public/browser/browser_thread.h"
12 #include "content/public/browser/web_ui.h" 13 #include "content/public/browser/web_ui.h"
13 #include "media/base/media_log.h" 14 #include "media/base/media_log.h"
14 #include "media/base/media_log_event.h" 15 #include "media/base/media_log_event.h"
15 16
16 using content::BrowserThread; 17 using content::BrowserThread;
17 18
18 MediaInternals* MediaInternals::GetInstance() { 19 MediaInternals* MediaInternals::GetInstance() {
19 return Singleton<MediaInternals>::get(); 20 return Singleton<MediaInternals>::get();
20 } 21 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 // Notify observers that |event| has occured. 57 // Notify observers that |event| has occured.
57 DictionaryValue dict; 58 DictionaryValue dict;
58 dict.SetInteger("renderer", render_process_id); 59 dict.SetInteger("renderer", render_process_id);
59 dict.SetInteger("player", event.id); 60 dict.SetInteger("player", event.id);
60 dict.SetString("type", media::MediaLog::EventTypeToString(event.type)); 61 dict.SetString("type", media::MediaLog::EventTypeToString(event.type));
61 dict.SetDouble("time", event.time.ToDoubleT()); 62 dict.SetDouble("time", event.time.ToDoubleT());
62 dict.Set("params", event.params.DeepCopy()); 63 dict.Set("params", event.params.DeepCopy());
63 SendUpdate("media.onMediaEvent", &dict); 64 SendUpdate("media.onMediaEvent", &dict);
64 } 65 }
65 66
67 void MediaInternals::OnCaptureDevicesOpened(
68 int render_process_id,
69 int render_view_id,
70 const content::MediaStreamDevices& devices) {
71 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
72 if (!media_stream_capture_indicator_.get())
73 media_stream_capture_indicator_ = new MediaStreamCaptureIndicator();
74 media_stream_capture_indicator_->CaptureDevicesOpened(render_process_id,
75 render_view_id,
76 devices);
77 }
78
79 void MediaInternals::OnCaptureDevicesClosed(
80 int render_process_id,
81 int render_view_id,
82 const content::MediaStreamDevices& devices) {
83 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
84 media_stream_capture_indicator_->CaptureDevicesClosed(render_process_id,
85 render_view_id,
86 devices);
87 }
88
66 void MediaInternals::AddObserver(MediaInternalsObserver* observer) { 89 void MediaInternals::AddObserver(MediaInternalsObserver* observer) {
67 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 90 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
68 observers_.AddObserver(observer); 91 observers_.AddObserver(observer);
69 } 92 }
70 93
71 void MediaInternals::RemoveObserver(MediaInternalsObserver* observer) { 94 void MediaInternals::RemoveObserver(MediaInternalsObserver* observer) {
72 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 95 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
73 observers_.RemoveObserver(observer); 96 observers_.RemoveObserver(observer);
74 } 97 }
75 98
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 131
109 void MediaInternals::SendUpdate(const std::string& function, Value* value) { 132 void MediaInternals::SendUpdate(const std::string& function, Value* value) {
110 // Only bother serializing the update to JSON if someone is watching. 133 // Only bother serializing the update to JSON if someone is watching.
111 if (observers_.size()) { 134 if (observers_.size()) {
112 std::vector<const Value*> args; 135 std::vector<const Value*> args;
113 args.push_back(value); 136 args.push_back(value);
114 string16 update = content::WebUI::GetJavascriptCall(function, args); 137 string16 update = content::WebUI::GetJavascriptCall(function, args);
115 FOR_EACH_OBSERVER(MediaInternalsObserver, observers_, OnUpdate(update)); 138 FOR_EACH_OBSERVER(MediaInternalsObserver, observers_, OnUpdate(update));
116 } 139 }
117 } 140 }
OLDNEW
« no previous file with comments | « chrome/browser/media/media_internals.h ('k') | chrome/browser/media/media_stream_capture_indicator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698