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

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

Issue 2697793002: Add mojo interface+impl for audio stream control. (Closed)
Patch Set: Don't inline AudioOutputDelegate(EventHandler) dtor. Created 3 years, 9 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
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/audio_renderer_host.h" 5 #include "content/browser/renderer_host/media/audio_renderer_host.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 303
304 MediaObserver* const media_observer = 304 MediaObserver* const media_observer =
305 GetContentClient()->browser()->GetMediaObserver(); 305 GetContentClient()->browser()->GetMediaObserver();
306 306
307 MediaInternals* const media_internals = MediaInternals::GetInstance(); 307 MediaInternals* const media_internals = MediaInternals::GetInstance();
308 std::unique_ptr<media::AudioLog> audio_log = media_internals->CreateAudioLog( 308 std::unique_ptr<media::AudioLog> audio_log = media_internals->CreateAudioLog(
309 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER); 309 media::AudioLogFactory::AUDIO_OUTPUT_CONTROLLER);
310 media_internals->SetWebContentsTitleForAudioLogEntry( 310 media_internals->SetWebContentsTitleForAudioLogEntry(
311 stream_id, render_process_id_, render_frame_id, audio_log.get()); 311 stream_id, render_process_id_, render_frame_id, audio_log.get());
312 delegates_.push_back( 312 delegates_.push_back(
313 base::WrapUnique<AudioOutputDelegate>(new AudioOutputDelegateImpl( 313 base::WrapUnique<media::AudioOutputDelegate>(new AudioOutputDelegateImpl(
314 this, audio_manager_, std::move(audio_log), mirroring_manager_, 314 this, audio_manager_, std::move(audio_log), mirroring_manager_,
315 media_observer, stream_id, render_frame_id, render_process_id_, 315 media_observer, stream_id, render_frame_id, render_process_id_,
316 params, device_unique_id))); 316 params, device_unique_id)));
317 } 317 }
318 318
319 void AudioRendererHost::OnPlayStream(int stream_id) { 319 void AudioRendererHost::OnPlayStream(int stream_id) {
320 DCHECK_CURRENTLY_ON(BrowserThread::IO); 320 DCHECK_CURRENTLY_ON(BrowserThread::IO);
321 321
322 AudioOutputDelegate* delegate = LookupById(stream_id); 322 media::AudioOutputDelegate* delegate = LookupById(stream_id);
323 if (!delegate) { 323 if (!delegate) {
324 SendErrorMessage(stream_id); 324 SendErrorMessage(stream_id);
325 return; 325 return;
326 } 326 }
327 327
328 delegate->OnPlayStream(); 328 delegate->OnPlayStream();
329 } 329 }
330 330
331 void AudioRendererHost::OnPauseStream(int stream_id) { 331 void AudioRendererHost::OnPauseStream(int stream_id) {
332 DCHECK_CURRENTLY_ON(BrowserThread::IO); 332 DCHECK_CURRENTLY_ON(BrowserThread::IO);
333 333
334 AudioOutputDelegate* delegate = LookupById(stream_id); 334 media::AudioOutputDelegate* delegate = LookupById(stream_id);
335 if (!delegate) { 335 if (!delegate) {
336 SendErrorMessage(stream_id); 336 SendErrorMessage(stream_id);
337 return; 337 return;
338 } 338 }
339 339
340 delegate->OnPauseStream(); 340 delegate->OnPauseStream();
341 } 341 }
342 342
343 void AudioRendererHost::OnSetVolume(int stream_id, double volume) { 343 void AudioRendererHost::OnSetVolume(int stream_id, double volume) {
344 DCHECK_CURRENTLY_ON(BrowserThread::IO); 344 DCHECK_CURRENTLY_ON(BrowserThread::IO);
345 345
346 AudioOutputDelegate* delegate = LookupById(stream_id); 346 media::AudioOutputDelegate* delegate = LookupById(stream_id);
347 if (!delegate) { 347 if (!delegate) {
348 SendErrorMessage(stream_id); 348 SendErrorMessage(stream_id);
349 return; 349 return;
350 } 350 }
351 351
352 // Make sure the volume is valid. 352 // Make sure the volume is valid.
353 if (volume < 0 || volume > 1.0) 353 if (volume < 0 || volume > 1.0)
354 return; 354 return;
355 delegate->OnSetVolume(volume); 355 delegate->OnSetVolume(volume);
356 } 356 }
(...skipping 16 matching lines...) Expand all
373 std::swap(*i, delegates_.back()); 373 std::swap(*i, delegates_.back());
374 delegates_.pop_back(); 374 delegates_.pop_back();
375 } 375 }
376 376
377 AudioRendererHost::AudioOutputDelegateVector::iterator 377 AudioRendererHost::AudioOutputDelegateVector::iterator
378 AudioRendererHost::LookupIteratorById(int stream_id) { 378 AudioRendererHost::LookupIteratorById(int stream_id) {
379 DCHECK_CURRENTLY_ON(BrowserThread::IO); 379 DCHECK_CURRENTLY_ON(BrowserThread::IO);
380 380
381 return std::find_if( 381 return std::find_if(
382 delegates_.begin(), delegates_.end(), 382 delegates_.begin(), delegates_.end(),
383 [stream_id](const std::unique_ptr<AudioOutputDelegate>& d) { 383 [stream_id](const std::unique_ptr<media::AudioOutputDelegate>& d) {
384 return d->GetStreamId() == stream_id; 384 return d->GetStreamId() == stream_id;
385 }); 385 });
386 } 386 }
387 387
388 AudioOutputDelegate* AudioRendererHost::LookupById(int stream_id) { 388 media::AudioOutputDelegate* AudioRendererHost::LookupById(int stream_id) {
389 DCHECK_CURRENTLY_ON(BrowserThread::IO); 389 DCHECK_CURRENTLY_ON(BrowserThread::IO);
390 390
391 auto i = LookupIteratorById(stream_id); 391 auto i = LookupIteratorById(stream_id);
392 return i != delegates_.end() ? i->get() : nullptr; 392 return i != delegates_.end() ? i->get() : nullptr;
393 } 393 }
394 394
395 bool AudioRendererHost::IsAuthorizationStarted(int stream_id) { 395 bool AudioRendererHost::IsAuthorizationStarted(int stream_id) {
396 DCHECK_CURRENTLY_ON(BrowserThread::IO); 396 DCHECK_CURRENTLY_ON(BrowserThread::IO);
397 return authorizations_.find(stream_id) != authorizations_.end(); 397 return authorizations_.find(stream_id) != authorizations_.end();
398 } 398 }
399 399
400 void AudioRendererHost::OverrideDevicePermissionsForTesting(bool has_access) { 400 void AudioRendererHost::OverrideDevicePermissionsForTesting(bool has_access) {
401 authorization_handler_.OverridePermissionsForTesting(has_access); 401 authorization_handler_.OverridePermissionsForTesting(has_access);
402 } 402 }
403 } // namespace content 403 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/media/audio_renderer_host.h ('k') | content/common/media/audio_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698