| Index: chrome/renderer/render_view.h
|
| diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h
|
| index 59e2fad808dd615b255cb46dc3d69742ff01cd94..9ff7e06de6a87f846b3bca95662ebcb50fcb9e92 100644
|
| --- a/chrome/renderer/render_view.h
|
| +++ b/chrome/renderer/render_view.h
|
| @@ -11,6 +11,8 @@
|
| #include "base/basictypes.h"
|
| #include "base/gfx/point.h"
|
| #include "base/gfx/rect.h"
|
| +#include "base/id_map.h"
|
| +#include "base/shared_memory.h"
|
| #include "base/timer.h"
|
| #include "base/values.h"
|
| #include "build/build_config.h"
|
| @@ -23,6 +25,7 @@
|
| #include "chrome/renderer/external_host_bindings.h"
|
| #include "chrome/renderer/external_js_object.h"
|
| #include "chrome/renderer/render_widget.h"
|
| +#include "media/audio/audio_output.h"
|
| #include "testing/gtest/include/gtest/gtest_prod.h"
|
| #include "webkit/glue/console_message_level.h"
|
| #include "webkit/glue/dom_serializer_delegate.h"
|
| @@ -38,6 +41,7 @@
|
| #pragma warning(disable: 4250)
|
| #endif
|
|
|
| +class AudioRendererImpl;
|
| class DictionaryValue;
|
| class DebugMessageHandler;
|
| class FilePath;
|
| @@ -342,6 +346,19 @@ class RenderView : public RenderWidget,
|
| // the renderer, which processes all IPC, to any I/O should be non-blocking.
|
| MessageLoop* GetMessageLoopForIO();
|
|
|
| + // Register the audio renderer and try to create an audio output stream in the
|
| + // browser process. Always return a stream id. Audio renderer will then
|
| + // receive state change notification messages.
|
| + int32 CreateAudioStream(AudioRendererImpl* renderer,
|
| + AudioManager::Format format, int channels,
|
| + int sample_rate, int bits_per_sample,
|
| + size_t packet_size);
|
| + void StartAudioStream(int stream_id);
|
| + void CloseAudioStream(int stream_id);
|
| + void NotifyAudioPacketReady(int stream_id);
|
| + void GetAudioVolume(int stream_id);
|
| + void SetAudioVolume(int stream_id, double left, double right);
|
| +
|
| private:
|
| FRIEND_TEST(RenderViewTest, OnLoadAlternateHTMLText);
|
| FRIEND_TEST(RenderViewTest, OnNavStateChanged);
|
| @@ -524,6 +541,21 @@ class RenderView : public RenderWidget,
|
| // grouping, and should form our own grouping.
|
| void OnDisassociateFromPopupCount();
|
|
|
| + // Received when browser process wants more audio packet.
|
| + void OnRequestAudioPacket(int stream_id);
|
| +
|
| + // Received when browser process has created an audio output stream for us.
|
| + void OnAudioStreamCreated(int stream_id, base::SharedMemoryHandle handle,
|
| + int length);
|
| +
|
| + // Received when internal state of browser process' audio output device has
|
| + // changed.
|
| + void OnAudioStreamStateChanged(int stream_id, AudioOutputStream::State state,
|
| + int info);
|
| +
|
| + // Notification of volume property of an audio output stream.
|
| + void OnAudioStreamVolume(int stream_id, double left, double right);
|
| +
|
| // Switches the frame's CSS media type to "print" and calculate the number of
|
| // printed pages that are to be expected. |frame| will be used to calculate
|
| // the number of expected pages for this frame only.
|
| @@ -752,6 +784,9 @@ class RenderView : public RenderWidget,
|
| // change but is overridden by tests.
|
| int delay_seconds_for_form_state_sync_;
|
|
|
| + // A set of audio renderers registered to use IPC for audio output.
|
| + IDMap<AudioRendererImpl> audio_renderers_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(RenderView);
|
| };
|
|
|
|
|