diff options
-rw-r--r-- | call.c | 24 | ||||
-rw-r--r-- | samsung-ril.c | 6 | ||||
-rw-r--r-- | samsung-ril.h | 2 |
3 files changed, 32 insertions, 0 deletions
@@ -203,3 +203,27 @@ void respondCallStatus(RIL_Token t, void *data, int length) { RIL_onUnsolicitedResponse(RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED, NULL, 0); } + +void requestDtmfStart(RIL_Token t, void *data, int length) +{ + //TODO: Check if there is already a DTMF going on and cancel it if so + + struct ipc_call_cont_dtmf cont_dtmf; + cont_dtmf.state = IPC_CALL_DTMF_STATE_START; + cont_dtmf.tone = ((char *)data)[0]; + + ipc_client_send(ipc_client, IPC_CALL_CONT_DTMF, IPC_TYPE_SET, (unsigned char*)&cont_dtmf, sizeof(cont_dtmf), getRequestId(t)); + + RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); +} + +void requestDtmfStop(RIL_Token t) +{ + struct ipc_call_cont_dtmf cont_dtmf; + cont_dtmf.state = IPC_CALL_DTMF_STATE_STOP; + cont_dtmf.tone = 0; + + ipc_client_send(ipc_client, IPC_CALL_CONT_DTMF, IPC_TYPE_SET, (unsigned char*)&cont_dtmf, sizeof(cont_dtmf), getRequestId(t)); + + RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); +} diff --git a/samsung-ril.c b/samsung-ril.c index ee3af2d..d2b4df3 100644 --- a/samsung-ril.c +++ b/samsung-ril.c @@ -134,6 +134,12 @@ void onRequest(int request, void *data, size_t datalen, RIL_Token t) case RIL_REQUEST_ANSWER: requestAnswer(t); break; + case RIL_REQUEST_DTMF_START: + requestDtmfStart(t, data, datalen); + break; + case RIL_REQUEST_DTMF_STOP: + requestDtmfStop(t); + break; case RIL_REQUEST_SEND_SMS: requestSendSms(t, data, datalen); break; diff --git a/samsung-ril.h b/samsung-ril.h index c13686f..db898e8 100644 --- a/samsung-ril.h +++ b/samsung-ril.h @@ -79,6 +79,8 @@ void requestDial(RIL_Token t, void *data, size_t datalen); void respondCallIncoming(RIL_Token t, void *data, int length); void respondCallStatus(RIL_Token t, void *data, int length); void respondCallList(RIL_Token t, void *data, int length); +void requestDtmfStart(RIL_Token t, void *data, int length); +void requestDtmfStop(RIL_Token t); /* Misc */ void requestBasebandVersion(RIL_Token t); |