diff options
author | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-07 15:25:51 +0000 |
---|---|---|
committer | xians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-07 15:25:51 +0000 |
commit | f34a9058aa124789ebc5b1e38d9d890c29f49ce5 (patch) | |
tree | 4002bf52e0861deb1c75b7f09cd6f601487a54d7 /media/audio/android | |
parent | eaabba206ae14905ef3a922e7b839cab285dd940 (diff) | |
download | chromium_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.cc | 49 | ||||
-rw-r--r-- | media/audio/android/audio_manager_android.h | 16 |
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(); |