diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 8 | ||||
-rw-r--r-- | src/mm-at-serial-port.h | 134 | ||||
-rw-r--r-- | src/mm-base-modem-at.c | 44 | ||||
-rw-r--r-- | src/mm-base-modem-at.h | 6 | ||||
-rw-r--r-- | src/mm-base-modem.c | 90 | ||||
-rw-r--r-- | src/mm-base-modem.h | 20 | ||||
-rw-r--r-- | src/mm-broadband-bearer.c | 66 | ||||
-rw-r--r-- | src/mm-broadband-bearer.h | 22 | ||||
-rw-r--r-- | src/mm-broadband-modem.c | 88 | ||||
-rw-r--r-- | src/mm-iface-modem-3gpp-ussd.h | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-3gpp.h | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-cdma.h | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-location.h | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-messaging.h | 1 | ||||
-rw-r--r-- | src/mm-iface-modem.h | 2 | ||||
-rw-r--r-- | src/mm-plugin.c | 4 | ||||
-rw-r--r-- | src/mm-port-probe.c | 22 | ||||
-rw-r--r-- | src/mm-port-probe.h | 4 | ||||
-rw-r--r-- | src/mm-port-serial-at.c (renamed from src/mm-at-serial-port.c) | 142 | ||||
-rw-r--r-- | src/mm-port-serial-at.h | 133 | ||||
-rw-r--r-- | src/tests/test-at-serial-port.c | 4 |
21 files changed, 396 insertions, 402 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 06b63a6c..d9d87df2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -55,11 +55,11 @@ endif # libserial specific enum types SERIAL_ENUMS = \ $(srcdir)/mm-port.h \ - $(srcdir)/mm-at-serial-port.h + $(srcdir)/mm-port-serial-at.h mm-serial-enums-types.h: Makefile.am $(SERIAL_ENUMS) $(top_srcdir)/build-aux/mm-enums-template.h $(AM_V_GEN) $(GLIB_MKENUMS) \ - --fhead "#include \"mm-port.h\"\n#include \"mm-at-serial-port.h\"\n#ifndef __MM_SERIAL_ENUMS_TYPES_H__\n#define __MM_SERIAL_ENUMS_TYPES_H__\n" \ + --fhead "#include \"mm-port.h\"\n#include \"mm-port-serial-at.h\"\n#ifndef __MM_SERIAL_ENUMS_TYPES_H__\n#define __MM_SERIAL_ENUMS_TYPES_H__\n" \ --template $(top_srcdir)/build-aux/mm-enums-template.h \ --ftail "#endif /* __MM_SERIAL_ENUMS_TYPES_H__ */\n" \ $(SERIAL_ENUMS) > $@ @@ -88,8 +88,8 @@ libserial_la_SOURCES = \ mm-port.h \ mm-port-serial.c \ mm-port-serial.h \ - mm-at-serial-port.c \ - mm-at-serial-port.h \ + mm-port-serial-at.c \ + mm-port-serial-at.h \ mm-port-serial-qcdm.c \ mm-port-serial-qcdm.h \ mm-port-serial-gps.c \ diff --git a/src/mm-at-serial-port.h b/src/mm-at-serial-port.h deleted file mode 100644 index 334bacd8..00000000 --- a/src/mm-at-serial-port.h +++ /dev/null @@ -1,134 +0,0 @@ -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * 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: - * - * Copyright (C) 2008 - 2009 Novell, Inc. - * Copyright (C) 2009 - 2010 Red Hat, Inc. - */ - -#ifndef MM_AT_SERIAL_PORT_H -#define MM_AT_SERIAL_PORT_H - -#include <glib.h> -#include <glib-object.h> - -#include "mm-port-serial.h" - -#define MM_TYPE_AT_SERIAL_PORT (mm_at_serial_port_get_type ()) -#define MM_AT_SERIAL_PORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_AT_SERIAL_PORT, MMAtSerialPort)) -#define MM_AT_SERIAL_PORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_AT_SERIAL_PORT, MMAtSerialPortClass)) -#define MM_IS_AT_SERIAL_PORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_AT_SERIAL_PORT)) -#define MM_IS_AT_SERIAL_PORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_AT_SERIAL_PORT)) -#define MM_AT_SERIAL_PORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_AT_SERIAL_PORT, MMAtSerialPortClass)) - -typedef struct _MMAtSerialPort MMAtSerialPort; -typedef struct _MMAtSerialPortClass MMAtSerialPortClass; - -/* AT port flags; for example consider a device with two AT ports (ACM0 and ACM1) - * which could have the following layouts: - * - * ACM0(PRIMARY | PPP), ACM1(SECONDARY): port 0 is used for command and status - * and for PPP data; while connected port 1 is used for command and status - * ACM0(PPP), ACM1(PRIMARY): port 1 is always used for command and status, and - * only when connecting is port 0 opened for dialing (ATD) and PPP - */ -typedef enum { /*< underscore_name=mm_at_port_flag >*/ - MM_AT_PORT_FLAG_NONE = 0, - /* This port is preferred for command and status */ - MM_AT_PORT_FLAG_PRIMARY = 1 << 0, - /* Use port for command and status if the primary port is connected */ - MM_AT_PORT_FLAG_SECONDARY = 1 << 1, - /* This port should be used for PPP */ - MM_AT_PORT_FLAG_PPP = 1 << 2, - /* This port should be used for GPS control */ - MM_AT_PORT_FLAG_GPS_CONTROL = 1 << 3, -} MMAtPortFlag; - -typedef gboolean (*MMAtSerialResponseParserFn) (gpointer user_data, - GString *response, - GError **error); - -typedef void (*MMAtSerialUnsolicitedMsgFn) (MMAtSerialPort *port, - GMatchInfo *match_info, - gpointer user_data); - -typedef void (*MMAtSerialResponseFn) (MMAtSerialPort *port, - GString *response, - GError *error, - gpointer user_data); - -#define MM_AT_SERIAL_PORT_REMOVE_ECHO "remove-echo" -#define MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED "init-sequence-enabled" -#define MM_AT_SERIAL_PORT_INIT_SEQUENCE "init-sequence" - -#define MM_AT_SERIAL_PORT_SEND_LF "send-lf" - -struct _MMAtSerialPort { - MMPortSerial parent; -}; - -struct _MMAtSerialPortClass { - MMPortSerialClass parent; -}; - -GType mm_at_serial_port_get_type (void); - -MMAtSerialPort *mm_at_serial_port_new (const char *name); - -void mm_at_serial_port_add_unsolicited_msg_handler (MMAtSerialPort *self, - GRegex *regex, - MMAtSerialUnsolicitedMsgFn callback, - gpointer user_data, - GDestroyNotify notify); - -void mm_at_serial_port_enable_unsolicited_msg_handler (MMAtSerialPort *self, - GRegex *regex, - gboolean enable); - -void mm_at_serial_port_set_response_parser (MMAtSerialPort *self, - MMAtSerialResponseParserFn fn, - gpointer user_data, - GDestroyNotify notify); - -void mm_at_serial_port_queue_command (MMAtSerialPort *self, - const char *command, - guint32 timeout_seconds, - gboolean is_raw, - GCancellable *cancellable, - MMAtSerialResponseFn callback, - gpointer user_data); - -void mm_at_serial_port_queue_command_cached (MMAtSerialPort *self, - const char *command, - guint32 timeout_seconds, - gboolean is_raw, - GCancellable *cancellable, - MMAtSerialResponseFn callback, - gpointer user_data); - -/* - * Convert a string into a quoted and escaped string. Returns a new - * allocated string. Follows ITU V.250 5.4.2.2 "String constants". - */ -gchar *mm_at_serial_port_quote_string (const char *string); - -/* Just for unit tests */ -void mm_at_serial_port_remove_echo (GByteArray *response); - -void mm_at_serial_port_set_flags (MMAtSerialPort *self, - MMAtPortFlag flags); - -MMAtPortFlag mm_at_serial_port_get_flags (MMAtSerialPort *self); - -/* Tell the port to run its init sequence, if any, right away */ -void mm_at_serial_port_run_init_sequence (MMAtSerialPort *self); - -#endif /* MM_AT_SERIAL_PORT_H */ diff --git a/src/mm-base-modem-at.c b/src/mm-base-modem-at.c index ce15e83d..0b3c5a12 100644 --- a/src/mm-base-modem-at.c +++ b/src/mm-base-modem-at.c @@ -23,7 +23,7 @@ static gboolean abort_async_if_port_unusable (MMBaseModem *self, - MMAtSerialPort *port, + MMPortSerialAt *port, GAsyncReadyCallback callback, gpointer user_data) { @@ -56,8 +56,8 @@ abort_async_if_port_unusable (MMBaseModem *self, /* Temporarily disable init sequence if we're just sending a * command to a just opened port */ - g_object_get (port, MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, &init_sequence_enabled, NULL); - g_object_set (port, MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, FALSE, NULL); + g_object_get (port, MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, &init_sequence_enabled, NULL); + g_object_set (port, MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, FALSE, NULL); /* Ensure we have a port open during the sequence */ if (!mm_port_serial_open (MM_PORT_SERIAL (port), &error)) { @@ -74,7 +74,7 @@ abort_async_if_port_unusable (MMBaseModem *self, } /* Reset previous init sequence state */ - g_object_set (port, MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, init_sequence_enabled, NULL); + g_object_set (port, MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, init_sequence_enabled, NULL); return TRUE; } @@ -91,7 +91,7 @@ modem_cancellable_cancelled (GCancellable *modem_cancellable, typedef struct { MMBaseModem *self; - MMAtSerialPort *port; + MMPortSerialAt *port; GCancellable *cancellable; gulong cancelled_id; GCancellable *modem_cancellable; @@ -153,7 +153,7 @@ mm_base_modem_at_sequence_full_finish (MMBaseModem *self, } static void -at_sequence_parse_response (MMAtSerialPort *port, +at_sequence_parse_response (MMPortSerialAt *port, GString *response, GError *error, AtSequenceContext *ctx) @@ -206,22 +206,22 @@ at_sequence_parse_response (MMAtSerialPort *port, if (ctx->current->command) { /* Schedule the next command in the probing group */ if (ctx->current->allow_cached) - mm_at_serial_port_queue_command_cached ( + mm_port_serial_at_queue_command_cached ( ctx->port, ctx->current->command, ctx->current->timeout, FALSE, ctx->cancellable, - (MMAtSerialResponseFn)at_sequence_parse_response, + (MMPortSerialAtResponseFn)at_sequence_parse_response, ctx); else - mm_at_serial_port_queue_command ( + mm_port_serial_at_queue_command ( ctx->port, ctx->current->command, ctx->current->timeout, FALSE, ctx->cancellable, - (MMAtSerialResponseFn)at_sequence_parse_response, + (MMPortSerialAtResponseFn)at_sequence_parse_response, ctx); return; } @@ -252,7 +252,7 @@ at_sequence_parse_response (MMAtSerialPort *port, void mm_base_modem_at_sequence_full (MMBaseModem *self, - MMAtSerialPort *port, + MMPortSerialAt *port, const MMBaseModemAtCommand *sequence, gpointer response_processor_context, GDestroyNotify response_processor_context_free, @@ -295,13 +295,13 @@ mm_base_modem_at_sequence_full (MMBaseModem *self, } /* Go on with the first one in the sequence */ - mm_at_serial_port_queue_command ( + mm_port_serial_at_queue_command ( ctx->port, ctx->current->command, ctx->current->timeout, FALSE, ctx->cancellable, - (MMAtSerialResponseFn)at_sequence_parse_response, + (MMPortSerialAtResponseFn)at_sequence_parse_response, ctx); } @@ -326,7 +326,7 @@ mm_base_modem_at_sequence (MMBaseModem *self, GAsyncReadyCallback callback, gpointer user_data) { - MMAtSerialPort *port; + MMPortSerialAt *port; GError *error = NULL; /* No port given, so we'll try to guess which is best */ @@ -431,7 +431,7 @@ mm_base_modem_response_processor_continue_on_error (MMBaseModem *self, typedef struct { MMBaseModem *self; - MMAtSerialPort *port; + MMPortSerialAt *port; GCancellable *cancellable; gulong cancelled_id; GCancellable *modem_cancellable; @@ -470,7 +470,7 @@ mm_base_modem_at_command_full_finish (MMBaseModem *self, } static void -at_command_parse_response (MMAtSerialPort *port, +at_command_parse_response (MMPortSerialAt *port, GString *response, GError *error, AtCommandContext *ctx) @@ -502,7 +502,7 @@ at_command_parse_response (MMAtSerialPort *port, void mm_base_modem_at_command_full (MMBaseModem *self, - MMAtSerialPort *port, + MMPortSerialAt *port, const gchar *command, guint timeout, gboolean allow_cached, @@ -543,22 +543,22 @@ mm_base_modem_at_command_full (MMBaseModem *self, /* Go on with the command */ if (allow_cached) - mm_at_serial_port_queue_command_cached ( + mm_port_serial_at_queue_command_cached ( port, command, timeout, is_raw, ctx->cancellable, - (MMAtSerialResponseFn)at_command_parse_response, + (MMPortSerialAtResponseFn)at_command_parse_response, ctx); else - mm_at_serial_port_queue_command ( + mm_port_serial_at_queue_command ( port, command, timeout, is_raw, ctx->cancellable, - (MMAtSerialResponseFn)at_command_parse_response, + (MMPortSerialAtResponseFn)at_command_parse_response, ctx); } @@ -579,7 +579,7 @@ _at_command (MMBaseModem *self, GAsyncReadyCallback callback, gpointer user_data) { - MMAtSerialPort *port; + MMPortSerialAt *port; GError *error = NULL; /* No port given, so we'll try to guess which is best */ diff --git a/src/mm-base-modem-at.h b/src/mm-base-modem-at.h index 18b3cdc5..e155c908 100644 --- a/src/mm-base-modem-at.h +++ b/src/mm-base-modem-at.h @@ -19,7 +19,7 @@ #include <gio/gio.h> #include "mm-base-modem.h" -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" /* * The expected result depends on the specific operation, so the GVariant @@ -79,7 +79,7 @@ GVariant *mm_base_modem_at_sequence_finish (MMBaseModem *self, /* Fully detailed AT sequence handling, when specific AT port and/or explicit * cancellations need to be used. */ void mm_base_modem_at_sequence_full (MMBaseModem *self, - MMAtSerialPort *port, + MMPortSerialAt *port, const MMBaseModemAtCommand *sequence, gpointer response_processor_context, GDestroyNotify response_processor_context_free, @@ -152,7 +152,7 @@ const gchar *mm_base_modem_at_command_finish (MMBaseModem *self, /* Fully detailed AT command handling, when specific AT port and/or explicit * cancellations need to be used. */ void mm_base_modem_at_command_full (MMBaseModem *self, - MMAtSerialPort *port, + MMPortSerialAt *port, const gchar *command, guint timeout, gboolean allow_cached, diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index 016f0d8f..ee13d6b4 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -77,14 +77,14 @@ struct _MMBaseModemPrivate { GCancellable *authp_cancellable; GHashTable *ports; - MMAtSerialPort *primary; - MMAtSerialPort *secondary; + MMPortSerialAt *primary; + MMPortSerialAt *secondary; MMPortSerialQcdm *qcdm; GList *data; /* GPS-enabled modems will have an AT port for control, and a raw serial * port to receive all GPS traces */ - MMAtSerialPort *gps_control; + MMPortSerialAt *gps_control; MMPortSerialGps *gps; #if defined WITH_QMI @@ -162,7 +162,7 @@ mm_base_modem_grab_port (MMBaseModem *self, const gchar *subsys, const gchar *name, MMPortType ptype, - MMAtPortFlag at_pflags, + MMPortSerialAtFlag at_pflags, GError **error) { MMPort *port; @@ -206,15 +206,15 @@ mm_base_modem_grab_port (MMBaseModem *self, port = MM_PORT (mm_port_serial_qcdm_new (name)); else if (ptype == MM_PORT_TYPE_AT) { /* AT port */ - port = MM_PORT (mm_at_serial_port_new (name)); + port = MM_PORT (mm_port_serial_at_new (name)); /* Set common response parser */ - mm_at_serial_port_set_response_parser (MM_AT_SERIAL_PORT (port), + mm_port_serial_at_set_response_parser (MM_PORT_SERIAL_AT (port), mm_serial_parser_v1_parse, mm_serial_parser_v1_new (), mm_serial_parser_v1_destroy); /* Store flags already */ - mm_at_serial_port_set_flags (MM_AT_SERIAL_PORT (port), at_pflags); + mm_port_serial_at_set_flags (MM_PORT_SERIAL_AT (port), at_pflags); } else if (ptype == MM_PORT_TYPE_GPS) { /* Raw GPS port */ port = MM_PORT (mm_port_serial_gps_new (name)); @@ -487,7 +487,7 @@ mm_base_modem_get_cancellable (MMBaseModem *self) return g_object_ref (self->priv->cancellable); } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_get_port_primary (MMBaseModem *self) { g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); @@ -495,7 +495,7 @@ mm_base_modem_get_port_primary (MMBaseModem *self) return (self->priv->primary ? g_object_ref (self->priv->primary) : NULL); } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_peek_port_primary (MMBaseModem *self) { g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); @@ -503,7 +503,7 @@ mm_base_modem_peek_port_primary (MMBaseModem *self) return self->priv->primary; } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_get_port_secondary (MMBaseModem *self) { g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); @@ -511,7 +511,7 @@ mm_base_modem_get_port_secondary (MMBaseModem *self) return (self->priv->secondary ? g_object_ref (self->priv->secondary) : NULL); } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_peek_port_secondary (MMBaseModem *self) { g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); @@ -535,7 +535,7 @@ mm_base_modem_peek_port_qcdm (MMBaseModem *self) return self->priv->qcdm; } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_get_port_gps_control (MMBaseModem *self) { g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); @@ -543,7 +543,7 @@ mm_base_modem_get_port_gps_control (MMBaseModem *self) return (self->priv->gps_control ? g_object_ref (self->priv->gps_control) : NULL); } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_peek_port_gps_control (MMBaseModem *self) { g_return_val_if_fail (MM_IS_BASE_MODEM (self), NULL); @@ -919,17 +919,17 @@ mm_base_modem_peek_data_ports (MMBaseModem *self) return self->priv->data; } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_get_best_at_port (MMBaseModem *self, GError **error) { - MMAtSerialPort *best; + MMPortSerialAt *best; best = mm_base_modem_peek_best_at_port (self, error); return (best ? g_object_ref (best) : NULL); } -MMAtSerialPort * +MMPortSerialAt * mm_base_modem_peek_best_at_port (MMBaseModem *self, GError **error) { @@ -962,7 +962,7 @@ mm_base_modem_has_at_port (MMBaseModem *self) /* We'll iterate the ht of ports, looking for any port which is AT */ g_hash_table_iter_init (&iter, self->priv->ports); while (g_hash_table_iter_next (&iter, &key, &value)) { - if (MM_IS_AT_SERIAL_PORT (value)) + if (MM_IS_PORT_SERIAL_AT (value)) return TRUE; } @@ -1064,13 +1064,13 @@ mm_base_modem_organize_ports (MMBaseModem *self, { GHashTableIter iter; MMPort *candidate; - MMAtPortFlag flags; - MMAtSerialPort *backup_primary = NULL; - MMAtSerialPort *primary = NULL; - MMAtSerialPort *secondary = NULL; - MMAtSerialPort *backup_secondary = NULL; + MMPortSerialAtFlag flags; + MMPortSerialAt *backup_primary = NULL; + MMPortSerialAt *primary = NULL; + MMPortSerialAt *secondary = NULL; + MMPortSerialAt *backup_secondary = NULL; MMPortSerialQcdm *qcdm = NULL; - MMAtSerialPort *gps_control = NULL; + MMPortSerialAt *gps_control = NULL; MMPortSerialGps *gps = NULL; MMPort *data_primary = NULL; GList *data = NULL; @@ -1095,22 +1095,22 @@ mm_base_modem_organize_ports (MMBaseModem *self, switch (mm_port_get_port_type (candidate)) { case MM_PORT_TYPE_AT: - g_assert (MM_IS_AT_SERIAL_PORT (candidate)); - flags = mm_at_serial_port_get_flags (MM_AT_SERIAL_PORT (candidate)); + g_assert (MM_IS_PORT_SERIAL_AT (candidate)); + flags = mm_port_serial_at_get_flags (MM_PORT_SERIAL_AT (candidate)); - if (flags & MM_AT_PORT_FLAG_PRIMARY) { + if (flags & MM_PORT_SERIAL_AT_FLAG_PRIMARY) { if (!primary) - primary = MM_AT_SERIAL_PORT (candidate); + primary = MM_PORT_SERIAL_AT (candidate); else if (!backup_primary) { /* Just in case the plugin gave us more than one primary * and no secondaries, treat additional primary ports as * secondary. */ - backup_primary = MM_AT_SERIAL_PORT (candidate); + backup_primary = MM_PORT_SERIAL_AT (candidate); } } - if (flags & MM_AT_PORT_FLAG_PPP) { + if (flags & MM_PORT_SERIAL_AT_FLAG_PPP) { if (!data_primary) data_primary = candidate; else @@ -1118,22 +1118,22 @@ mm_base_modem_organize_ports (MMBaseModem *self, } /* Explicitly flagged secondary ports trump NONE ports for secondary */ - if (flags & MM_AT_PORT_FLAG_SECONDARY) { - if (!secondary || !(mm_at_serial_port_get_flags (secondary) & MM_AT_PORT_FLAG_SECONDARY)) - secondary = MM_AT_SERIAL_PORT (candidate); + if (flags & MM_PORT_SERIAL_AT_FLAG_SECONDARY) { + if (!secondary || !(mm_port_serial_at_get_flags (secondary) & MM_PORT_SERIAL_AT_FLAG_SECONDARY)) + secondary = MM_PORT_SERIAL_AT (candidate); } - if (flags & MM_AT_PORT_FLAG_GPS_CONTROL) { + if (flags & MM_PORT_SERIAL_AT_FLAG_GPS_CONTROL) { if (!gps_control) - gps_control = MM_AT_SERIAL_PORT (candidate); + gps_control = MM_PORT_SERIAL_AT (candidate); } /* Fallback secondary */ - if (flags == MM_AT_PORT_FLAG_NONE) { + if (flags == MM_PORT_SERIAL_AT_FLAG_NONE) { if (!secondary) - secondary = MM_AT_SERIAL_PORT (candidate); + secondary = MM_PORT_SERIAL_AT (candidate); else if (!backup_secondary) - backup_secondary = MM_AT_SERIAL_PORT (candidate); + backup_secondary = MM_PORT_SERIAL_AT (candidate); } break; @@ -1146,7 +1146,7 @@ mm_base_modem_organize_ports (MMBaseModem *self, case MM_PORT_TYPE_NET: if (!data_primary) data_primary = candidate; - else if (MM_IS_AT_SERIAL_PORT (data_primary)) { + else if (MM_IS_PORT_SERIAL_AT (data_primary)) { /* Net device (if any) is the preferred data port */ data = g_list_append (data, data_primary); data_primary = candidate; @@ -1252,17 +1252,17 @@ mm_base_modem_organize_ports (MMBaseModem *self, /* Reset flags on all ports; clear data port first since it might also * be the primary or secondary port. */ - if (MM_IS_AT_SERIAL_PORT (data_primary)) - mm_at_serial_port_set_flags (MM_AT_SERIAL_PORT (data_primary), MM_AT_PORT_FLAG_NONE); + if (MM_IS_PORT_SERIAL_AT (data_primary)) + mm_port_serial_at_set_flags (MM_PORT_SERIAL_AT (data_primary), MM_PORT_SERIAL_AT_FLAG_NONE); if (primary) - mm_at_serial_port_set_flags (primary, MM_AT_PORT_FLAG_PRIMARY); + mm_port_serial_at_set_flags (primary, MM_PORT_SERIAL_AT_FLAG_PRIMARY); if (secondary) - mm_at_serial_port_set_flags (secondary, MM_AT_PORT_FLAG_SECONDARY); + mm_port_serial_at_set_flags (secondary, MM_PORT_SERIAL_AT_FLAG_SECONDARY); - if (MM_IS_AT_SERIAL_PORT (data_primary)) { - flags = mm_at_serial_port_get_flags (MM_AT_SERIAL_PORT (data_primary)); - mm_at_serial_port_set_flags (MM_AT_SERIAL_PORT (data_primary), flags | MM_AT_PORT_FLAG_PPP); + if (MM_IS_PORT_SERIAL_AT (data_primary)) { + flags = mm_port_serial_at_get_flags (MM_PORT_SERIAL_AT (data_primary)); + mm_port_serial_at_set_flags (MM_PORT_SERIAL_AT (data_primary), flags | MM_PORT_SERIAL_AT_FLAG_PPP); } log_port (self, MM_PORT (primary), "at (primary)"); diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h index 61699401..b4133376 100644 --- a/src/mm-base-modem.h +++ b/src/mm-base-modem.h @@ -30,7 +30,7 @@ #include "mm-auth.h" #include "mm-port.h" -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #include "mm-port-serial-qcdm.h" #include "mm-port-serial-gps.h" @@ -107,7 +107,7 @@ gboolean mm_base_modem_grab_port (MMBaseModem *self, const gchar *subsys, const gchar *name, MMPortType ptype, - MMAtPortFlag at_pflags, + MMPortSerialAtFlag at_pflags, GError **error); void mm_base_modem_release_port (MMBaseModem *self, const gchar *subsys, @@ -124,10 +124,10 @@ gboolean mm_base_modem_has_at_port (MMBaseModem *self); gboolean mm_base_modem_organize_ports (MMBaseModem *self, GError **error); -MMAtSerialPort *mm_base_modem_peek_port_primary (MMBaseModem *self); -MMAtSerialPort *mm_base_modem_peek_port_secondary (MMBaseModem *self); +MMPortSerialAt *mm_base_modem_peek_port_primary (MMBaseModem *self); +MMPortSerialAt *mm_base_modem_peek_port_secondary (MMBaseModem *self); MMPortSerialQcdm *mm_base_modem_peek_port_qcdm (MMBaseModem *self); -MMAtSerialPort *mm_base_modem_peek_port_gps_control (MMBaseModem *self); +MMPortSerialAt *mm_base_modem_peek_port_gps_control (MMBaseModem *self); MMPortSerialGps *mm_base_modem_peek_port_gps (MMBaseModem *self); #if defined WITH_QMI MMQmiPort *mm_base_modem_peek_port_qmi (MMBaseModem *self); @@ -137,14 +137,14 @@ MMQmiPort *mm_base_modem_peek_port_qmi_for_data (MMBaseModem *self, MMPor MMMbimPort *mm_base_modem_peek_port_mbim (MMBaseModem *self); MMMbimPort *mm_base_modem_peek_port_mbim_for_data (MMBaseModem *self, MMPort *data, GError **error); #endif -MMAtSerialPort *mm_base_modem_peek_best_at_port (MMBaseModem *self, GError **error); +MMPortSerialAt *mm_base_modem_peek_best_at_port (MMBaseModem *self, GError **error); MMPort *mm_base_modem_peek_best_data_port (MMBaseModem *self, MMPortType type); GList *mm_base_modem_peek_data_ports (MMBaseModem *self); -MMAtSerialPort *mm_base_modem_get_port_primary (MMBaseModem *self); -MMAtSerialPort *mm_base_modem_get_port_secondary (MMBaseModem *self); +MMPortSerialAt *mm_base_modem_get_port_primary (MMBaseModem *self); +MMPortSerialAt *mm_base_modem_get_port_secondary (MMBaseModem *self); MMPortSerialQcdm *mm_base_modem_get_port_qcdm (MMBaseModem *self); -MMAtSerialPort *mm_base_modem_get_port_gps_control (MMBaseModem *self); +MMPortSerialAt *mm_base_modem_get_port_gps_control (MMBaseModem *self); MMPortSerialGps *mm_base_modem_get_port_gps (MMBaseModem *self); #if defined WITH_QMI MMQmiPort *mm_base_modem_get_port_qmi (MMBaseModem *self); @@ -154,7 +154,7 @@ MMQmiPort *mm_base_modem_get_port_qmi_for_data (MMBaseModem *self, MMPort MMMbimPort *mm_base_modem_get_port_mbim (MMBaseModem *self); MMMbimPort *mm_base_modem_get_port_mbim_for_data (MMBaseModem *self, MMPort *data, GError **error); #endif -MMAtSerialPort *mm_base_modem_get_best_at_port (MMBaseModem *self, GError **error); +MMPortSerialAt *mm_base_modem_get_best_at_port (MMBaseModem *self, GError **error); MMPort *mm_base_modem_get_best_data_port (MMBaseModem *self, MMPortType type); GList *mm_base_modem_get_data_ports (MMBaseModem *self); diff --git a/src/mm-broadband-bearer.c b/src/mm-broadband-bearer.c index c25e4032..0ae84169 100644 --- a/src/mm-broadband-bearer.c +++ b/src/mm-broadband-bearer.c @@ -74,8 +74,8 @@ mm_broadband_bearer_get_3gpp_cid (MMBroadbandBearer *self) typedef struct { MMBroadbandBearer *self; MMBaseModem *modem; - MMAtSerialPort *primary; - MMAtSerialPort *secondary; + MMPortSerialAt *primary; + MMPortSerialAt *secondary; GCancellable *cancellable; GSimpleAsyncResult *result; @@ -149,8 +149,8 @@ detailed_connect_context_complete_and_free_if_cancelled (DetailedConnectContext static DetailedConnectContext * detailed_connect_context_new (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) @@ -188,7 +188,7 @@ detailed_connect_context_new (MMBroadbandBearer *self, /*****************************************************************************/ /* Generic implementations (both 3GPP and CDMA) are always AT-port based */ -static MMAtSerialPort * +static MMPortSerialAt * common_get_at_data_port (MMBaseModem *modem, GError **error) { @@ -204,7 +204,7 @@ common_get_at_data_port (MMBaseModem *modem, data = (MMPort *) mm_base_modem_peek_port_primary (modem); } - g_assert (MM_IS_AT_SERIAL_PORT (data)); + g_assert (MM_IS_PORT_SERIAL_AT (data)); if (!mm_port_serial_open (MM_PORT_SERIAL (data), error)) { g_prefix_error (error, "Couldn't connect: cannot keep data port open."); @@ -213,7 +213,7 @@ common_get_at_data_port (MMBaseModem *modem, mm_dbg ("Connection through a plain serial AT port (%s)", mm_port_get_device (data)); - return MM_AT_SERIAL_PORT (g_object_ref (data)); + return MM_PORT_SERIAL_AT (g_object_ref (data)); } /*****************************************************************************/ @@ -252,7 +252,7 @@ dial_cdma_ready (MMBaseModem *modem, ctx->close_data_on_exit = FALSE; /* Generic CDMA connections are done over PPP always */ - g_assert (MM_IS_AT_SERIAL_PORT (ctx->data)); + g_assert (MM_IS_PORT_SERIAL_AT (ctx->data)); config = mm_bearer_ip_config_new (); mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_PPP); @@ -283,7 +283,7 @@ cdma_connect_context_dial (DetailedConnectContext *ctx) command = g_strdup ("DT#777"); mm_base_modem_at_command_full (ctx->modem, - MM_AT_SERIAL_PORT (ctx->data), + MM_PORT_SERIAL_AT (ctx->data), command, 90, FALSE, @@ -389,8 +389,8 @@ current_rm_protocol_ready (MMBaseModem *self, static void connect_cdma (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, /* unused by us */ + MMPortSerialAt *primary, + MMPortSerialAt *secondary, /* unused by us */ GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) @@ -445,12 +445,12 @@ connect_cdma (MMBroadbandBearer *self, typedef struct { MMBroadbandBearer *self; MMBaseModem *modem; - MMAtSerialPort *primary; + MMPortSerialAt *primary; GCancellable *cancellable; GSimpleAsyncResult *result; GError *saved_error; - MMAtSerialPort *dial_port; + MMPortSerialAt *dial_port; gboolean close_dial_port_on_exit; } Dial3gppContext; @@ -574,7 +574,7 @@ atd_ready (MMBaseModem *modem, static void dial_3gpp (MMBroadbandBearer *self, MMBaseModem *modem, - MMAtSerialPort *primary, + MMPortSerialAt *primary, guint cid, GCancellable *cancellable, GAsyncReadyCallback callback, @@ -654,7 +654,7 @@ get_ip_config_3gpp_ready (MMBroadbandModem *modem, } /* Keep port open during connection */ - if (MM_IS_AT_SERIAL_PORT (ctx->data)) + if (MM_IS_PORT_SERIAL_AT (ctx->data)) ctx->close_data_on_exit = FALSE; g_simple_async_result_set_op_res_gpointer ( @@ -688,7 +688,7 @@ dial_3gpp_ready (MMBroadbandModem *modem, /* If the dialling operation used an AT port, it is assumed to have an extra * open() count. */ - if (MM_IS_AT_SERIAL_PORT (ctx->data)) + if (MM_IS_PORT_SERIAL_AT (ctx->data)) ctx->close_data_on_exit = TRUE; if (MM_BROADBAND_BEARER_GET_CLASS (ctx->self)->get_ip_config_3gpp && @@ -709,14 +709,14 @@ dial_3gpp_ready (MMBroadbandModem *modem, /* Yuhu! */ /* Keep port open during connection */ - if (MM_IS_AT_SERIAL_PORT (ctx->data)) + if (MM_IS_PORT_SERIAL_AT (ctx->data)) ctx->close_data_on_exit = FALSE; /* If no specific IP retrieval requested, set the default implementation * (PPP if data port is AT, DHCP otherwise) */ config = mm_bearer_ip_config_new (); mm_bearer_ip_config_set_method (config, - (MM_IS_AT_SERIAL_PORT (ctx->data) ? + (MM_IS_PORT_SERIAL_AT (ctx->data) ? MM_BEARER_IP_METHOD_PPP : MM_BEARER_IP_METHOD_DHCP)); @@ -814,7 +814,7 @@ find_cid_ready (MMBaseModem *modem, } /* Otherwise, initialize a new PDP context with our APN */ - apn = mm_at_serial_port_quote_string (mm_bearer_properties_get_apn (mm_bearer_peek_config (MM_BEARER (ctx->self)))); + apn = mm_port_serial_at_quote_string (mm_bearer_properties_get_apn (mm_bearer_peek_config (MM_BEARER (ctx->self)))); command = g_strdup_printf ("+CGDCONT=%u,\"%s\",%s", ctx->cid, pdp_type, @@ -999,8 +999,8 @@ static const MMBaseModemAtCommand find_cid_sequence[] = { static void connect_3gpp (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) @@ -1120,7 +1120,7 @@ connect (MMBearer *self, gpointer user_data) { MMBaseModem *modem = NULL; - MMAtSerialPort *primary; + MMPortSerialAt *primary; ConnectContext *ctx; const gchar *apn; @@ -1264,8 +1264,8 @@ connect (MMBearer *self, typedef struct { MMBroadbandBearer *self; MMBaseModem *modem; - MMAtSerialPort *primary; - MMAtSerialPort *secondary; + MMPortSerialAt *primary; + MMPortSerialAt *secondary; MMPort *data; GSimpleAsyncResult *result; @@ -1301,8 +1301,8 @@ detailed_disconnect_context_complete_and_free (DetailedDisconnectContext *ctx) static DetailedDisconnectContext * detailed_disconnect_context_new (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, MMPort *data, GAsyncReadyCallback callback, gpointer user_data) @@ -1384,8 +1384,8 @@ data_reopen_cdma_ready (MMPortSerial *data, static void disconnect_cdma (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, MMPort *data, GAsyncReadyCallback callback, gpointer user_data) @@ -1478,7 +1478,7 @@ data_flash_3gpp_ready (MMPortSerial *data, /* Last resort, try to send CGACT in the data port itself */ mm_dbg ("Sending PDP context deactivation in data port..."); mm_base_modem_at_command_full (ctx->modem, - MM_AT_SERIAL_PORT (data), + MM_PORT_SERIAL_AT (data), ctx->cgact_command, 10, FALSE, @@ -1541,8 +1541,8 @@ cgact_ready (MMBaseModem *modem, static void disconnect_3gpp (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, MMPort *data, guint cid, GAsyncReadyCallback callback, @@ -1708,7 +1708,7 @@ disconnect (MMBearer *self, GAsyncReadyCallback callback, gpointer user_data) { - MMAtSerialPort *primary; + MMPortSerialAt *primary; MMBaseModem *modem = NULL; DisconnectContext *ctx; @@ -1815,7 +1815,7 @@ struct _InitAsyncContext { GCancellable *cancellable; MMBaseModem *modem; InitializationStep step; - MMAtSerialPort *port; + MMPortSerialAt *port; }; static void diff --git a/src/mm-broadband-bearer.h b/src/mm-broadband-bearer.h index 35d04a93..4a008cd1 100644 --- a/src/mm-broadband-bearer.h +++ b/src/mm-broadband-bearer.h @@ -50,8 +50,8 @@ struct _MMBroadbandBearerClass { /* Full 3GPP connection sequence */ void (* connect_3gpp) (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -62,7 +62,7 @@ struct _MMBroadbandBearerClass { /* Dialing sub-part of 3GPP connection */ void (* dial_3gpp) (MMBroadbandBearer *self, MMBaseModem *modem, - MMAtSerialPort *primary, + MMPortSerialAt *primary, guint cid, GCancellable *cancellable, GAsyncReadyCallback callback, @@ -75,8 +75,8 @@ struct _MMBroadbandBearerClass { * Only really required when using net port + static IP address. */ void (* get_ip_config_3gpp) (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, MMPort *data, guint cid, GAsyncReadyCallback callback, @@ -90,8 +90,8 @@ struct _MMBroadbandBearerClass { /* Full 3GPP disconnection sequence */ void (* disconnect_3gpp) (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, MMPort *data, guint cid, GAsyncReadyCallback callback, @@ -103,8 +103,8 @@ struct _MMBroadbandBearerClass { /* Full CDMA connection sequence */ void (* connect_cdma) (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); @@ -115,8 +115,8 @@ struct _MMBroadbandBearerClass { /* Full CDMA disconnection sequence */ void (* disconnect_cdma) (MMBroadbandBearer *self, MMBroadbandModem *modem, - MMAtSerialPort *primary, - MMAtSerialPort *secondary, + MMPortSerialAt *primary, + MMPortSerialAt *secondary, MMPort *data, GAsyncReadyCallback callback, gpointer user_data); diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 1e27e407..60a027b8 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -1784,7 +1784,7 @@ signal_quality_csq (SignalQualityContext *ctx) { mm_base_modem_at_sequence_full ( MM_BASE_MODEM (ctx->self), - MM_AT_SERIAL_PORT (ctx->port), + MM_PORT_SERIAL_AT (ctx->port), signal_quality_csq_sequence, NULL, /* response_processor_context */ NULL, /* response_processor_context_free */ @@ -1877,7 +1877,7 @@ static void signal_quality_cind (SignalQualityContext *ctx) { mm_base_modem_at_command_full (MM_BASE_MODEM (ctx->self), - MM_AT_SERIAL_PORT (ctx->port), + MM_PORT_SERIAL_AT (ctx->port), "+CIND?", 3, FALSE, @@ -2406,7 +2406,7 @@ modem_3gpp_setup_cleanup_unsolicited_events_finish (MMIfaceModem3gpp *self, } static void -ciev_received (MMAtSerialPort *port, +ciev_received (MMPortSerialAt *port, GMatchInfo *info, MMBroadbandModem *self) { @@ -2447,7 +2447,7 @@ static void set_unsolicited_events_handlers (MMBroadbandModem *self, gboolean enable) { - MMAtSerialPort *ports[2]; + MMPortSerialAt *ports[2]; GRegex *ciev_regex; guint i; @@ -2464,10 +2464,10 @@ set_unsolicited_events_handlers (MMBroadbandModem *self, mm_dbg ("(%s) %s 3GPP unsolicited events handlers", mm_port_get_device (MM_PORT (ports[i])), enable ? "Setting" : "Removing"); - mm_at_serial_port_add_unsolicited_msg_handler ( + mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], ciev_regex, - enable ? (MMAtSerialUnsolicitedMsgFn) ciev_received : NULL, + enable ? (MMPortSerialAtUnsolicitedMsgFn) ciev_received : NULL, enable ? self : NULL, NULL); } @@ -2659,7 +2659,7 @@ unsolicited_events_setup_ready (MMBroadbandModem *self, static void run_unsolicited_events_setup (UnsolicitedEventsContext *ctx) { - MMAtSerialPort *port = NULL; + MMPortSerialAt *port = NULL; if (!ctx->cmer_primary_done) { ctx->cmer_primary_done = TRUE; @@ -3495,7 +3495,7 @@ modem_3gpp_setup_unsolicited_registration_events_finish (MMIfaceModem3gpp *self, } static void -registration_state_changed (MMAtSerialPort *port, +registration_state_changed (MMPortSerialAt *port, GMatchInfo *match_info, MMBroadbandModem *self) { @@ -3546,7 +3546,7 @@ modem_3gpp_setup_unsolicited_registration_events (MMIfaceModem3gpp *self, gpointer user_data) { GSimpleAsyncResult *result; - MMAtSerialPort *ports[2]; + MMPortSerialAt *ports[2]; GPtrArray *array; guint i; guint j; @@ -3568,10 +3568,10 @@ modem_3gpp_setup_unsolicited_registration_events (MMIfaceModem3gpp *self, mm_dbg ("(%s) setting up 3GPP unsolicited registration messages handlers", mm_port_get_device (MM_PORT (ports[i]))); for (j = 0; j < array->len; j++) { - mm_at_serial_port_add_unsolicited_msg_handler ( - MM_AT_SERIAL_PORT (ports[i]), + mm_port_serial_at_add_unsolicited_msg_handler ( + MM_PORT_SERIAL_AT (ports[i]), (GRegex *) g_ptr_array_index (array, j), - (MMAtSerialUnsolicitedMsgFn)registration_state_changed, + (MMPortSerialAtUnsolicitedMsgFn)registration_state_changed, self, NULL); } @@ -3600,7 +3600,7 @@ modem_3gpp_cleanup_unsolicited_registration_events (MMIfaceModem3gpp *self, gpointer user_data) { GSimpleAsyncResult *result; - MMAtSerialPort *ports[2]; + MMPortSerialAt *ports[2]; GPtrArray *array; guint i; guint j; @@ -3623,8 +3623,8 @@ modem_3gpp_cleanup_unsolicited_registration_events (MMIfaceModem3gpp *self, mm_port_get_device (MM_PORT (ports[i]))); for (j = 0; j < array->len; j++) { - mm_at_serial_port_add_unsolicited_msg_handler ( - MM_AT_SERIAL_PORT (ports[i]), + mm_port_serial_at_add_unsolicited_msg_handler ( + MM_PORT_SERIAL_AT (ports[i]), (GRegex *) g_ptr_array_index (array, j), NULL, NULL, @@ -4124,7 +4124,7 @@ unsolicited_registration_events_sequence_ready (MMBroadbandModem *self, { GError *error = NULL; GVariant *command; - MMAtSerialPort *secondary; + MMPortSerialAt *secondary; /* Only one must be running */ g_assert ((ctx->running_cs ? 1 : 0) + @@ -4841,7 +4841,7 @@ cusd_process_string (MMBroadbandModem *self, } static void -cusd_received (MMAtSerialPort *port, +cusd_received (MMPortSerialAt *port, GMatchInfo *info, MMBroadbandModem *self) { @@ -4860,7 +4860,7 @@ set_unsolicited_result_code_handlers (MMIfaceModem3gppUssd *self, gpointer user_data) { GSimpleAsyncResult *result; - MMAtSerialPort *ports[2]; + MMPortSerialAt *ports[2]; GRegex *cusd_regex; guint i; @@ -4881,10 +4881,10 @@ set_unsolicited_result_code_handlers (MMIfaceModem3gppUssd *self, mm_dbg ("(%s) %s unsolicited result code handlers", mm_port_get_device (MM_PORT (ports[i])), enable ? "Setting" : "Removing"); - mm_at_serial_port_add_unsolicited_msg_handler ( + mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], cusd_regex, - enable ? (MMAtSerialUnsolicitedMsgFn) cusd_received : NULL, + enable ? (MMPortSerialAtUnsolicitedMsgFn) cusd_received : NULL, enable ? self : NULL, NULL); } @@ -5657,7 +5657,7 @@ indication_lock_storages_ready (MMBroadbandModem *self, } static void -cmti_received (MMAtSerialPort *port, +cmti_received (MMPortSerialAt *port, GMatchInfo *info, MMBroadbandModem *self) { @@ -5701,7 +5701,7 @@ cmti_received (MMAtSerialPort *port, } static void -cds_received (MMAtSerialPort *port, +cds_received (MMPortSerialAt *port, GMatchInfo *info, MMBroadbandModem *self) { @@ -5740,7 +5740,7 @@ set_messaging_unsolicited_events_handlers (MMIfaceModemMessaging *self, gpointer user_data) { GSimpleAsyncResult *result; - MMAtSerialPort *ports[2]; + MMPortSerialAt *ports[2]; GRegex *cmti_regex; GRegex *cds_regex; guint i; @@ -5764,16 +5764,16 @@ set_messaging_unsolicited_events_handlers (MMIfaceModemMessaging *self, mm_dbg ("(%s) %s messaging unsolicited events handlers", mm_port_get_device (MM_PORT (ports[i])), enable ? "Setting" : "Removing"); - mm_at_serial_port_add_unsolicited_msg_handler ( + mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], cmti_regex, - enable ? (MMAtSerialUnsolicitedMsgFn) cmti_received : NULL, + enable ? (MMPortSerialAtUnsolicitedMsgFn) cmti_received : NULL, enable ? self : NULL, NULL); - mm_at_serial_port_add_unsolicited_msg_handler ( + mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], cds_regex, - enable ? (MMAtSerialUnsolicitedMsgFn) cds_received : NULL, + enable ? (MMPortSerialAtUnsolicitedMsgFn) cds_received : NULL, enable ? self : NULL, NULL); } @@ -6860,7 +6860,7 @@ typedef struct { typedef struct { MMBroadbandModem *self; GSimpleAsyncResult *result; - MMAtSerialPort *port; + MMPortSerialAt *port; MMModemCdmaRegistrationState cdma1x_state; MMModemCdmaRegistrationState evdo_state; GError *error; @@ -7005,7 +7005,7 @@ modem_cdma_get_detailed_registration_state (MMIfaceModemCdma *self, GAsyncReadyCallback callback, gpointer user_data) { - MMAtSerialPort *port; + MMPortSerialAt *port; GError *error = NULL; DetailedRegistrationStateContext *ctx; @@ -7493,7 +7493,7 @@ static const gchar *secondary_init_sequence[] = { static void setup_ports (MMBroadbandModem *self) { - MMAtSerialPort *ports[2]; + MMPortSerialAt *ports[2]; GRegex *regex; GPtrArray *array; gint i, j; @@ -7503,12 +7503,12 @@ setup_ports (MMBroadbandModem *self) if (ports[0]) g_object_set (ports[0], - MM_AT_SERIAL_PORT_INIT_SEQUENCE, primary_init_sequence, + MM_PORT_SERIAL_AT_INIT_SEQUENCE, primary_init_sequence, NULL); if (ports[1]) g_object_set (ports[1], - MM_AT_SERIAL_PORT_INIT_SEQUENCE, secondary_init_sequence, + MM_PORT_SERIAL_AT_INIT_SEQUENCE, secondary_init_sequence, NULL); /* Cleanup all unsolicited message handlers in all AT ports */ @@ -7520,7 +7520,7 @@ setup_ports (MMBroadbandModem *self) continue; for (j = 0; j < array->len; j++) { - mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (ports[i]), + mm_port_serial_at_add_unsolicited_msg_handler (MM_PORT_SERIAL_AT (ports[i]), (GRegex *)g_ptr_array_index (array, j), NULL, NULL, @@ -7535,7 +7535,7 @@ setup_ports (MMBroadbandModem *self) if (!ports[i]) continue; - mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (ports[i]), + mm_port_serial_at_add_unsolicited_msg_handler (MM_PORT_SERIAL_AT (ports[i]), regex, NULL, NULL, @@ -7549,7 +7549,7 @@ setup_ports (MMBroadbandModem *self) if (!ports[i]) continue; - mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (ports[i]), + mm_port_serial_at_add_unsolicited_msg_handler (MM_PORT_SERIAL_AT (ports[i]), regex, NULL, NULL, @@ -7563,7 +7563,7 @@ setup_ports (MMBroadbandModem *self) if (!ports[i]) continue; - mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (ports[i]), + mm_port_serial_at_add_unsolicited_msg_handler (MM_PORT_SERIAL_AT (ports[i]), regex, NULL, NULL, @@ -7578,9 +7578,9 @@ setup_ports (MMBroadbandModem *self) struct _PortsContext { volatile gint ref_count; - MMAtSerialPort *primary; + MMPortSerialAt *primary; gboolean primary_open; - MMAtSerialPort *secondary; + MMPortSerialAt *secondary; gboolean secondary_open; MMPortSerialQcdm *qcdm; gboolean qcdm_open; @@ -7807,14 +7807,14 @@ enabling_after_modem_init_timeout (EnablingStartedContext *ctx) { /* Reset init sequence enabled flags and run them explicitly */ g_object_set (ctx->ports->primary, - MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, TRUE, + MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, TRUE, NULL); - mm_at_serial_port_run_init_sequence (ctx->ports->primary); + mm_port_serial_at_run_init_sequence (ctx->ports->primary); if (ctx->ports->secondary) { g_object_set (ctx->ports->secondary, - MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, TRUE, + MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, TRUE, NULL); - mm_at_serial_port_run_init_sequence (ctx->ports->secondary); + mm_port_serial_at_run_init_sequence (ctx->ports->secondary); } /* Store enabled ports context and complete */ @@ -7891,7 +7891,7 @@ open_ports_enabling (MMBroadbandModem *self, /* If we'll need to run modem initialization, disable port init sequence */ if (modem_init_required) g_object_set (ctx->primary, - MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, FALSE, + MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, FALSE, NULL); @@ -7908,7 +7908,7 @@ open_ports_enabling (MMBroadbandModem *self, /* If we'll need to run modem initialization, disable port init sequence */ if (modem_init_required) g_object_set (ctx->secondary, - MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, FALSE, + MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, FALSE, NULL); if (!mm_port_serial_open (MM_PORT_SERIAL (ctx->secondary), error)) { g_prefix_error (error, "Couldn't open secondary port: "); diff --git a/src/mm-iface-modem-3gpp-ussd.h b/src/mm-iface-modem-3gpp-ussd.h index 9e1dc433..662d555e 100644 --- a/src/mm-iface-modem-3gpp-ussd.h +++ b/src/mm-iface-modem-3gpp-ussd.h @@ -23,8 +23,6 @@ #define _LIBMM_INSIDE_MM #include <libmm-glib.h> -#include "mm-at-serial-port.h" - #define MM_TYPE_IFACE_MODEM_3GPP_USSD (mm_iface_modem_3gpp_ussd_get_type ()) #define MM_IFACE_MODEM_3GPP_USSD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM_3GPP_USSD, MMIfaceModem3gppUssd)) #define MM_IS_IFACE_MODEM_3GPP_USSD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_IFACE_MODEM_3GPP_USSD)) diff --git a/src/mm-iface-modem-3gpp.h b/src/mm-iface-modem-3gpp.h index 8497d200..6237b8aa 100644 --- a/src/mm-iface-modem-3gpp.h +++ b/src/mm-iface-modem-3gpp.h @@ -21,7 +21,7 @@ #define _LIBMM_INSIDE_MM #include <libmm-glib.h> -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #define MM_TYPE_IFACE_MODEM_3GPP (mm_iface_modem_3gpp_get_type ()) #define MM_IFACE_MODEM_3GPP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM_3GPP, MMIfaceModem3gpp)) diff --git a/src/mm-iface-modem-cdma.h b/src/mm-iface-modem-cdma.h index a7efe91a..9e817dde 100644 --- a/src/mm-iface-modem-cdma.h +++ b/src/mm-iface-modem-cdma.h @@ -22,7 +22,7 @@ #define _LIBMM_INSIDE_MM #include <libmm-glib.h> -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #define MM_TYPE_IFACE_MODEM_CDMA (mm_iface_modem_cdma_get_type ()) #define MM_IFACE_MODEM_CDMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM_CDMA, MMIfaceModemCdma)) diff --git a/src/mm-iface-modem-location.h b/src/mm-iface-modem-location.h index 22acfc94..fd118239 100644 --- a/src/mm-iface-modem-location.h +++ b/src/mm-iface-modem-location.h @@ -19,8 +19,6 @@ #include <glib-object.h> #include <gio/gio.h> -#include "mm-at-serial-port.h" - #define MM_TYPE_IFACE_MODEM_LOCATION (mm_iface_modem_location_get_type ()) #define MM_IFACE_MODEM_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_IFACE_MODEM_LOCATION, MMIfaceModemLocation)) #define MM_IS_IFACE_MODEM_LOCATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_IFACE_MODEM_LOCATION)) diff --git a/src/mm-iface-modem-messaging.h b/src/mm-iface-modem-messaging.h index 0cbe16c8..df060f5e 100644 --- a/src/mm-iface-modem-messaging.h +++ b/src/mm-iface-modem-messaging.h @@ -19,7 +19,6 @@ #include <glib-object.h> #include <gio/gio.h> -#include "mm-at-serial-port.h" #include "mm-sms-part.h" #include "mm-sms.h" diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h index d8819c13..9b6db73d 100644 --- a/src/mm-iface-modem.h +++ b/src/mm-iface-modem.h @@ -23,7 +23,7 @@ #include <libmm-glib.h> #include "mm-charsets.h" -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #include "mm-bearer.h" #include "mm-sim.h" diff --git a/src/mm-plugin.c b/src/mm-plugin.c index d276f550..6b33f9a7 100644 --- a/src/mm-plugin.c +++ b/src/mm-plugin.c @@ -30,7 +30,7 @@ #include "mm-plugin.h" #include "mm-device.h" -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #include "mm-port-serial-qcdm.h" #include "mm-serial-parsers.h" #include "mm-private-boxed-types.h" @@ -895,7 +895,7 @@ mm_plugin_create_modem (MMPlugin *self, mm_port_probe_get_port_subsys (probe), mm_port_probe_get_port_name (probe), mm_port_probe_get_port_type (probe), - MM_AT_PORT_FLAG_NONE, + MM_PORT_SERIAL_AT_FLAG_NONE, &inner_error); if (!grabbed) { mm_warn ("Could not grab port (%s/%s): '%s'", diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c index 86a16474..6a44d38a 100644 --- a/src/mm-port-probe.c +++ b/src/mm-port-probe.c @@ -26,7 +26,7 @@ #include "mm-port-probe.h" #include "mm-log.h" -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #include "mm-port-serial.h" #include "mm-serial-parsers.h" #include "mm-port-probe-at.h" @@ -329,7 +329,7 @@ port_probe_run_task_free (PortProbeRunTask *task) if (task->serial) { if (task->buffer_full_id) { - g_warn_if_fail (MM_IS_AT_SERIAL_PORT (task->serial)); + g_warn_if_fail (MM_IS_PORT_SERIAL_AT (task->serial)); g_signal_handler_disconnect (task->serial, task->buffer_full_id); } if (mm_port_serial_is_open (task->serial)) @@ -852,7 +852,7 @@ serial_probe_at_result_processor (MMPortProbe *self, } static void -serial_probe_at_parse_response (MMAtSerialPort *port, +serial_probe_at_parse_response (MMPortSerialAt *port, GString *response, GError *error, MMPortProbe *self) @@ -943,13 +943,13 @@ serial_probe_at (MMPortProbe *self) return FALSE; } - mm_at_serial_port_queue_command ( - MM_AT_SERIAL_PORT (task->serial), + mm_port_serial_at_queue_command ( + MM_PORT_SERIAL_AT (task->serial), task->at_commands->command, task->at_commands->timeout, FALSE, task->at_probing_cancellable, - (MMAtSerialResponseFn)serial_probe_at_parse_response, + (MMPortSerialAtResponseFn)serial_probe_at_parse_response, self); return FALSE; } @@ -1015,7 +1015,7 @@ serial_probe_schedule (MMPortProbe *self) task->at_custom_init && task->at_custom_init_finish) { task->at_custom_init (self, - MM_AT_SERIAL_PORT (task->serial), + MM_PORT_SERIAL_AT (task->serial), task->at_probing_cancellable, (GAsyncReadyCallback)at_custom_init_ready, NULL); @@ -1136,7 +1136,7 @@ serial_open_at (MMPortProbe *self) if (!task->serial) { gpointer parser; - task->serial = MM_PORT_SERIAL (mm_at_serial_port_new (g_udev_device_get_name (self->priv->port))); + task->serial = MM_PORT_SERIAL (mm_port_serial_at_new (g_udev_device_get_name (self->priv->port))); if (!task->serial) { port_probe_run_task_complete ( task, @@ -1152,15 +1152,15 @@ serial_open_at (MMPortProbe *self) g_object_set (task->serial, MM_PORT_SERIAL_SPEW_CONTROL, TRUE, MM_PORT_SERIAL_SEND_DELAY, task->at_send_delay, - MM_AT_SERIAL_PORT_REMOVE_ECHO, task->at_remove_echo, - MM_AT_SERIAL_PORT_SEND_LF, task->at_send_lf, + MM_PORT_SERIAL_AT_REMOVE_ECHO, task->at_remove_echo, + MM_PORT_SERIAL_AT_SEND_LF, task->at_send_lf, NULL); parser = mm_serial_parser_v1_new (); mm_serial_parser_v1_add_filter (parser, serial_parser_filter_cb, NULL); - mm_at_serial_port_set_response_parser (MM_AT_SERIAL_PORT (task->serial), + mm_port_serial_at_set_response_parser (MM_PORT_SERIAL_AT (task->serial), mm_serial_parser_v1_parse, parser, mm_serial_parser_v1_destroy); diff --git a/src/mm-port-probe.h b/src/mm-port-probe.h index 74bf84de..454ea298 100644 --- a/src/mm-port-probe.h +++ b/src/mm-port-probe.h @@ -25,7 +25,7 @@ #include "mm-private-boxed-types.h" #include "mm-port-probe-at.h" -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #include "mm-device.h" #define MM_TYPE_PORT_PROBE (mm_port_probe_get_type ()) @@ -68,7 +68,7 @@ struct _MMPortProbeClass { * It also helps to implement plugin-specific checks, as plugins can set * their own probing results on the 'probe' object. */ typedef void (* MMPortProbeAtCustomInit) (MMPortProbe *probe, - MMAtSerialPort *port, + MMPortSerialAt *port, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); diff --git a/src/mm-at-serial-port.c b/src/mm-port-serial-at.c index 6c4fac3b..a8f95133 100644 --- a/src/mm-at-serial-port.c +++ b/src/mm-port-serial-at.c @@ -21,12 +21,12 @@ #include <unistd.h> #include <string.h> -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #include "mm-log.h" -G_DEFINE_TYPE (MMAtSerialPort, mm_at_serial_port, MM_TYPE_PORT_SERIAL) +G_DEFINE_TYPE (MMPortSerialAt, mm_port_serial_at, MM_TYPE_PORT_SERIAL) -#define MM_AT_SERIAL_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MM_TYPE_AT_SERIAL_PORT, MMAtSerialPortPrivate)) +#define MM_PORT_SERIAL_AT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MM_TYPE_PORT_SERIAL_AT, MMPortSerialAtPrivate)) enum { PROP_0, @@ -39,25 +39,25 @@ enum { typedef struct { /* Response parser data */ - MMAtSerialResponseParserFn response_parser_fn; + MMPortSerialAtResponseParserFn response_parser_fn; gpointer response_parser_user_data; GDestroyNotify response_parser_notify; GSList *unsolicited_msg_handlers; - MMAtPortFlag flags; + MMPortSerialAtFlag flags; /* Properties */ gboolean remove_echo; guint init_sequence_enabled; gchar **init_sequence; gboolean send_lf; -} MMAtSerialPortPrivate; +} MMPortSerialAtPrivate; /*****************************************************************************/ gchar * -mm_at_serial_port_quote_string (const char *string) +mm_port_serial_at_quote_string (const char *string) { int len, i; gchar *quoted, *pos; @@ -83,14 +83,14 @@ mm_at_serial_port_quote_string (const char *string) } void -mm_at_serial_port_set_response_parser (MMAtSerialPort *self, - MMAtSerialResponseParserFn fn, +mm_port_serial_at_set_response_parser (MMPortSerialAt *self, + MMPortSerialAtResponseParserFn fn, gpointer user_data, GDestroyNotify notify) { - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); - g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); + g_return_if_fail (MM_IS_PORT_SERIAL_AT (self)); if (priv->response_parser_notify) priv->response_parser_notify (priv->response_parser_user_data); @@ -101,7 +101,7 @@ mm_at_serial_port_set_response_parser (MMAtSerialPort *self, } void -mm_at_serial_port_remove_echo (GByteArray *response) +mm_port_serial_at_remove_echo (GByteArray *response) { guint i; @@ -123,8 +123,8 @@ mm_at_serial_port_remove_echo (GByteArray *response) static gboolean parse_response (MMPortSerial *port, GByteArray *response, GError **error) { - MMAtSerialPort *self = MM_AT_SERIAL_PORT (port); - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAt *self = MM_PORT_SERIAL_AT (port); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); gboolean found; GString *string; @@ -132,7 +132,7 @@ parse_response (MMPortSerial *port, GByteArray *response, GError **error) /* Remove echo */ if (priv->remove_echo) - mm_at_serial_port_remove_echo (response); + mm_port_serial_at_remove_echo (response); /* Construct the string that AT-parsing functions expect */ string = g_string_sized_new (response->len + 1); @@ -158,8 +158,8 @@ handle_response (MMPortSerial *port, GCallback callback, gpointer callback_data) { - MMAtSerialPort *self = MM_AT_SERIAL_PORT (port); - MMAtSerialResponseFn response_callback = (MMAtSerialResponseFn) callback; + MMPortSerialAt *self = MM_PORT_SERIAL_AT (port); + MMPortSerialAtResponseFn response_callback = (MMPortSerialAtResponseFn) callback; GString *string; /* Convert to a string and call the callback */ @@ -175,7 +175,7 @@ handle_response (MMPortSerial *port, typedef struct { GRegex *regex; - MMAtSerialUnsolicitedMsgFn callback; + MMPortSerialAtUnsolicitedMsgFn callback; gboolean enable; gpointer user_data; GDestroyNotify notify; @@ -190,20 +190,20 @@ unsolicited_msg_handler_cmp (MMAtUnsolicitedMsgHandler *handler, } void -mm_at_serial_port_add_unsolicited_msg_handler (MMAtSerialPort *self, +mm_port_serial_at_add_unsolicited_msg_handler (MMPortSerialAt *self, GRegex *regex, - MMAtSerialUnsolicitedMsgFn callback, + MMPortSerialAtUnsolicitedMsgFn callback, gpointer user_data, GDestroyNotify notify) { GSList *existing; MMAtUnsolicitedMsgHandler *handler; - MMAtSerialPortPrivate *priv; + MMPortSerialAtPrivate *priv; - g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); + g_return_if_fail (MM_IS_PORT_SERIAL_AT (self)); g_return_if_fail (regex != NULL); - priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); existing = g_slist_find_custom (priv->unsolicited_msg_handlers, regex, @@ -226,18 +226,18 @@ mm_at_serial_port_add_unsolicited_msg_handler (MMAtSerialPort *self, } void -mm_at_serial_port_enable_unsolicited_msg_handler (MMAtSerialPort *self, +mm_port_serial_at_enable_unsolicited_msg_handler (MMPortSerialAt *self, GRegex *regex, gboolean enable) { GSList *existing; MMAtUnsolicitedMsgHandler *handler; - MMAtSerialPortPrivate *priv; + MMPortSerialAtPrivate *priv; - g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); + g_return_if_fail (MM_IS_PORT_SERIAL_AT (self)); g_return_if_fail (regex != NULL); - priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); existing = g_slist_find_custom (priv->unsolicited_msg_handlers, regex, @@ -266,13 +266,13 @@ remove_eval_cb (const GMatchInfo *match_info, static void parse_unsolicited (MMPortSerial *port, GByteArray *response) { - MMAtSerialPort *self = MM_AT_SERIAL_PORT (port); - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAt *self = MM_PORT_SERIAL_AT (port); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); GSList *iter; /* Remove echo */ if (priv->remove_echo) - mm_at_serial_port_remove_echo (response); + mm_port_serial_at_remove_echo (response); for (iter = priv->unsolicited_msg_handlers; iter; iter = iter->next) { MMAtUnsolicitedMsgHandler *handler = (MMAtUnsolicitedMsgHandler *) iter->data; @@ -351,19 +351,19 @@ at_command_to_byte_array (const char *command, gboolean is_raw, gboolean send_lf } void -mm_at_serial_port_queue_command (MMAtSerialPort *self, +mm_port_serial_at_queue_command (MMPortSerialAt *self, const char *command, guint32 timeout_seconds, gboolean is_raw, GCancellable *cancellable, - MMAtSerialResponseFn callback, + MMPortSerialAtResponseFn callback, gpointer user_data) { GByteArray *buf; - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); g_return_if_fail (self != NULL); - g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); + g_return_if_fail (MM_IS_PORT_SERIAL_AT (self)); g_return_if_fail (command != NULL); buf = at_command_to_byte_array (command, is_raw, priv->send_lf); @@ -379,19 +379,19 @@ mm_at_serial_port_queue_command (MMAtSerialPort *self, } void -mm_at_serial_port_queue_command_cached (MMAtSerialPort *self, +mm_port_serial_at_queue_command_cached (MMPortSerialAt *self, const char *command, guint32 timeout_seconds, gboolean is_raw, GCancellable *cancellable, - MMAtSerialResponseFn callback, + MMPortSerialAtResponseFn callback, gpointer user_data) { GByteArray *buf; - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); g_return_if_fail (self != NULL); - g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); + g_return_if_fail (MM_IS_PORT_SERIAL_AT (self)); g_return_if_fail (command != NULL); buf = at_command_to_byte_array (command, is_raw, priv->send_lf); @@ -438,33 +438,33 @@ debug_log (MMPortSerial *port, const char *prefix, const char *buf, gsize len) } void -mm_at_serial_port_set_flags (MMAtSerialPort *self, MMAtPortFlag flags) +mm_port_serial_at_set_flags (MMPortSerialAt *self, MMPortSerialAtFlag flags) { g_return_if_fail (self != NULL); - g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); - g_return_if_fail (flags <= (MM_AT_PORT_FLAG_PRIMARY | - MM_AT_PORT_FLAG_SECONDARY | - MM_AT_PORT_FLAG_PPP | - MM_AT_PORT_FLAG_GPS_CONTROL)); + g_return_if_fail (MM_IS_PORT_SERIAL_AT (self)); + g_return_if_fail (flags <= (MM_PORT_SERIAL_AT_FLAG_PRIMARY | + MM_PORT_SERIAL_AT_FLAG_SECONDARY | + MM_PORT_SERIAL_AT_FLAG_PPP | + MM_PORT_SERIAL_AT_FLAG_GPS_CONTROL)); - MM_AT_SERIAL_PORT_GET_PRIVATE (self)->flags = flags; + MM_PORT_SERIAL_AT_GET_PRIVATE (self)->flags = flags; } -MMAtPortFlag -mm_at_serial_port_get_flags (MMAtSerialPort *self) +MMPortSerialAtFlag +mm_port_serial_at_get_flags (MMPortSerialAt *self) { - g_return_val_if_fail (self != NULL, MM_AT_PORT_FLAG_NONE); - g_return_val_if_fail (MM_IS_AT_SERIAL_PORT (self), MM_AT_PORT_FLAG_NONE); + g_return_val_if_fail (self != NULL, MM_PORT_SERIAL_AT_FLAG_NONE); + g_return_val_if_fail (MM_IS_PORT_SERIAL_AT (self), MM_PORT_SERIAL_AT_FLAG_NONE); - return MM_AT_SERIAL_PORT_GET_PRIVATE (self)->flags; + return MM_PORT_SERIAL_AT_GET_PRIVATE (self)->flags; } /*****************************************************************************/ void -mm_at_serial_port_run_init_sequence (MMAtSerialPort *self) +mm_port_serial_at_run_init_sequence (MMPortSerialAt *self) { - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); guint i; if (!priv->init_sequence) @@ -474,7 +474,7 @@ mm_at_serial_port_run_init_sequence (MMAtSerialPort *self) /* Just queue the init commands, don't wait for reply */ for (i = 0; priv->init_sequence[i]; i++) { - mm_at_serial_port_queue_command (self, + mm_port_serial_at_queue_command (self, priv->init_sequence[i], 3, FALSE, @@ -487,18 +487,18 @@ mm_at_serial_port_run_init_sequence (MMAtSerialPort *self) static void config (MMPortSerial *self) { - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); if (priv->init_sequence_enabled) - mm_at_serial_port_run_init_sequence (MM_AT_SERIAL_PORT (self)); + mm_port_serial_at_run_init_sequence (MM_PORT_SERIAL_AT (self)); } /*****************************************************************************/ -MMAtSerialPort * -mm_at_serial_port_new (const char *name) +MMPortSerialAt * +mm_port_serial_at_new (const char *name) { - return MM_AT_SERIAL_PORT (g_object_new (MM_TYPE_AT_SERIAL_PORT, + return MM_PORT_SERIAL_AT (g_object_new (MM_TYPE_PORT_SERIAL_AT, MM_PORT_DEVICE, name, MM_PORT_SUBSYS, MM_PORT_SUBSYS_TTY, MM_PORT_TYPE, MM_PORT_TYPE_AT, @@ -506,9 +506,9 @@ mm_at_serial_port_new (const char *name) } static void -mm_at_serial_port_init (MMAtSerialPort *self) +mm_port_serial_at_init (MMPortSerialAt *self) { - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); /* By default, remove echo */ priv->remove_echo = TRUE; @@ -523,7 +523,7 @@ static void set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (object); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (object); switch (prop_id) { case PROP_REMOVE_ECHO: @@ -549,7 +549,7 @@ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (object); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (object); switch (prop_id) { case PROP_REMOVE_ECHO: @@ -573,8 +573,8 @@ get_property (GObject *object, guint prop_id, static void finalize (GObject *object) { - MMAtSerialPort *self = MM_AT_SERIAL_PORT (object); - MMAtSerialPortPrivate *priv = MM_AT_SERIAL_PORT_GET_PRIVATE (self); + MMPortSerialAt *self = MM_PORT_SERIAL_AT (object); + MMPortSerialAtPrivate *priv = MM_PORT_SERIAL_AT_GET_PRIVATE (self); while (priv->unsolicited_msg_handlers) { MMAtUnsolicitedMsgHandler *handler = (MMAtUnsolicitedMsgHandler *) priv->unsolicited_msg_handlers->data; @@ -593,16 +593,16 @@ finalize (GObject *object) g_strfreev (priv->init_sequence); - G_OBJECT_CLASS (mm_at_serial_port_parent_class)->finalize (object); + G_OBJECT_CLASS (mm_port_serial_at_parent_class)->finalize (object); } static void -mm_at_serial_port_class_init (MMAtSerialPortClass *klass) +mm_port_serial_at_class_init (MMPortSerialAtClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); MMPortSerialClass *serial_class = MM_PORT_SERIAL_CLASS (klass); - g_type_class_add_private (object_class, sizeof (MMAtSerialPortPrivate)); + g_type_class_add_private (object_class, sizeof (MMPortSerialAtPrivate)); /* Virtual methods */ object_class->set_property = set_property; @@ -617,7 +617,7 @@ mm_at_serial_port_class_init (MMAtSerialPortClass *klass) g_object_class_install_property (object_class, PROP_REMOVE_ECHO, - g_param_spec_boolean (MM_AT_SERIAL_PORT_REMOVE_ECHO, + g_param_spec_boolean (MM_PORT_SERIAL_AT_REMOVE_ECHO, "Remove echo", "Built-in echo removal should be applied", TRUE, @@ -625,7 +625,7 @@ mm_at_serial_port_class_init (MMAtSerialPortClass *klass) g_object_class_install_property (object_class, PROP_INIT_SEQUENCE_ENABLED, - g_param_spec_boolean (MM_AT_SERIAL_PORT_INIT_SEQUENCE_ENABLED, + g_param_spec_boolean (MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED, "Init sequence enabled", "Whether the initialization sequence should be run", TRUE, @@ -633,7 +633,7 @@ mm_at_serial_port_class_init (MMAtSerialPortClass *klass) g_object_class_install_property (object_class, PROP_INIT_SEQUENCE, - g_param_spec_boxed (MM_AT_SERIAL_PORT_INIT_SEQUENCE, + g_param_spec_boxed (MM_PORT_SERIAL_AT_INIT_SEQUENCE, "Init sequence", "Initialization sequence", G_TYPE_STRV, @@ -641,7 +641,7 @@ mm_at_serial_port_class_init (MMAtSerialPortClass *klass) g_object_class_install_property (object_class, PROP_SEND_LF, - g_param_spec_boolean (MM_AT_SERIAL_PORT_SEND_LF, + g_param_spec_boolean (MM_PORT_SERIAL_AT_SEND_LF, "Send LF", "Send line-feed at the end of each AT command sent", FALSE, diff --git a/src/mm-port-serial-at.h b/src/mm-port-serial-at.h new file mode 100644 index 00000000..58cf51c1 --- /dev/null +++ b/src/mm-port-serial-at.h @@ -0,0 +1,133 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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: + * + * Copyright (C) 2008 - 2009 Novell, Inc. + * Copyright (C) 2009 - 2010 Red Hat, Inc. + */ + +#ifndef MM_PORT_SERIAL_AT_H +#define MM_PORT_SERIAL_AT_H + +#include <glib.h> +#include <glib-object.h> + +#include "mm-port-serial.h" + +#define MM_TYPE_PORT_SERIAL_AT (mm_port_serial_at_get_type ()) +#define MM_PORT_SERIAL_AT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_PORT_SERIAL_AT, MMPortSerialAt)) +#define MM_PORT_SERIAL_AT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_PORT_SERIAL_AT, MMPortSerialAtClass)) +#define MM_IS_PORT_SERIAL_AT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_PORT_SERIAL_AT)) +#define MM_IS_PORT_SERIAL_AT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_PORT_SERIAL_AT)) +#define MM_PORT_SERIAL_AT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_PORT_SERIAL_AT, MMPortSerialAtClass)) + +typedef struct _MMPortSerialAt MMPortSerialAt; +typedef struct _MMPortSerialAtClass MMPortSerialAtClass; + +/* AT port flags; for example consider a device with two AT ports (ACM0 and ACM1) + * which could have the following layouts: + * + * ACM0(PRIMARY | PPP), ACM1(SECONDARY): port 0 is used for command and status + * and for PPP data; while connected port 1 is used for command and status + * ACM0(PPP), ACM1(PRIMARY): port 1 is always used for command and status, and + * only when connecting is port 0 opened for dialing (ATD) and PPP + */ +typedef enum { /*< underscore_name=mm_port_serial_at_flag >*/ + MM_PORT_SERIAL_AT_FLAG_NONE = 0, + /* This port is preferred for command and status */ + MM_PORT_SERIAL_AT_FLAG_PRIMARY = 1 << 0, + /* Use port for command and status if the primary port is connected */ + MM_PORT_SERIAL_AT_FLAG_SECONDARY = 1 << 1, + /* This port should be used for PPP */ + MM_PORT_SERIAL_AT_FLAG_PPP = 1 << 2, + /* This port should be used for GPS control */ + MM_PORT_SERIAL_AT_FLAG_GPS_CONTROL = 1 << 3, +} MMPortSerialAtFlag; + +typedef gboolean (*MMPortSerialAtResponseParserFn) (gpointer user_data, + GString *response, + GError **error); + +typedef void (*MMPortSerialAtUnsolicitedMsgFn) (MMPortSerialAt *port, + GMatchInfo *match_info, + gpointer user_data); + +typedef void (*MMPortSerialAtResponseFn) (MMPortSerialAt *port, + GString *response, + GError *error, + gpointer user_data); + +#define MM_PORT_SERIAL_AT_REMOVE_ECHO "remove-echo" +#define MM_PORT_SERIAL_AT_INIT_SEQUENCE_ENABLED "init-sequence-enabled" +#define MM_PORT_SERIAL_AT_INIT_SEQUENCE "init-sequence" +#define MM_PORT_SERIAL_AT_SEND_LF "send-lf" + +struct _MMPortSerialAt { + MMPortSerial parent; +}; + +struct _MMPortSerialAtClass { + MMPortSerialClass parent; +}; + +GType mm_port_serial_at_get_type (void); + +MMPortSerialAt *mm_port_serial_at_new (const char *name); + +void mm_port_serial_at_add_unsolicited_msg_handler (MMPortSerialAt *self, + GRegex *regex, + MMPortSerialAtUnsolicitedMsgFn callback, + gpointer user_data, + GDestroyNotify notify); + +void mm_port_serial_at_enable_unsolicited_msg_handler (MMPortSerialAt *self, + GRegex *regex, + gboolean enable); + +void mm_port_serial_at_set_response_parser (MMPortSerialAt *self, + MMPortSerialAtResponseParserFn fn, + gpointer user_data, + GDestroyNotify notify); + +void mm_port_serial_at_queue_command (MMPortSerialAt *self, + const char *command, + guint32 timeout_seconds, + gboolean is_raw, + GCancellable *cancellable, + MMPortSerialAtResponseFn callback, + gpointer user_data); + +void mm_port_serial_at_queue_command_cached (MMPortSerialAt *self, + const char *command, + guint32 timeout_seconds, + gboolean is_raw, + GCancellable *cancellable, + MMPortSerialAtResponseFn callback, + gpointer user_data); + +/* + * Convert a string into a quoted and escaped string. Returns a new + * allocated string. Follows ITU V.250 5.4.2.2 "String constants". + */ +gchar *mm_port_serial_at_quote_string (const char *string); + +/* Just for unit tests */ +void mm_port_serial_at_remove_echo (GByteArray *response); + +void mm_port_serial_at_set_flags (MMPortSerialAt *self, + MMPortSerialAtFlag flags); + +MMPortSerialAtFlag mm_port_serial_at_get_flags (MMPortSerialAt *self); + +/* Tell the port to run its init sequence, if any, right away */ +void mm_port_serial_at_run_init_sequence (MMPortSerialAt *self); + +#endif /* MM_PORT_SERIAL_AT_H */ diff --git a/src/tests/test-at-serial-port.c b/src/tests/test-at-serial-port.c index 0b5f5060..c0be5fa1 100644 --- a/src/tests/test-at-serial-port.c +++ b/src/tests/test-at-serial-port.c @@ -17,7 +17,7 @@ #include <string.h> #include <glib.h> -#include "mm-at-serial-port.h" +#include "mm-port-serial-at.h" #include "mm-log.h" typedef struct { @@ -56,7 +56,7 @@ at_serial_echo_removal (void) (guint8 *)echo_removal_tests[i].original, strlen (echo_removal_tests[i].original) + 1); - mm_at_serial_port_remove_echo (ba); + mm_port_serial_at_remove_echo (ba); g_assert_cmpstr ((gchar *)ba->data, ==, echo_removal_tests[i].without_echo); |