aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-11-29 10:41:15 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:29 +0100
commitc636cdb27ffd23378c793bb3b4f2ce889d2a0da3 (patch)
tree20241ba54a82d2e5553475a7e5977d088478bd81
parentd1072bda54344ed16a1dfbad27b6583dd73c25cc (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.c27
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); */