From 8e6a2f87e0cb228de82a51bf35b68149c44ac39e Mon Sep 17 00:00:00 2001 From: "gaon.yoon" Date: Fri, 7 Oct 2011 18:56:04 +0900 Subject: 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 --- audio/ril_interface.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'audio') 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 || -- cgit v1.1