| 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 81689925d5e4a56626063413ff246a6132d420e6..ef3bd804362a822c84ed4a9980cc0bb4511f258f 100644
|
| --- a/content/renderer/media/audio_message_filter.cc
|
| +++ b/content/renderer/media/audio_message_filter.cc
|
| @@ -21,19 +21,44 @@ AudioMessageFilter* AudioMessageFilter::Get() {
|
|
|
| AudioMessageFilter::AudioMessageFilter()
|
| : channel_(NULL) {
|
| - VLOG(1) << "AudioMessageFilter::AudioMessageFilter()";
|
| + DVLOG(1) << "AudioMessageFilter::AudioMessageFilter()";
|
| DCHECK(!filter_);
|
| filter_ = this;
|
| }
|
|
|
| -int32 AudioMessageFilter::AddDelegate(Delegate* delegate) {
|
| +int AudioMessageFilter::AddDelegate(media::AudioOutputIPCDelegate* delegate) {
|
| return delegates_.Add(delegate);
|
| }
|
|
|
| -void AudioMessageFilter::RemoveDelegate(int32 id) {
|
| +void AudioMessageFilter::RemoveDelegate(int id) {
|
| delegates_.Remove(id);
|
| }
|
|
|
| +void AudioMessageFilter::CreateStream(int stream_id,
|
| + const media::AudioParameters& params) {
|
| + Send(new AudioHostMsg_CreateStream(stream_id, params));
|
| +}
|
| +
|
| +void AudioMessageFilter::PlayStream(int stream_id) {
|
| + Send(new AudioHostMsg_PlayStream(stream_id));
|
| +}
|
| +
|
| +void AudioMessageFilter::PauseStream(int stream_id) {
|
| + Send(new AudioHostMsg_PauseStream(stream_id));
|
| +}
|
| +
|
| +void AudioMessageFilter::FlushStream(int stream_id) {
|
| + Send(new AudioHostMsg_FlushStream(stream_id));
|
| +}
|
| +
|
| +void AudioMessageFilter::CloseStream(int stream_id) {
|
| + Send(new AudioHostMsg_CloseStream(stream_id));
|
| +}
|
| +
|
| +void AudioMessageFilter::SetVolume(int stream_id, double volume) {
|
| + Send(new AudioHostMsg_SetVolume(stream_id, volume));
|
| +}
|
| +
|
| bool AudioMessageFilter::Send(IPC::Message* message) {
|
| if (!channel_) {
|
| delete message;
|
| @@ -64,8 +89,7 @@ bool AudioMessageFilter::OnMessageReceived(const IPC::Message& message) {
|
| }
|
|
|
| void AudioMessageFilter::OnFilterAdded(IPC::Channel* channel) {
|
| - VLOG(1) << "AudioMessageFilter::OnFilterAdded()";
|
| - // Captures the channel for IPC.
|
| + DVLOG(1) << "AudioMessageFilter::OnFilterAdded()";
|
| channel_ = channel;
|
| }
|
|
|
| @@ -75,10 +99,18 @@ void AudioMessageFilter::OnFilterRemoved() {
|
|
|
| void AudioMessageFilter::OnChannelClosing() {
|
| channel_ = NULL;
|
| + LOG_IF(WARNING, !delegates_.IsEmpty())
|
| + << "Not all audio devices have been closed.";
|
| +
|
| + IDMap<media::AudioOutputIPCDelegate>::iterator it(&delegates_);
|
| + while (!it.IsAtEnd()) {
|
| + it.GetCurrentValue()->OnIPCClosed();
|
| + it.Advance();
|
| + }
|
| }
|
|
|
| AudioMessageFilter::~AudioMessageFilter() {
|
| - VLOG(1) << "AudioMessageFilter::~AudioMessageFilter()";
|
| + DVLOG(1) << "AudioMessageFilter::~AudioMessageFilter()";
|
| DCHECK(filter_);
|
| filter_ = NULL;
|
| }
|
| @@ -95,10 +127,10 @@ void AudioMessageFilter::OnStreamCreated(
|
| #if !defined(OS_WIN)
|
| base::SyncSocket::Handle socket_handle = socket_descriptor.fd;
|
| #endif
|
| - Delegate* delegate = delegates_.Lookup(stream_id);
|
| + media::AudioOutputIPCDelegate* delegate = delegates_.Lookup(stream_id);
|
| if (!delegate) {
|
| DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
|
| - " audio renderer. (stream_id=" << stream_id << ").";
|
| + " audio renderer. (stream_id=" << stream_id << ").";
|
| base::SharedMemory::CloseHandle(handle);
|
| base::SyncSocket socket(socket_handle);
|
| return;
|
| @@ -107,11 +139,10 @@ void AudioMessageFilter::OnStreamCreated(
|
| }
|
|
|
| void AudioMessageFilter::OnStreamStateChanged(
|
| - int stream_id, AudioStreamState state) {
|
| - Delegate* delegate = delegates_.Lookup(stream_id);
|
| + int stream_id, media::AudioOutputIPCDelegate::State state) {
|
| + media::AudioOutputIPCDelegate* delegate = delegates_.Lookup(stream_id);
|
| if (!delegate) {
|
| - DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
|
| - " audio renderer.";
|
| + DLOG(WARNING) << "No delegate found for state change. " << state;
|
| return;
|
| }
|
| delegate->OnStateChanged(state);
|
|
|