summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorEric Laurent <>2009-04-02 09:33:55 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-04-02 09:33:55 -0700
commit0df2c0386c09da9e8465afe31e4721654bb840a1 (patch)
treea7c51d60c825f1354dd69e8e4acbf584a6462ba0 /media
parent96020d9bcfdc228d33fc14e281bf6f416de4bdb8 (diff)
parent48f7f5e8359909ddfc6492a79a8b9c44759ca6c3 (diff)
downloadframeworks_av-0df2c0386c09da9e8465afe31e4721654bb840a1.zip
frameworks_av-0df2c0386c09da9e8465afe31e4721654bb840a1.tar.gz
frameworks_av-0df2c0386c09da9e8465afe31e4721654bb840a1.tar.bz2
Merge branch 'readonly-p4-master'
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/AudioSystem.cpp33
1 files changed, 17 insertions, 16 deletions
diff --git a/media/libmedia/AudioSystem.cpp b/media/libmedia/AudioSystem.cpp
index 63dfc3b..a21a7a4 100644
--- a/media/libmedia/AudioSystem.cpp
+++ b/media/libmedia/AudioSystem.cpp
@@ -258,13 +258,12 @@ int AudioSystem::logToLinear(float volume)
status_t AudioSystem::getOutputSamplingRate(int* samplingRate, int streamType)
{
int output = getOutput(streamType);
+
+ if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED;
- if (gOutSamplingRate[output] == 0) {
- const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger();
- if (af == 0) return PERMISSION_DENIED;
- // gOutSamplingRate is updated by get_audio_flinger()
- }
+ // gOutSamplingRate[] is updated by getOutput() which calls get_audio_flinger()
LOGV("getOutputSamplingRate() streamType %d, output %d, sampling rate %d", streamType, output, gOutSamplingRate[output]);
+
*samplingRate = gOutSamplingRate[output];
return NO_ERROR;
@@ -274,14 +273,13 @@ status_t AudioSystem::getOutputFrameCount(int* frameCount, int streamType)
{
int output = getOutput(streamType);
- if (gOutFrameCount[output] == 0) {
- const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger();
- if (af == 0) return PERMISSION_DENIED;
- // gOutFrameCount is updated by get_audio_flinger()
- }
+ if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED;
+
+ // gOutFrameCount[] is updated by getOutput() which calls get_audio_flinger()
LOGV("getOutputFrameCount() streamType %d, output %d, frame count %d", streamType, output, gOutFrameCount[output]);
*frameCount = gOutFrameCount[output];
+
return NO_ERROR;
}
@@ -289,11 +287,9 @@ status_t AudioSystem::getOutputLatency(uint32_t* latency, int streamType)
{
int output = getOutput(streamType);
- if (gOutLatency[output] == 0) {
- const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger();
- if (af == 0) return PERMISSION_DENIED;
- // gOutLatency is updated by get_audio_flinger()
- }
+ if (output == NUM_AUDIO_OUTPUT_TYPES) return PERMISSION_DENIED;
+
+ // gOutLatency[] is updated by getOutput() which calls get_audio_flinger()
LOGV("getOutputLatency() streamType %d, output %d, latency %d", streamType, output, gOutLatency[output]);
*latency = gOutLatency[output];
@@ -354,7 +350,12 @@ void AudioSystem::setErrorCallback(audio_error_callback cb) {
}
int AudioSystem::getOutput(int streamType)
-{
+{
+ // make sure that gA2dpEnabled is valid by calling get_audio_flinger() which in turn
+ // will call gAudioFlinger->isA2dpEnabled()
+ const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger();
+ if (af == 0) return NUM_AUDIO_OUTPUT_TYPES;
+
if (streamType == DEFAULT) {
streamType = MUSIC;
}