diff options
author | Ziyan <jaraidaniel@gmail.com> | 2015-06-02 22:34:24 +0200 |
---|---|---|
committer | Ziyan <jaraidaniel@gmail.com> | 2015-06-18 14:21:36 +0200 |
commit | ffe43eaabb8a69319eb79b0365536dec3d87420a (patch) | |
tree | d44d8d0d7b8ca53c7e21ec20808ddf1b6f7e6932 /ril | |
parent | 7177a140a87afc2daa206b859c148b8b57878fbe (diff) | |
download | device_samsung_tuna-ffe43eaabb8a69319eb79b0365536dec3d87420a.zip device_samsung_tuna-ffe43eaabb8a69319eb79b0365536dec3d87420a.tar.gz device_samsung_tuna-ffe43eaabb8a69319eb79b0365536dec3d87420a.tar.bz2 |
libsecril-client: add back AMR-WB support
Based on our closed-source lib.
Diffstat (limited to 'ril')
-rw-r--r-- | ril/libsecril-client/secril-client.cpp | 41 | ||||
-rw-r--r-- | ril/libsecril-client/secril-client.h | 1 |
2 files changed, 42 insertions, 0 deletions
diff --git a/ril/libsecril-client/secril-client.cpp b/ril/libsecril-client/secril-client.cpp index e215710..dfb36aa 100644 --- a/ril/libsecril-client/secril-client.cpp +++ b/ril/libsecril-client/secril-client.cpp @@ -61,6 +61,7 @@ namespace android { #define REQ_SET_CALL_VT_CTRL 107 #define REQ_SET_TWO_MIC_CTRL 108 #define REQ_SET_DHA_CTRL 109 +#define REQ_GET_WB_AMR 109 #define REQ_SET_LOOPBACK 110 // OEM request function ID @@ -78,6 +79,7 @@ namespace android { #define OEM_SND_GET_MUTE 0x0C #define OEM_SND_SET_TWO_MIC_CTL 0x0D #define OEM_SND_SET_DHA_CTL 0x0E +#define OEM_SND_GET_WB_AMR 0x0E #define OEM_SND_TYPE_VOICE 0x01 // Receiver(0x00) + Voice(0x01) #define OEM_SND_TYPE_SPEAKER 0x11 // SpeakerPhone(0x10) + Voice(0x01) @@ -919,6 +921,45 @@ int GetMute(HRilClient client, RilOnComplete handler) { return ret; } +/** + * Check AMR-WB support + */ +extern "C" +int GetWB_AMR(HRilClient client, RilOnComplete handler) { + RilClientPrv *client_prv; + int ret; + char data[4] = {0,}; + + if (client == NULL || client->prv == NULL) { + ALOGE("%s: Invalid client %p", __FUNCTION__, client); + return RIL_CLIENT_ERR_INVAL; + } + + client_prv = (RilClientPrv *)(client->prv); + + if (client_prv->sock < 0 ) { + ALOGE("%s: Not connected.", __FUNCTION__); + return RIL_CLIENT_ERR_CONNECT; + } + + client_prv->b_del_handler = 1; + + // Make raw data + data[0] = OEM_FUNC_SOUND; // 0x08 + data[1] = OEM_SND_GET_WB_AMR; + data[2] = 0x00; // data length + data[3] = 0x04; // data length + + RegisterRequestCompleteHandler(client, REQ_GET_WB_AMR, handler); + + ret = SendOemRequestHookRaw(client, REQ_GET_WB_AMR, data, sizeof(data)); + if (ret != RIL_CLIENT_ERR_SUCCESS) { + RegisterRequestCompleteHandler(client, REQ_GET_WB_AMR, NULL); + } + + return ret; +} + extern "C" int SetTwoMicControl(HRilClient client, TwoMicSolDevice device, TwoMicSolReport report) { RilClientPrv *client_prv; diff --git a/ril/libsecril-client/secril-client.h b/ril/libsecril-client/secril-client.h index df6696b..c752d38 100644 --- a/ril/libsecril-client/secril-client.h +++ b/ril/libsecril-client/secril-client.h @@ -258,6 +258,7 @@ int SetMute(HRilClient client, MuteCondition condition); */ int GetMute(HRilClient client, RilOnComplete handler); +int GetWB_AMR(HRilClient client, RilOnComplete handler); int SetTwoMicControl(HRilClient client, TwoMicSolDevice device, TwoMicSolReport report); /** |