| Index: content/renderer/media/audio_message_filter.h
|
| diff --git a/content/renderer/media/audio_message_filter.h b/content/renderer/media/audio_message_filter.h
|
| index 47a5ed8c8da4ee75c2cb5133bd387bf078908e6c..d1a73ce910d3a0d60a7aea8a33d75f2a14b5eeb2 100644
|
| --- a/content/renderer/media/audio_message_filter.h
|
| +++ b/content/renderer/media/audio_message_filter.h
|
| @@ -16,9 +16,11 @@
|
| #include "base/sync_socket.h"
|
| #include "base/synchronization/lock.h"
|
| #include "content/common/content_export.h"
|
| +#include "content/renderer/media/audio_output_client.h"
|
| #include "ipc/message_filter.h"
|
| #include "media/audio/audio_output_ipc.h"
|
| #include "media/base/audio_hardware_config.h"
|
| +#include "media/mojo/interfaces/audio_output.mojom.h"
|
|
|
| namespace base {
|
| class SingleThreadTaskRunner;
|
| @@ -46,11 +48,32 @@ class CONTENT_EXPORT AudioMessageFilter : public IPC::MessageFilter {
|
| std::unique_ptr<media::AudioOutputIPC> CreateAudioOutputIPC(
|
| int render_frame_id);
|
|
|
| + virtual void CloseStream(int stream_id);
|
| +
|
| // IO task runner associated with this message filter.
|
| base::SingleThreadTaskRunner* io_task_runner() const {
|
| return io_task_runner_.get();
|
| }
|
|
|
| + // Received when browser process has created an audio output stream.
|
| + virtual void StreamCreated(
|
| + int stream_id,
|
| + base::SharedMemoryHandle handle,
|
| + base::SyncSocket::TransitDescriptor socket_descriptor,
|
| + uint32_t length);
|
| +
|
| + // Received when internal state of browser process' audio output device has
|
| + // changed.
|
| + virtual void OnStreamStateChanged(int stream_id,
|
| + media::AudioOutputIPCDelegateState state);
|
| +
|
| + // Register |audio_output_client_| for a frame.
|
| + void RegisterAudioOutputClient(
|
| + int id,
|
| + scoped_refptr<content::AudioOutputClient> audio_output_client) {
|
| + audio_output_clients_.insert(std::make_pair(id, audio_output_client));
|
| + }
|
| +
|
| protected:
|
| ~AudioMessageFilter() override;
|
|
|
| @@ -78,23 +101,14 @@ class CONTENT_EXPORT AudioMessageFilter : public IPC::MessageFilter {
|
| const media::AudioParameters& output_params,
|
| const std::string& matched_device_id);
|
|
|
| - // Received when browser process has created an audio output stream.
|
| - void OnStreamCreated(int stream_id,
|
| - base::SharedMemoryHandle handle,
|
| - base::SyncSocket::TransitDescriptor socket_descriptor,
|
| - uint32_t length);
|
| -
|
| - // Received when internal state of browser process' audio output device has
|
| - // changed.
|
| - void OnStreamStateChanged(int stream_id,
|
| - media::AudioOutputIPCDelegateState state);
|
| -
|
| // IPC sender for Send(); must only be accessed on |io_task_runner_|.
|
| IPC::Sender* sender_;
|
|
|
| // A map of stream ids to delegates; must only be accessed on
|
| // |io_task_runner_|.
|
| IDMap<media::AudioOutputIPCDelegate> delegates_;
|
| + std::map<int, scoped_refptr<content::AudioOutputClient>>
|
| + audio_output_clients_;
|
|
|
| // Task runner on which IPC calls are executed.
|
| const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
|
|
|