OLD | NEW |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |