From b72a396826da8bd934b9531bbd40f86d7509e71c Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Mon, 25 Jan 2010 08:49:09 -0800 Subject: 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. --- media/libmedia/IAudioFlinger.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'media/libmedia/IAudioFlinger.cpp') 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: { -- cgit v1.1