#include <glib.h>
#include <sys/wait.h>
-#include <ITapiPS.h>
-#include <tapi_common.h>
-#include <ITapiModem.h>
#include "dr-main.h"
#include "dr-usb.h"
extern dr_info_t dr_info;
volatile gboolean dsr_status = FALSE;
-TapiHandle *tapi_handle = NULL;
-
static void __usb_status_noti_handler(void *data)
{
return;
}
-
-static void __dcd_pin_handler(tapi_ps_btdun_pincontrol_status status)
-{
- DBG(" \n");
-
- if (status == GPRS_SIGNAL_STATUS_ON) {
- DBG("Receive DCD + from Modem\n");
- dr_info.line.output_line_state.bits.dcd = TRUE;
- DBG("Current modem output line status = 0x%X\n",
- dr_info.line.output_line_state.state);
- }else if (status == GPRS_SIGNAL_STATUS_OFF) {
- DBG("Receive DCD - from Modem\n");
- dr_info.line.output_line_state.bits.dcd = FALSE;
- DBG("Current modem output line status = 0x%X\n",
- dr_info.line.output_line_state.state);
- }
- _send_usb_line_state(dr_info.line.output_line_state.state);
-}
-
-static void __dsr_pin_handler(tapi_ps_btdun_pincontrol_status status)
-{
- if (status == GPRS_SIGNAL_STATUS_ON) {
- dr_info.line.output_line_state.bits.dsr = TRUE;
- dsr_status = TRUE;
- DBG("Receive DSR+ from modem\n");
- }else if (status == GPRS_SIGNAL_STATUS_OFF) {
- dr_info.line.output_line_state.bits.dsr = FALSE;
- dsr_status = FALSE;
-
- DBG("Receive DSR- from modem\n");
- }
- _send_usb_line_state(dr_info.line.output_line_state.state);
-}
-
-
-
-static void __tel_dun_pincontrol_handler(TapiHandle *handle, const char *noti_id, void *data, void *user_data)
-{
- DBG("+\n");
-
- if (data == NULL)
- return;
-
- tapi_ps_btdun_pincontrol *pinctrl;
- pinctrl = (tapi_ps_btdun_pincontrol *)data;
-
- DBG("pincontrol - Signal: %d, status: %d\n", pinctrl->signal, pinctrl->status);
- switch (pinctrl->signal) {
- case GPRS_DATA_SIGNAL_DSR:
- __dsr_pin_handler(pinctrl->status);
- break;
- case GPRS_SIGNAL_DCD:
- __dcd_pin_handler(pinctrl->status);
- break;
- default:
- break;
- }
-
- DBG("-\n");
- return;
-}
-
gboolean _register_telephony_event(void)
{
- int ret;
-
- tapi_handle = tel_init(NULL);
- if (tapi_handle == NULL) {
- ERR("tel_init failed !!!\n");
- return FALSE;
- }
-
- ret = tel_register_noti_event(tapi_handle, TAPI_NOTI_MODEM_DUN_PIN_CTRL,
- __tel_dun_pincontrol_handler,
- NULL);
-
return TRUE;
}
void _unregister_telephony_event(void)
{
- tel_deregister_noti_event(tapi_handle, TAPI_NOTI_MODEM_DUN_PIN_CTRL);
-
- if (tel_deinit(tapi_handle) != TAPI_API_SUCCESS) {
- ERR("tel_deinit failed !!!\n");
- }
-
- tapi_handle = NULL;
-
return;
}