diff options
author | henrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-10 07:51:19 +0000 |
---|---|---|
committer | henrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-10 07:51:19 +0000 |
commit | 376bc263943f45fa6de1b200f01bacca184cf900 (patch) | |
tree | df14d69f86a2bde708ade16b3a24fa96402e41b9 /content | |
parent | e59bbdbe822e9a3b106fbb9ec0f5b0b7df184b71 (diff) | |
download | chromium_src-376bc263943f45fa6de1b200f01bacca184cf900.zip chromium_src-376bc263943f45fa6de1b200f01bacca184cf900.tar.gz chromium_src-376bc263943f45fa6de1b200f01bacca184cf900.tar.bz2 |
Adds proper IPC usage for AudioDevice::GetAudioHardwareBufferSize().
This method did previously call directly into media/audio.
BUG=none
TEST=WebAudio demo in multi-process mode
Review URL: http://codereview.chromium.org/8497014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109388 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/browser/renderer_host/render_message_filter.cc | 6 | ||||
-rw-r--r-- | content/browser/renderer_host/render_message_filter.h | 1 | ||||
-rw-r--r-- | content/common/view_messages.h | 4 | ||||
-rw-r--r-- | content/renderer/media/audio_device.cc | 11 |
4 files changed, 17 insertions, 5 deletions
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc index 624af29..8f58ec8 100644 --- a/content/browser/renderer_host/render_message_filter.cc +++ b/content/browser/renderer_host/render_message_filter.cc @@ -356,6 +356,8 @@ bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message, OnCacheableMetadataAvailable) IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_Keygen, OnKeygen) IPC_MESSAGE_HANDLER(ViewHostMsg_AsyncOpenFile, OnAsyncOpenFile) + IPC_MESSAGE_HANDLER(ViewHostMsg_GetHardwareBufferSize, + OnGetHardwareBufferSize) IPC_MESSAGE_HANDLER(ViewHostMsg_GetHardwareInputSampleRate, OnGetHardwareInputSampleRate) IPC_MESSAGE_HANDLER(ViewHostMsg_GetHardwareSampleRate, @@ -606,6 +608,10 @@ void RenderMessageFilter::OnGenerateRoutingID(int* route_id) { *route_id = render_widget_helper_->GetNextRoutingID(); } +void RenderMessageFilter::OnGetHardwareBufferSize(uint32* buffer_size) { + *buffer_size = static_cast<uint32>(media::GetAudioHardwareBufferSize()); +} + void RenderMessageFilter::OnGetHardwareInputSampleRate(double* sample_rate) { *sample_rate = media::GetAudioInputHardwareSampleRate(); } diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h index a38aa9e..1215554 100644 --- a/content/browser/renderer_host/render_message_filter.h +++ b/content/browser/renderer_host/render_message_filter.h @@ -178,6 +178,7 @@ class RenderMessageFilter : public BrowserMessageFilter { void OnCheckNotificationPermission(const GURL& source_origin, int* permission_level); + void OnGetHardwareBufferSize(uint32* buffer_size); void OnGetHardwareInputSampleRate(double* sample_rate); void OnGetHardwareSampleRate(double* sample_rate); diff --git a/content/common/view_messages.h b/content/common/view_messages.h index ce9ea3e..a5315e6 100644 --- a/content/common/view_messages.h +++ b/content/common/view_messages.h @@ -682,6 +682,10 @@ IPC_MESSAGE_ROUTED1(ViewMsg_SetCSSColors, IPC_SYNC_MESSAGE_CONTROL0_1(ViewHostMsg_GenerateRoutingID, int /* routing_id */) +// Asks the browser for the default audio hardware buffer-size. +IPC_SYNC_MESSAGE_CONTROL0_1(ViewHostMsg_GetHardwareBufferSize, + uint32 /* buffer_size */) + // Asks the browser for the default audio input hardware sample-rate. IPC_SYNC_MESSAGE_CONTROL0_1(ViewHostMsg_GetHardwareInputSampleRate, double /* sample_rate */) diff --git a/content/renderer/media/audio_device.cc b/content/renderer/media/audio_device.cc index 7f007da..22edb16 100644 --- a/content/renderer/media/audio_device.cc +++ b/content/renderer/media/audio_device.cc @@ -213,7 +213,6 @@ void AudioDevice::Run() { while ((sizeof(pending_data) == socket_->Receive(&pending_data, sizeof(pending_data))) && (pending_data >= 0)) { - // Convert the number of pending bytes in the render buffer // into milliseconds. audio_delay_milliseconds_ = pending_data / bytes_per_ms; @@ -247,10 +246,12 @@ double AudioDevice::GetAudioHardwareSampleRate() { size_t AudioDevice::GetAudioHardwareBufferSize() { // Uses cached value if possible. - static size_t buffer_size = 0; + static uint32 buffer_size = 0; - if (!buffer_size) - buffer_size = media::GetAudioHardwareBufferSize(); + if (!buffer_size) { + RenderThreadImpl::current()->Send( + new ViewHostMsg_GetHardwareBufferSize(&buffer_size)); + } - return buffer_size; + return static_cast<size_t>(buffer_size); } |