diff options
author | Eric Laurent <elaurent@google.com> | 2010-01-25 08:49:09 -0800 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2010-01-25 14:00:10 -0800 |
commit | b72a396826da8bd934b9531bbd40f86d7509e71c (patch) | |
tree | 7eab39ce31d2609e7c0281e1f0541a8425d6e5e2 | |
parent | 6c009eb5ff5f999b1d9bc6978d3213f9f797903f (diff) | |
download | frameworks_av-b72a396826da8bd934b9531bbd40f86d7509e71c.zip frameworks_av-b72a396826da8bd934b9531bbd40f86d7509e71c.tar.gz frameworks_av-b72a396826da8bd934b9531bbd40f86d7509e71c.tar.bz2 |
Fix issue 2378022: AudioService should direct volume control to STREAM_VOICE_CALL stream when STREAM_VOICE_CALL stream is active.
Modified AudioService.getActiveStreamType() so that STREAM_VOICE_CALL is selected when a track using this stream
type is playing.
Chanded isMusicActive() for a more generic isStreamActive(stream) method in AudioSystem, IAudioFlinger and AudioFlinger.
-rw-r--r-- | include/media/AudioSystem.h | 4 | ||||
-rw-r--r-- | include/media/IAudioFlinger.h | 4 | ||||
-rw-r--r-- | media/libmedia/AudioSystem.cpp | 4 | ||||
-rw-r--r-- | media/libmedia/IAudioFlinger.cpp | 12 |
4 files changed, 13 insertions, 11 deletions
diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h index f935bb9..b42bf54 100644 --- a/include/media/AudioSystem.h +++ b/include/media/AudioSystem.h @@ -194,8 +194,8 @@ public: // set audio mode in audio hardware (see AudioSystem::audio_mode) static status_t setMode(int mode); - // returns true if tracks are active on AudioSystem::MUSIC stream - static status_t isMusicActive(bool *state); + // returns true in *state if tracks are active on the specified stream + static status_t isStreamActive(int stream, bool *state); // set/get audio hardware parameters. The function accepts a list of parameters // key value pairs in the form: key1=value1;key2=value2;... diff --git a/include/media/IAudioFlinger.h b/include/media/IAudioFlinger.h index a46c727..b689dcb 100644 --- a/include/media/IAudioFlinger.h +++ b/include/media/IAudioFlinger.h @@ -97,8 +97,8 @@ public: virtual status_t setMicMute(bool state) = 0; virtual bool getMicMute() const = 0; - // is a music stream active? - virtual bool isMusicActive() const = 0; + // is any track active on this stream? + virtual bool isStreamActive(int stream) const = 0; virtual status_t setParameters(int ioHandle, const String8& keyValuePairs) = 0; virtual String8 getParameters(int ioHandle, const String8& keys) = 0; diff --git a/media/libmedia/AudioSystem.cpp b/media/libmedia/AudioSystem.cpp index e1b1776..e3b829b 100644 --- a/media/libmedia/AudioSystem.cpp +++ b/media/libmedia/AudioSystem.cpp @@ -170,10 +170,10 @@ status_t AudioSystem::setMode(int mode) } -status_t AudioSystem::isMusicActive(bool* state) { +status_t AudioSystem::isStreamActive(int stream, bool* state) { const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger(); if (af == 0) return PERMISSION_DENIED; - *state = af->isMusicActive(); + *state = af->isStreamActive(stream); return NO_ERROR; } diff --git a/media/libmedia/IAudioFlinger.cpp b/media/libmedia/IAudioFlinger.cpp index 0eff205..fc42979 100644 --- a/media/libmedia/IAudioFlinger.cpp +++ b/media/libmedia/IAudioFlinger.cpp @@ -47,7 +47,7 @@ enum { SET_MODE, SET_MIC_MUTE, GET_MIC_MUTE, - IS_MUSIC_ACTIVE, + IS_STREAM_ACTIVE, SET_PARAMETERS, GET_PARAMETERS, REGISTER_CLIENT, @@ -286,11 +286,12 @@ public: return reply.readInt32(); } - virtual bool isMusicActive() const + virtual bool isStreamActive(int stream) const { Parcel data, reply; data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); - remote()->transact(IS_MUSIC_ACTIVE, data, &reply); + data.writeInt32(stream); + remote()->transact(IS_STREAM_ACTIVE, data, &reply); return reply.readInt32(); } @@ -599,9 +600,10 @@ status_t BnAudioFlinger::onTransact( reply->writeInt32( getMicMute() ); return NO_ERROR; } break; - case IS_MUSIC_ACTIVE: { + case IS_STREAM_ACTIVE: { CHECK_INTERFACE(IAudioFlinger, data, reply); - reply->writeInt32( isMusicActive() ); + int stream = data.readInt32(); + reply->writeInt32( isStreamActive(stream) ); return NO_ERROR; } break; case SET_PARAMETERS: { |