diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-29 10:41:15 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:29 +0100 |
commit | c636cdb27ffd23378c793bb3b4f2ce889d2a0da3 (patch) | |
tree | 20241ba54a82d2e5553475a7e5977d088478bd81 | |
parent | d1072bda54344ed16a1dfbad27b6583dd73c25cc (diff) |
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.
-rw-r--r-- | src/mm-base-modem.c | 27 |
1 files changed, 15 insertions, 12 deletions
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); */ |