diff options
author | Eric Laurent <elaurent@google.com> | 2009-10-21 08:14:22 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2009-10-21 12:29:37 -0700 |
commit | f0ee6f4055e26fb35d9c526a596668a4dc9da5ba (patch) | |
tree | 9eaa1f520448a3c83ec724cc4d02e9d4838c203f /media/libmedia/IAudioFlinger.cpp | |
parent | 66d1e82ce5d5e189442285b6225977137b65c608 (diff) | |
download | frameworks_av-f0ee6f4055e26fb35d9c526a596668a4dc9da5ba.zip frameworks_av-f0ee6f4055e26fb35d9c526a596668a4dc9da5ba.tar.gz frameworks_av-f0ee6f4055e26fb35d9c526a596668a4dc9da5ba.tar.bz2 |
Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.
Added setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.
Removed call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().
Diffstat (limited to 'media/libmedia/IAudioFlinger.cpp')
-rw-r--r-- | media/libmedia/IAudioFlinger.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/media/libmedia/IAudioFlinger.cpp b/media/libmedia/IAudioFlinger.cpp index 5089157..0eff205 100644 --- a/media/libmedia/IAudioFlinger.cpp +++ b/media/libmedia/IAudioFlinger.cpp @@ -59,7 +59,8 @@ enum { RESTORE_OUTPUT, OPEN_INPUT, CLOSE_INPUT, - SET_STREAM_OUTPUT + SET_STREAM_OUTPUT, + SET_VOICE_VOLUME }; class BpAudioFlinger : public BpInterface<IAudioFlinger> @@ -455,6 +456,15 @@ public: remote()->transact(SET_STREAM_OUTPUT, data, &reply); return reply.readInt32(); } + + virtual status_t setVoiceVolume(float volume) + { + Parcel data, reply; + data.writeInterfaceToken(IAudioFlinger::getInterfaceDescriptor()); + data.writeFloat(volume); + remote()->transact(SET_VOICE_VOLUME, data, &reply); + return reply.readInt32(); + } }; IMPLEMENT_META_INTERFACE(AudioFlinger, "android.media.IAudioFlinger"); @@ -700,6 +710,12 @@ status_t BnAudioFlinger::onTransact( reply->writeInt32(setStreamOutput(stream, output)); return NO_ERROR; } break; + case SET_VOICE_VOLUME: { + CHECK_INTERFACE(IAudioFlinger, data, reply); + float volume = data.readFloat(); + reply->writeInt32( setVoiceVolume(volume) ); + return NO_ERROR; + } break; default: return BBinder::onTransact(code, data, reply, flags); } |