diff options
author | Dan Williams <dcbw@redhat.com> | 2010-03-21 17:50:45 -0700 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-03-21 17:50:45 -0700 |
commit | 3b32e2a679f37b3913a12097581b065013d91f47 (patch) | |
tree | dc823b912463da51986d103fab47b4c9b930f7a7 /src/mm-generic-cdma.c | |
parent | 6598d2ef7f501feb799652db0ebaf25e4cba1a45 (diff) |
cdma: check for +SPSERVICE and $SPERI
Which are Sprint-specific commands which appear to be implemented by
various phones for getting access technology and roaming status.
Diffstat (limited to 'src/mm-generic-cdma.c')
-rw-r--r-- | src/mm-generic-cdma.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/mm-generic-cdma.c b/src/mm-generic-cdma.c index 6fce3716..728d8766 100644 --- a/src/mm-generic-cdma.c +++ b/src/mm-generic-cdma.c @@ -61,6 +61,8 @@ typedef struct { gboolean evdo_rev0; gboolean evdo_revA; gboolean reg_try_css; + gboolean has_spservice; + gboolean has_speri; MMModemCdmaRegistrationState cdma_1x_reg_state; MMModemCdmaRegistrationState evdo_reg_state; @@ -384,6 +386,26 @@ get_enable_info_done (MMModem *modem, } static void +spservice_done (MMAtSerialPort *port, + GString *response, + GError *error, + gpointer user_data) +{ + if (!error) + MM_GENERIC_CDMA_GET_PRIVATE (user_data)->has_spservice = TRUE; +} + +static void +speri_done (MMAtSerialPort *port, + GString *response, + GError *error, + gpointer user_data) +{ + if (!error) + MM_GENERIC_CDMA_GET_PRIVATE (user_data)->has_speri = TRUE; +} + +static void enable_all_done (MMModem *modem, GError *error, gpointer user_data) { MMCallbackInfo *info = user_data; @@ -408,6 +430,10 @@ enable_all_done (MMModem *modem, GError *error, gpointer user_data) /* Grab device info right away */ mm_modem_get_info (modem, get_enable_info_done, NULL); + + /* Check for support of Sprint-specific phone commands */ + mm_at_serial_port_queue_command (priv->primary, "+SPSERVICE?", 3, spservice_done, self); + mm_at_serial_port_queue_command (priv->primary, "$SPERI?", 3, speri_done, self); } out: |