diff options
Diffstat (limited to 'drivers/atmodem')
-rw-r--r-- | drivers/atmodem/atmodem.c | 2 | ||||
-rw-r--r-- | drivers/atmodem/atmodem.h | 3 | ||||
-rw-r--r-- | drivers/atmodem/ssn.c | 147 |
3 files changed, 0 insertions, 152 deletions
diff --git a/drivers/atmodem/atmodem.c b/drivers/atmodem/atmodem.c index e140281c..ce6c10a9 100644 --- a/drivers/atmodem/atmodem.c +++ b/drivers/atmodem/atmodem.c @@ -41,7 +41,6 @@ static int atmodem_init(void) at_call_meter_init(); at_call_settings_init(); at_phonebook_init(); - at_ssn_init(); at_ussd_init(); at_sms_init(); at_sim_init(); @@ -63,7 +62,6 @@ static void atmodem_exit(void) at_sim_exit(); at_sms_exit(); at_ussd_exit(); - at_ssn_exit(); at_phonebook_exit(); at_call_settings_exit(); at_call_meter_exit(); diff --git a/drivers/atmodem/atmodem.h b/drivers/atmodem/atmodem.h index 1b7cf670..a6720d15 100644 --- a/drivers/atmodem/atmodem.h +++ b/drivers/atmodem/atmodem.h @@ -54,9 +54,6 @@ extern void at_sms_exit(void); extern void at_phonebook_init(void); extern void at_phonebook_exit(void); -extern void at_ssn_init(void); -extern void at_ssn_exit(void); - extern void at_devinfo_init(void); extern void at_devinfo_exit(void); diff --git a/drivers/atmodem/ssn.c b/drivers/atmodem/ssn.c deleted file mode 100644 index b7a9df4d..00000000 --- a/drivers/atmodem/ssn.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * - * oFono - Open Source Telephony - * - * Copyright (C) 2008-2010 Intel Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#define _GNU_SOURCE -#include <string.h> - -#include <glib.h> - -#include <ofono/log.h> -#include <ofono/modem.h> -#include <ofono/ssn.h> - -#include "gatchat.h" -#include "gatresult.h" - -#include "atmodem.h" - -static const char *none_prefix[] = { NULL }; - -static void cssi_notify(GAtResult *result, gpointer user_data) -{ - struct ofono_ssn *ssn = user_data; - GAtResultIter iter; - int code1, index; - - g_at_result_iter_init(&iter, result); - - if (!g_at_result_iter_next(&iter, "+CSSI:")) - return; - - if (!g_at_result_iter_next_number(&iter, &code1)) - return; - - if (!g_at_result_iter_next_number(&iter, &index)) - index = 0; - - ofono_ssn_cssi_notify(ssn, code1, index); -} - -static void cssu_notify(GAtResult *result, gpointer user_data) -{ - struct ofono_ssn *ssn = user_data; - GAtResultIter iter; - int code2; - int index = -1; - const char *num; - struct ofono_phone_number ph; - - ph.number[0] = '\0'; - ph.type = 129; - - g_at_result_iter_init(&iter, result); - - if (!g_at_result_iter_next(&iter, "+CSSU:")) - return; - - if (!g_at_result_iter_next_number(&iter, &code2)) - return; - - /* This field is optional, if we can't read it, try to skip it */ - if (!g_at_result_iter_next_number(&iter, &index) && - !g_at_result_iter_skip_next(&iter)) - goto out; - - if (!g_at_result_iter_next_string(&iter, &num)) - goto out; - - strncpy(ph.number, num, OFONO_MAX_PHONE_NUMBER_LENGTH); - - if (!g_at_result_iter_next_number(&iter, &ph.type)) - return; - -out: - ofono_ssn_cssu_notify(ssn, code2, index, &ph); -} - -static void at_ssn_initialized(gboolean ok, GAtResult *result, - gpointer user_data) -{ - struct ofono_ssn *ssn = user_data; - GAtChat *chat = ofono_ssn_get_data(ssn); - - g_at_chat_register(chat, "+CSSI:", cssi_notify, FALSE, ssn, NULL); - g_at_chat_register(chat, "+CSSU:", cssu_notify, FALSE, ssn, NULL); - - ofono_ssn_register(ssn); -} - -static int at_ssn_probe(struct ofono_ssn *ssn, unsigned int vendor, - void *data) -{ - GAtChat *chat = data; - - chat = g_at_chat_clone(chat); - - ofono_ssn_set_data(ssn, chat); - g_at_chat_send(chat, "AT+CSSN=1,1", none_prefix, - at_ssn_initialized, ssn, NULL); - - return 0; -} - -static void at_ssn_remove(struct ofono_ssn *ssn) -{ - GAtChat *chat = ofono_ssn_get_data(ssn); - - g_at_chat_unref(chat); - ofono_ssn_set_data(ssn, NULL); -} - -static struct ofono_ssn_driver driver = { - .name = "atmodem", - .probe = at_ssn_probe, - .remove = at_ssn_remove, -}; - -void at_ssn_init(void) -{ - ofono_ssn_driver_register(&driver); -} - -void at_ssn_exit(void) -{ - ofono_ssn_driver_unregister(&driver); -} |