Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1165)

Unified Diff: content/renderer/media/audio_message_filter.cc

Issue 10790121: First step towards moving AudioDevice from content/ to media/audio. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: relaxing the notreached back to log(error) since nacl tests will otherwise fail Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..d90b9abb0035f40d417cb31fdab34da1fa7e7e25 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::AudioDeviceIPCDelegate* 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::AudioDeviceIPCDelegate>::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,9 +127,12 @@ void AudioMessageFilter::OnStreamCreated(
#if !defined(OS_WIN)
base::SyncSocket::Handle socket_handle = socket_descriptor.fd;
#endif
- Delegate* delegate = delegates_.Lookup(stream_id);
+ media::AudioDeviceIPCDelegate* delegate = delegates_.Lookup(stream_id);
if (!delegate) {
- DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
+ // TODO(tommi): This should ideally be a DCHECK or a NOTREACHED.
+ // However, we're still hitting this on mac in the nacl_integration
+ // tests (ppapi_ppb_audio, PPB_Audio::StartPlayback, StopPlayback).
scherkus (not reviewing) 2012/07/24 17:57:48 file a bug?
tommi (sloooow) - chröme 2012/07/25 13:46:17 Done.
+ LOG(ERROR) << "Got audio stream event for a non-existent or removed"
" audio renderer. (stream_id=" << stream_id << ").";
base::SharedMemory::CloseHandle(handle);
base::SyncSocket socket(socket_handle);
@@ -107,11 +142,10 @@ void AudioMessageFilter::OnStreamCreated(
}
void AudioMessageFilter::OnStreamStateChanged(
- int stream_id, AudioStreamState state) {
- Delegate* delegate = delegates_.Lookup(stream_id);
+ int stream_id, media::AudioDeviceIPCDelegate::State state) {
+ media::AudioDeviceIPCDelegate* delegate = delegates_.Lookup(stream_id);
if (!delegate) {
- DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
- " audio renderer.";
+ NOTREACHED() << "No delegate found for state change. " << state;
return;
}
delegate->OnStateChanged(state);

Powered by Google App Engine
This is Rietveld 408576698