summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorgaon.yoon <gaon.yoon@samsung.com>2011-10-07 18:56:04 +0900
committerSimon Wilson <simonwilson@google.com>2011-10-14 12:24:32 -0700
commit8e6a2f87e0cb228de82a51bf35b68149c44ac39e (patch)
treeb72f8d401b76b1091605c5f8dc6985557fc90574 /audio
parent010eee35ae2b149f7c4c036e9d9c45d8cab8adc6 (diff)
downloaddevice_samsung_tuna-8e6a2f87e0cb228de82a51bf35b68149c44ac39e.zip
device_samsung_tuna-8e6a2f87e0cb228de82a51bf35b68149c44ac39e.tar.gz
device_samsung_tuna-8e6a2f87e0cb228de82a51bf35b68149c44ac39e.tar.bz2
audio: get wb amr status when ril is connected
At the first incoming call, wb amr callback time is faster than ril-connecting time so wb status is not updated. To update wb amr status get it at ril-connecting time. HSPA supports getting wb amr status, but LTE does not support it. Change-Id: I477cb19f8ef72d5461c2800e09958f504ae733e5
Diffstat (limited to 'audio')
-rwxr-xr-xaudio/ril_interface.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/audio/ril_interface.c b/audio/ril_interface.c
index 7d5d891..4e1e2a1 100755
--- a/audio/ril_interface.c
+++ b/audio/ril_interface.c
@@ -38,6 +38,7 @@ int (*_ril_set_call_volume)(void *, enum ril_sound_type, int);
int (*_ril_set_call_audio_path)(void *, enum ril_audio_path);
int (*_ril_set_call_clock_sync)(void *, enum ril_clock_state);
int (*_ril_register_unsolicited_handler)(void *, int, void *);
+int (*_ril_get_wb_amr)(void *, void *);
/* Audio WB AMR callback */
void (*_audio_set_wb_amr_callback)(void *, int);
@@ -74,6 +75,12 @@ static int ril_connect_if_required(struct ril_handle *ril)
LOGE("ril_connect() failed");
return -1;
}
+
+ /* get wb amr status to set pcm samplerate depending on
+ wb amr status when ril is connected. */
+ if(_ril_get_wb_amr)
+ _ril_get_wb_amr(ril->client, ril_set_wb_amr_callback);
+
return 0;
}
@@ -101,6 +108,8 @@ int ril_open(struct ril_handle *ril)
_ril_set_call_clock_sync = dlsym(ril->handle, "SetCallClockSync");
_ril_register_unsolicited_handler = dlsym(ril->handle,
"RegisterUnsolicitedHandler");
+ /* since this function is not supported in all RILs, don't require it */
+ _ril_get_wb_amr = dlsym(ril->handle, "GetWB_AMR");
if (!_ril_open_client || !_ril_close_client || !_ril_connect ||
!_ril_is_connected || !_ril_disconnect || !_ril_set_call_volume ||