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

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

Issue 10912004: Begin adding support for tab mirroring via the MediaStream audio/video capturing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: AudioManager injection into MediaStreamManager, consistent enum naming; per wjia@ comments. Also, … Created 8 years, 3 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/media_stream_dispatcher_host.h" 5 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h"
6 6
7 #include "content/browser/browser_main_loop.h" 7 #include "content/browser/browser_main_loop.h"
8 #include "content/common/media/media_stream_messages.h" 8 #include "content/common/media/media_stream_messages.h"
9 #include "content/common/media/media_stream_options.h" 9 #include "content/common/media/media_stream_options.h"
10 #include "googleurl/src/gurl.h" 10 #include "googleurl/src/gurl.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 118
119 Send(new MediaStreamMsg_DeviceOpened( 119 Send(new MediaStreamMsg_DeviceOpened(
120 request.render_view_id, request.page_request_id, label, video_device)); 120 request.render_view_id, request.page_request_id, label, video_device));
121 } 121 }
122 122
123 bool MediaStreamDispatcherHost::OnMessageReceived( 123 bool MediaStreamDispatcherHost::OnMessageReceived(
124 const IPC::Message& message, bool* message_was_ok) { 124 const IPC::Message& message, bool* message_was_ok) {
125 bool handled = true; 125 bool handled = true;
126 IPC_BEGIN_MESSAGE_MAP_EX(MediaStreamDispatcherHost, message, *message_was_ok) 126 IPC_BEGIN_MESSAGE_MAP_EX(MediaStreamDispatcherHost, message, *message_was_ok)
127 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_GenerateStream, OnGenerateStream) 127 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_GenerateStream, OnGenerateStream)
128 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_GenerateStreamForDevice,
129 OnGenerateStreamForDevice)
128 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_CancelGenerateStream, 130 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_CancelGenerateStream,
129 OnCancelGenerateStream) 131 OnCancelGenerateStream)
130 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_StopGeneratedStream, 132 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_StopGeneratedStream,
131 OnStopGeneratedStream) 133 OnStopGeneratedStream)
132 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_EnumerateDevices, 134 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_EnumerateDevices,
133 OnEnumerateDevices) 135 OnEnumerateDevices)
134 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_OpenDevice, 136 IPC_MESSAGE_HANDLER(MediaStreamHostMsg_OpenDevice,
135 OnOpenDevice) 137 OnOpenDevice)
136 IPC_MESSAGE_UNHANDLED(handled = false) 138 IPC_MESSAGE_UNHANDLED(handled = false)
137 IPC_END_MESSAGE_MAP_EX() 139 IPC_END_MESSAGE_MAP_EX()
(...skipping 19 matching lines...) Expand all
157 DCHECK(streams_.empty()); 159 DCHECK(streams_.empty());
158 } 160 }
159 161
160 void MediaStreamDispatcherHost::OnGenerateStream( 162 void MediaStreamDispatcherHost::OnGenerateStream(
161 int render_view_id, 163 int render_view_id,
162 int page_request_id, 164 int page_request_id,
163 const media_stream::StreamOptions& components, 165 const media_stream::StreamOptions& components,
164 const GURL& security_origin) { 166 const GURL& security_origin) {
165 DVLOG(1) << "MediaStreamDispatcherHost::OnGenerateStream(" 167 DVLOG(1) << "MediaStreamDispatcherHost::OnGenerateStream("
166 << render_view_id << ", " 168 << render_view_id << ", "
167 << page_request_id << ", [ " 169 << page_request_id << ", ["
168 << (components.audio ? "audio " : "") 170 << " audio:" << components.audio_type
169 << (components.video ? "video " : "") 171 << " video:" << components.video_type
170 << "], " 172 << " ], "
171 << security_origin.spec() << ")"; 173 << security_origin.spec() << ")";
172 174
173 std::string label; 175 std::string label;
174 GetManager()->GenerateStream(this, render_process_id_, render_view_id, 176 GetManager()->GenerateStream(this, render_process_id_, render_view_id,
175 components, security_origin, &label); 177 components, security_origin, &label);
176 DCHECK(!label.empty()); 178 DCHECK(!label.empty());
177 streams_[label] = StreamRequest(render_view_id, page_request_id); 179 streams_[label] = StreamRequest(render_view_id, page_request_id);
178 } 180 }
179 181
182 void MediaStreamDispatcherHost::OnGenerateStreamForDevice(
183 int render_view_id,
184 int page_request_id,
185 const media_stream::StreamOptions& components,
186 const std::string& device_id,
no longer working on chromium 2012/09/10 09:11:04 add a DCHECK to make sure device_id is not empty?
miu 2012/09/10 21:24:38 Done.
187 const GURL& security_origin) {
188 DVLOG(1) << "MediaStreamDispatcherHost::OnGenerateStreamForDevice("
189 << render_view_id << ", "
190 << page_request_id << ", ["
191 << " audio:" << components.audio_type
192 << " video:" << components.video_type
193 << " ], "
194 << device_id << ", "
195 << security_origin.spec() << ")";
196
197 std::string label;
198 GetManager()->GenerateStreamForDevice(
no longer working on chromium 2012/09/10 09:11:04 why not have the GenerateStreamForDevice return a
miu 2012/09/10 21:24:38 Google C++ style discourages returning non-POD typ
199 this, render_process_id_, render_view_id,
200 components, device_id, security_origin, &label);
201 DCHECK(!label.empty());
202 streams_[label] = StreamRequest(render_view_id, page_request_id);
203 }
204
180 void MediaStreamDispatcherHost::OnCancelGenerateStream(int render_view_id, 205 void MediaStreamDispatcherHost::OnCancelGenerateStream(int render_view_id,
181 int page_request_id) { 206 int page_request_id) {
182 DVLOG(1) << "MediaStreamDispatcherHost::OnCancelGenerateStream(" 207 DVLOG(1) << "MediaStreamDispatcherHost::OnCancelGenerateStream("
183 << render_view_id << ", " 208 << render_view_id << ", "
184 << page_request_id << ")"; 209 << page_request_id << ")";
185 210
186 for (StreamMap::iterator it = streams_.begin(); it != streams_.end(); ++it) { 211 for (StreamMap::iterator it = streams_.begin(); it != streams_.end(); ++it) {
187 if (it->second.render_view_id == render_view_id && 212 if (it->second.render_view_id == render_view_id &&
188 it->second.page_request_id == page_request_id) { 213 it->second.page_request_id == page_request_id) {
189 GetManager()->CancelGenerateStream(it->first); 214 GetManager()->CancelGenerateStream(it->first);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 device_id, type, security_origin, &label); 262 device_id, type, security_origin, &label);
238 DCHECK(!label.empty()); 263 DCHECK(!label.empty());
239 streams_[label] = StreamRequest(render_view_id, page_request_id); 264 streams_[label] = StreamRequest(render_view_id, page_request_id);
240 } 265 }
241 266
242 MediaStreamManager* MediaStreamDispatcherHost::GetManager() { 267 MediaStreamManager* MediaStreamDispatcherHost::GetManager() {
243 return BrowserMainLoop::GetMediaStreamManager(); 268 return BrowserMainLoop::GetMediaStreamManager();
244 } 269 }
245 270
246 } // namespace media_stream 271 } // namespace media_stream
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698