From ad216e51b33c55634ec89d15e81e97cdffd08e1c Mon Sep 17 00:00:00 2001 From: Dave Sparks Date: Tue, 19 May 2009 14:38:46 -0700 Subject: Add inputSource to openInputStream Continuation of bug 1846343 --- libs/audioflinger/AudioHardwareGeneric.cpp | 20 ++++++++++++++++++-- libs/audioflinger/AudioHardwareGeneric.h | 8 ++++++++ libs/audioflinger/AudioHardwareStub.cpp | 18 +++++++++++++++++- libs/audioflinger/AudioHardwareStub.h | 8 ++++++++ 4 files changed, 51 insertions(+), 3 deletions(-) (limited to 'libs/audioflinger') diff --git a/libs/audioflinger/AudioHardwareGeneric.cpp b/libs/audioflinger/AudioHardwareGeneric.cpp index 62beada..8b9a5a7 100644 --- a/libs/audioflinger/AudioHardwareGeneric.cpp +++ b/libs/audioflinger/AudioHardwareGeneric.cpp @@ -30,6 +30,7 @@ #include #include "AudioHardwareGeneric.h" +#include namespace android { @@ -93,9 +94,15 @@ void AudioHardwareGeneric::closeOutputStream(AudioStreamOutGeneric* out) { } AudioStreamIn* AudioHardwareGeneric::openInputStream( - int format, int channelCount, uint32_t sampleRate, status_t *status, - AudioSystem::audio_in_acoustics acoustics) + int inputSource, int format, int channelCount, uint32_t sampleRate, + status_t *status, AudioSystem::audio_in_acoustics acoustics) { + // check for valid input source + if ((inputSource != AudioRecord::DEFAULT_INPUT) && + (inputSource != AudioRecord::MIC_INPUT)) { + return 0; + } + AutoMutex lock(mLock); // only one input stream allowed @@ -120,6 +127,15 @@ AudioStreamIn* AudioHardwareGeneric::openInputStream( return mInput; } +// DEPRECATED +AudioStreamIn* AudioHardwareGeneric::openInputStream( + int format, int channelCount, uint32_t sampleRate, status_t *status, + AudioSystem::audio_in_acoustics acoustic_flags) +{ + return openInputStream(AudioRecord::DEFAULT_INPUT, format, channelCount, + sampleRate, status, acoustic_flags); +} + void AudioHardwareGeneric::closeInputStream(AudioStreamInGeneric* in) { if (in == mInput) mInput = 0; } diff --git a/libs/audioflinger/AudioHardwareGeneric.h b/libs/audioflinger/AudioHardwareGeneric.h index c949aa1..adda385 100644 --- a/libs/audioflinger/AudioHardwareGeneric.h +++ b/libs/audioflinger/AudioHardwareGeneric.h @@ -112,6 +112,14 @@ public: status_t *status=0); virtual AudioStreamIn* openInputStream( + int inputSource, + int format, + int channelCount, + uint32_t sampleRate, + status_t *status, + AudioSystem::audio_in_acoustics acoustics); + + virtual AudioStreamIn* openInputStream( int format, int channelCount, uint32_t sampleRate, diff --git a/libs/audioflinger/AudioHardwareStub.cpp b/libs/audioflinger/AudioHardwareStub.cpp index b13cb1c..7159b0b 100644 --- a/libs/audioflinger/AudioHardwareStub.cpp +++ b/libs/audioflinger/AudioHardwareStub.cpp @@ -23,6 +23,7 @@ #include #include "AudioHardwareStub.h" +#include namespace android { @@ -56,9 +57,15 @@ AudioStreamOut* AudioHardwareStub::openOutputStream( } AudioStreamIn* AudioHardwareStub::openInputStream( - int format, int channelCount, uint32_t sampleRate, + int inputSource, int format, int channelCount, uint32_t sampleRate, status_t *status, AudioSystem::audio_in_acoustics acoustics) { + // check for valid input source + if ((inputSource != AudioRecord::DEFAULT_INPUT) && + (inputSource != AudioRecord::MIC_INPUT)) { + return 0; + } + AudioStreamInStub* in = new AudioStreamInStub(); status_t lStatus = in->set(format, channelCount, sampleRate, acoustics); if (status) { @@ -70,6 +77,15 @@ AudioStreamIn* AudioHardwareStub::openInputStream( return 0; } +// DEPRECATED +AudioStreamIn* AudioHardwareStub::openInputStream( + int format, int channelCount, uint32_t sampleRate, status_t *status, + AudioSystem::audio_in_acoustics acoustic_flags) +{ + return openInputStream(AudioRecord::DEFAULT_INPUT, format, channelCount, + sampleRate, status, acoustic_flags); +} + status_t AudioHardwareStub::setVoiceVolume(float volume) { return NO_ERROR; diff --git a/libs/audioflinger/AudioHardwareStub.h b/libs/audioflinger/AudioHardwareStub.h index d406424..6c52728 100644 --- a/libs/audioflinger/AudioHardwareStub.h +++ b/libs/audioflinger/AudioHardwareStub.h @@ -84,6 +84,14 @@ public: status_t *status, AudioSystem::audio_in_acoustics acoustics); + virtual AudioStreamIn* openInputStream( + int inputSource, + int format, + int channelCount, + uint32_t sampleRate, + status_t *status, + AudioSystem::audio_in_acoustics acoustics); + protected: virtual status_t doRouting() { return NO_ERROR; } virtual status_t dump(int fd, const Vector& args); -- cgit v1.1