From c636cdb27ffd23378c793bb3b4f2ce889d2a0da3 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 29 Nov 2011 10:41:15 +0100 Subject: base-modem: setup NULL callbacks in unsolicited CREG message handlers When the port is grabbed, we setup NULL callbacks for all unsolicited registration message handlers. If we do enable 3GPP registrations afterwards, we'll set proper callbacks. --- src/mm-base-modem.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index 6a10053a..6f209bfc 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -31,6 +31,7 @@ #include "mm-at-serial-port.h" #include "mm-qcdm-serial-port.h" #include "mm-serial-parsers.h" +#include "mm-modem-helpers.h" G_DEFINE_ABSTRACT_TYPE (MMBaseModem, mm_base_modem, MM_GDBUS_TYPE_OBJECT_SKELETON); @@ -221,6 +222,9 @@ mm_base_modem_grab_port (MMBaseModem *self, if (!self->priv->qcdm) self->priv->qcdm = g_object_ref (port); } else { + GPtrArray *array; + int i; + /* AT port */ port = MM_PORT (mm_at_serial_port_new (name, ptype)); @@ -230,19 +234,18 @@ mm_base_modem_grab_port (MMBaseModem *self, mm_serial_parser_v1_new (), mm_serial_parser_v1_destroy); - /* { */ - /* GRegex *regex; */ - /* GPtrArray *array; */ - /* gint i; */ - - /* /\* Set up CREG unsolicited message handlers *\/ */ - /* array = mm_gsm_creg_regex_get (FALSE); */ - /* for (i = 0; i < array->len; i++) { */ - /* regex = g_ptr_array_index (array, i); */ - /* mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (port), regex, reg_state_changed, self, NULL); */ - /* } */ - /* mm_gsm_creg_regex_destroy (array); */ + /* Set up CREG unsolicited message handlers, with NULL callbacks */ + array = mm_gsm_creg_regex_get (FALSE); + for (i = 0; i < array->len; i++) { + mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (port), + (GRegex *)g_ptr_array_index (array, i), + NULL, + NULL, + NULL); + } + mm_gsm_creg_regex_destroy (array); + /* { */ /* regex = g_regex_new ("\\r\\n\\+CIEV: (\\d+),(\\d)\\r\\n", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); */ /* mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (port), regex, ciev_received, self, NULL); */ /* g_regex_unref (regex); */ -- cgit v1.2.3-70-g09d2