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

Unified Diff: content/renderer/media/audio_input_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: Update comments after closing ppapi bug 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
« no previous file with comments | « content/renderer/media/audio_input_message_filter.h ('k') | content/renderer/media/audio_message_filter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/audio_input_message_filter.cc
diff --git a/content/renderer/media/audio_input_message_filter.cc b/content/renderer/media/audio_input_message_filter.cc
index 30e4b01eec3b38a673296aa2ff9aa837e2a21f85..b523ac6d9ce398f0a99f1dd0fd8c9ee5d1804705 100644
--- a/content/renderer/media/audio_input_message_filter.cc
+++ b/content/renderer/media/audio_input_message_filter.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -11,13 +11,24 @@
#include "content/common/media/audio_messages.h"
#include "ipc/ipc_logging.h"
+AudioInputMessageFilter* AudioInputMessageFilter::filter_ = NULL;
+
AudioInputMessageFilter::AudioInputMessageFilter()
: channel_(NULL) {
- VLOG(1) << "AudioInputMessageFilter()";
+ DVLOG(1) << "AudioInputMessageFilter()";
+ DCHECK(!filter_);
+ filter_ = this;
}
AudioInputMessageFilter::~AudioInputMessageFilter() {
- VLOG(1) << "AudioInputMessageFilter::~AudioInputMessageFilter()";
+ DVLOG(1) << "AudioInputMessageFilter::~AudioInputMessageFilter()";
+ DCHECK_EQ(filter_, this);
+ filter_ = NULL;
+}
+
+// static.
+AudioInputMessageFilter* AudioInputMessageFilter::Get() {
+ return filter_;
}
bool AudioInputMessageFilter::Send(IPC::Message* message) {
@@ -55,7 +66,7 @@ bool AudioInputMessageFilter::OnMessageReceived(const IPC::Message& message) {
}
void AudioInputMessageFilter::OnFilterAdded(IPC::Channel* channel) {
- VLOG(1) << "AudioInputMessageFilter::OnFilterAdded()";
+ DVLOG(1) << "AudioInputMessageFilter::OnFilterAdded()";
// Captures the channel for IPC.
channel_ = channel;
}
@@ -66,6 +77,14 @@ void AudioInputMessageFilter::OnFilterRemoved() {
void AudioInputMessageFilter::OnChannelClosing() {
channel_ = NULL;
+ LOG_IF(WARNING, !delegates_.IsEmpty())
+ << "Not all audio devices have been closed.";
+
+ IDMap<media::AudioInputIPCDelegate>::iterator it(&delegates_);
+ while (!it.IsAtEnd()) {
+ it.GetCurrentValue()->OnIPCClosed();
+ it.Advance();
+ }
}
void AudioInputMessageFilter::OnStreamCreated(
@@ -80,7 +99,7 @@ void AudioInputMessageFilter::OnStreamCreated(
#if !defined(OS_WIN)
base::SyncSocket::Handle socket_handle = socket_descriptor.fd;
#endif
- Delegate* delegate = delegates_.Lookup(stream_id);
+ media::AudioInputIPCDelegate* delegate = delegates_.Lookup(stream_id);
if (!delegate) {
DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
" audio capturer (stream_id=" << stream_id << ").";
@@ -93,7 +112,7 @@ void AudioInputMessageFilter::OnStreamCreated(
}
void AudioInputMessageFilter::OnStreamVolume(int stream_id, double volume) {
- Delegate* delegate = delegates_.Lookup(stream_id);
+ media::AudioInputIPCDelegate* delegate = delegates_.Lookup(stream_id);
if (!delegate) {
DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
" audio capturer.";
@@ -103,8 +122,8 @@ void AudioInputMessageFilter::OnStreamVolume(int stream_id, double volume) {
}
void AudioInputMessageFilter::OnStreamStateChanged(
- int stream_id, AudioStreamState state) {
- Delegate* delegate = delegates_.Lookup(stream_id);
+ int stream_id, media::AudioInputIPCDelegate::State state) {
+ media::AudioInputIPCDelegate* delegate = delegates_.Lookup(stream_id);
if (!delegate) {
DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
" audio renderer.";
@@ -115,20 +134,43 @@ void AudioInputMessageFilter::OnStreamStateChanged(
void AudioInputMessageFilter::OnDeviceStarted(int stream_id,
const std::string& device_id) {
- Delegate* delegate = delegates_.Lookup(stream_id);
+ media::AudioInputIPCDelegate* delegate = delegates_.Lookup(stream_id);
if (!delegate) {
- DLOG(WARNING) << "Got audio stream event for a non-existent or removed"
- " audio renderer.";
+ NOTREACHED();
return;
}
delegate->OnDeviceReady(device_id);
}
-int32 AudioInputMessageFilter::AddDelegate(Delegate* delegate) {
+int AudioInputMessageFilter::AddDelegate(
+ media::AudioInputIPCDelegate* delegate) {
return delegates_.Add(delegate);
}
-void AudioInputMessageFilter::RemoveDelegate(int32 id) {
- VLOG(1) << "AudioInputMessageFilter::RemoveDelegate(id=" << id << ")";
+void AudioInputMessageFilter::RemoveDelegate(int id) {
+ DVLOG(1) << "AudioInputMessageFilter::RemoveDelegate(id=" << id << ")";
delegates_.Remove(id);
}
+
+void AudioInputMessageFilter::CreateStream(int stream_id,
+ const media::AudioParameters& params, const std::string& device_id,
+ bool automatic_gain_control) {
+ Send(new AudioInputHostMsg_CreateStream(
+ stream_id, params, device_id, automatic_gain_control));
+}
+
+void AudioInputMessageFilter::StartDevice(int stream_id, int session_id) {
+ Send(new AudioInputHostMsg_StartDevice(stream_id, session_id));
+}
+
+void AudioInputMessageFilter::RecordStream(int stream_id) {
+ Send(new AudioInputHostMsg_RecordStream(stream_id));
+}
+
+void AudioInputMessageFilter::CloseStream(int stream_id) {
+ Send(new AudioInputHostMsg_CloseStream(stream_id));
+}
+
+void AudioInputMessageFilter::SetVolume(int stream_id, double volume) {
+ Send(new AudioInputHostMsg_SetVolume(stream_id, volume));
+}
« no previous file with comments | « content/renderer/media/audio_input_message_filter.h ('k') | content/renderer/media/audio_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698