Chromium Code Reviews| Index: content/renderer/media/audio_message_filter.cc |
| diff --git a/content/renderer/media/audio_message_filter.cc b/content/renderer/media/audio_message_filter.cc |
| index 22915c521c53264ededd36610bf119e14089c95c..3c2c964619789c2a0281e7b98a6f504cc365510d 100644 |
| --- a/content/renderer/media/audio_message_filter.cc |
| +++ b/content/renderer/media/audio_message_filter.cc |
| @@ -8,7 +8,9 @@ |
| #include "base/message_loop.h" |
| #include "base/time.h" |
| #include "content/common/child_process.h" |
| +#include "content/common/child_thread.h" |
| #include "content/common/media/audio_messages.h" |
| +#include "content/renderer/media/renderer_audio_hardware_config.h" |
| #include "content/renderer/render_thread_impl.h" |
| #include "ipc/ipc_logging.h" |
| @@ -96,6 +98,7 @@ bool AudioMessageFilter::OnMessageReceived(const IPC::Message& message) { |
| IPC_BEGIN_MESSAGE_MAP(AudioMessageFilter, message) |
| IPC_MESSAGE_HANDLER(AudioMsg_NotifyStreamCreated, OnStreamCreated) |
| IPC_MESSAGE_HANDLER(AudioMsg_NotifyStreamStateChanged, OnStreamStateChanged) |
| + IPC_MESSAGE_HANDLER(AudioMsg_NotifyDeviceChanged, OnOutputDeviceChanged) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| @@ -177,4 +180,23 @@ void AudioMessageFilter::OnStreamStateChanged( |
| it->second->OnStateChanged(state); |
| } |
| +void AudioMessageFilter::OnOutputDeviceChanged(int stream_id, |
| + int new_buffer_size, |
| + int new_sample_rate) { |
| + if (MessageLoop::current() != ChildThread::current()->message_loop()) { |
|
henrika (OOO until Aug 14)
2013/01/29 10:46:49
Please add add a comment on why this part is neede
DaleCurtis
2013/01/29 19:36:00
Yeah, I don't really like the way this is currentl
DaleCurtis
2013/01/30 01:31:06
Removed all this in favor of having RenderThreadIm
|
| + ChildThread::current()->message_loop()->PostTask(FROM_HERE, base::Bind( |
| + &AudioMessageFilter::OnOutputDeviceChanged, this, |
| + stream_id, new_buffer_size, new_sample_rate)); |
| + return; |
| + } |
| + |
| + DelegateMap::const_iterator it = delegates_.find(stream_id); |
|
miu
2013/01/29 04:55:43
Need to use delegates_lock_ here for thread-safety
DaleCurtis
2013/01/30 01:31:06
Removed since this function doesn't really need th
|
| + DLOG_IF(WARNING, it == delegates_.end()) |
| + << "No delegate found for device change. "; |
| + if (it != delegates_.end()) { |
| + RenderThreadImpl::current()->GetAudioHardwareConfig()->UpdateOutputConfig( |
|
henrika (OOO until Aug 14)
2013/01/29 10:46:49
I always use DCHECK in these types of situations.
DaleCurtis
2013/01/30 01:31:06
Removed.
|
| + new_buffer_size, new_sample_rate); |
| + } |
| +} |
| + |
| } // namespace content |