diff options
| author | Andreas Schneider <asn@cryptomilk.org> | 2015-01-23 22:01:38 +0100 |
|---|---|---|
| committer | Sergiu Cozma <lssjbrolli@gmail.com> | 2015-03-28 11:44:23 +0200 |
| commit | 240d2e7f9f341b77ca2587bfe8f637a4b8996cf4 (patch) | |
| tree | 1e0f50584c1fb3c105a0d6d09c15a7480d809b8d | |
| parent | a64b69fef2c7d8ff811281dd262e3ce6af19d12b (diff) | |
audio: Set the volume on the correct sound device.
Change-Id: I42453e58ea0c334b0b3d91e287ecb21680bc7f7c
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
| -rw-r--r-- | audio/audio_hw.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c index 6f97a83..060c097 100644 --- a/audio/audio_hw.c +++ b/audio/audio_hw.c @@ -1478,8 +1478,27 @@ static int adev_set_voice_volume(struct audio_hw_device *dev, float volume) adev->voice_volume = volume; - if (adev->mode == AUDIO_MODE_IN_CALL) - ril_set_call_volume(&adev->ril, SOUND_TYPE_VOICE, volume); + if (adev->mode == AUDIO_MODE_IN_CALL) { + enum ril_sound_type sound_type; + + switch (adev->out_device) { + case AUDIO_DEVICE_OUT_SPEAKER: + sound_type = SOUND_TYPE_SPEAKER; + break; + case AUDIO_DEVICE_OUT_WIRED_HEADSET: + case AUDIO_DEVICE_OUT_WIRED_HEADPHONE: + sound_type = SOUND_TYPE_HEADSET; + break; + case AUDIO_DEVICE_OUT_BLUETOOTH_SCO: + case AUDIO_DEVICE_OUT_ALL_SCO: + sound_type = SOUND_TYPE_BTVOICE; + break; + default: + sound_type = SOUND_TYPE_VOICE; + } + + ril_set_call_volume(&adev->ril, sound_type, volume); + } return 0; } |
