summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZiyan <jaraidaniel@gmail.com>2015-06-02 22:34:24 +0200
committerZiyan <jaraidaniel@gmail.com>2015-06-18 14:21:36 +0200
commitffe43eaabb8a69319eb79b0365536dec3d87420a (patch)
treed44d8d0d7b8ca53c7e21ec20808ddf1b6f7e6932
parent7177a140a87afc2daa206b859c148b8b57878fbe (diff)
downloaddevice_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.
-rw-r--r--ril/libsecril-client/secril-client.cpp41
-rw-r--r--ril/libsecril-client/secril-client.h1
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);
/**