summaryrefslogtreecommitdiffstats
path: root/media/audio/android
diff options
context:
space:
mode:
authorxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-07 15:25:51 +0000
committerxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-07 15:25:51 +0000
commitf34a9058aa124789ebc5b1e38d9d890c29f49ce5 (patch)
tree4002bf52e0861deb1c75b7f09cd6f601487a54d7 /media/audio/android
parenteaabba206ae14905ef3a922e7b839cab285dd940 (diff)
downloadchromium_src-f34a9058aa124789ebc5b1e38d9d890c29f49ce5.zip
chromium_src-f34a9058aa124789ebc5b1e38d9d890c29f49ce5.tar.gz
chromium_src-f34a9058aa124789ebc5b1e38d9d890c29f49ce5.tar.bz2
Moved the implementations of ReleaseOutputStream() and ReleaseInputStream() to AudioManagerBase and let all the AudioManagerPlatforms inherit the same implementations.
Also moved the MakeAudioOutputStream() and MakeAudioInputStream() to AudioManagerBase, separate the AUDIO_PCM_LINEAR mode and AUDIO_PCM_LOW_LATENCY mode into two different functions inside the AudioManagerPlatforms. So that the structure is clearer and also easier to deprecate the AUDIO_PCM_LINEAR for the future. Made the destructor of the AudioManagerPlatforms protected so it can be called by only the AudioManagerBase. BUG=116064 TEST=media_unittests Review URL: http://codereview.chromium.org/9570014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125389 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/android')
-rw-r--r--media/audio/android/audio_manager_android.cc49
-rw-r--r--media/audio/android/audio_manager_android.h16
2 files changed, 40 insertions, 25 deletions
diff --git a/media/audio/android/audio_manager_android.cc b/media/audio/android/audio_manager_android.cc
index 0170675..9d17934 100644
--- a/media/audio/android/audio_manager_android.cc
+++ b/media/audio/android/audio_manager_android.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.
@@ -8,13 +8,17 @@
#include "media/audio/android/audio_track_output_android.h"
#include "media/audio/audio_manager.h"
#include "media/audio/fake_audio_input_stream.h"
-#include "media/audio/fake_audio_output_stream.h"
+
+// Maximum number of output streams that can be open simultaneously.
+static const int kMaxOutputStreams = 10;
AudioManager* CreateAudioManager() {
return new AudioManagerAndroid();
}
-AudioManagerAndroid::AudioManagerAndroid() {}
+AudioManagerAndroid::AudioManagerAndroid() {
+ SetMaxOutputStreamsAllowed(kMaxOutputStreams);
+}
AudioManagerAndroid::~AudioManagerAndroid() {
audio_thread_->Stop();
@@ -28,29 +32,34 @@ bool AudioManagerAndroid::HasAudioInputDevices() {
return false;
}
-AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream(
- const AudioParameters& params) {
- if (!params.IsValid())
- return NULL;
+void AudioManagerAndroid::MuteAll() {
+ NOTIMPLEMENTED();
+}
- if (params.format == AudioParameters::AUDIO_MOCK)
- return FakeAudioOutputStream::MakeFakeStream(params);
- if (params.format == AudioParameters::AUDIO_PCM_LINEAR ||
- params.format == AudioParameters::AUDIO_PCM_LOW_LATENCY)
- return AudioTrackOutputStream::MakeStream(params);
+void AudioManagerAndroid::UnMuteAll() {
+ NOTIMPLEMENTED();
+}
- return NULL;
+AudioOutputStream* AudioManagerAndroid::MakeLinearOutputStream(
+ const AudioParameters& params) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format);
+ return AudioTrackOutputStream::MakeStream(params);
}
-AudioInputStream* AudioManagerAndroid::MakeAudioInputStream(
- const AudioParameters& params, const std::string& device_id) {
- return FakeAudioInputStream::MakeFakeStream(params);
+AudioOutputStream* AudioManagerAndroid::MakeLowLatencyOutputStream(
+ const AudioParameters& params) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format);
+ return AudioTrackOutputStream::MakeStream(params);
}
-void AudioManagerAndroid::MuteAll() {
- NOTIMPLEMENTED();
+AudioInputStream* AudioManagerAndroid::MakeLinearInputStream(
+ const AudioParameters& params, const std::string& device_id) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format);
+ return FakeAudioInputStream::MakeFakeStream(params);
}
-void AudioManagerAndroid::UnMuteAll() {
- NOTIMPLEMENTED();
+AudioInputStream* AudioManagerAndroid::MakeLowLatencyInputStream(
+ const AudioParameters& params, const std::string& device_id) {
+ DCHECK_EQ(AudioParameters::AUDIO_PCM_LOW_LATENCY, params.format);
+ return FakeAudioInputStream::MakeFakeStream(params);
}
diff --git a/media/audio/android/audio_manager_android.h b/media/audio/android/audio_manager_android.h
index ab43a60..5d42270 100644
--- a/media/audio/android/audio_manager_android.h
+++ b/media/audio/android/audio_manager_android.h
@@ -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.
@@ -15,13 +15,19 @@ class AudioManagerAndroid : public AudioManagerBase {
// Implementation of AudioManager.
virtual bool HasAudioOutputDevices() OVERRIDE;
virtual bool HasAudioInputDevices() OVERRIDE;
- virtual AudioOutputStream* MakeAudioOutputStream(
- const AudioParameters& params) OVERRIDE;
- virtual AudioInputStream* MakeAudioInputStream(
- const AudioParameters& params, const std::string& device_id) OVERRIDE;
virtual void MuteAll() OVERRIDE;
virtual void UnMuteAll() OVERRIDE;
+ // Implementation of AudioManagerBase.
+ virtual AudioOutputStream* MakeLinearOutputStream(
+ const AudioParameters& params) OVERRIDE;
+ virtual AudioOutputStream* MakeLowLatencyOutputStream(
+ const AudioParameters& params) OVERRIDE;
+ virtual AudioInputStream* MakeLinearInputStream(
+ const AudioParameters& params, const std::string& device_id) OVERRIDE;
+ virtual AudioInputStream* MakeLowLatencyInputStream(
+ const AudioParameters& params, const std::string& device_id) OVERRIDE;
+
protected:
virtual ~AudioManagerAndroid();