Chromium Code Reviews| 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..685158677e766965aa6cc71ba5afcff0f0251ffc 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(); |
| } |
| + // Setter for |audio_output_client_|. |
| + void set_audio_output_client( |
|
nasko
2016/05/25 20:50:42
Needs to be CamelCased, as it isn't a simple assig
rchtara
2016/05/27 15:24:39
Done.
|
| + int id, |
| + scoped_refptr<content::AudioOutputClient> audio_output_client) { |
| + audio_output_clients_.insert(std::make_pair(id, audio_output_client)); |
| + } |
| + |
| + // Received when browser process has created an audio output stream. |
| + virtual 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. |
| + virtual void OnStreamStateChanged(int stream_id, |
| + media::AudioOutputIPCDelegateState state); |
| + |
| 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_; |