summaryrefslogtreecommitdiff
path: root/plugins/mm-modem-zte.c
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2011-07-21 15:15:44 -0500
committerDan Williams <dcbw@redhat.com>2011-07-21 15:16:44 -0500
commita57618b091faec24d22bfce5f384248c52cd2511 (patch)
tree9f31173f75a855c365b488b22bd761da1995d8aa /plugins/mm-modem-zte.c
parent70715c1c124b3220969a432be5ad2ad6f44913fe (diff)
zte: skip hex encoding (bgo #652682)
Diffstat (limited to 'plugins/mm-modem-zte.c')
-rw-r--r--plugins/mm-modem-zte.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/plugins/mm-modem-zte.c b/plugins/mm-modem-zte.c
index 0f693284..6c9f3954 100644
--- a/plugins/mm-modem-zte.c
+++ b/plugins/mm-modem-zte.c
@@ -26,15 +26,19 @@
#include "mm-modem-helpers.h"
#include "mm-modem-simple.h"
#include "mm-modem-icera.h"
+#include "mm-modem-gsm-ussd.h"
static void modem_init (MMModem *modem_class);
static void modem_icera_init (MMModemIcera *icera_class);
static void modem_simple_init (MMModemSimple *simple_class);
+static void modem_gsm_ussd_init (MMModemGsmUssd *ussd_class);
G_DEFINE_TYPE_EXTENDED (MMModemZte, mm_modem_zte, MM_TYPE_GENERIC_GSM, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM, modem_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_ICERA, modem_icera_init)
- G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_SIMPLE, modem_simple_init))
+ G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_SIMPLE, modem_simple_init)
+ G_IMPLEMENT_INTERFACE (MM_TYPE_MODEM_GSM_USSD, modem_gsm_ussd_init)
+)
#define MM_MODEM_ZTE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MM_TYPE_MODEM_ZTE, MMModemZtePrivate))
@@ -683,6 +687,19 @@ get_icera_private (MMModemIcera *icera)
/*****************************************************************************/
+static char*
+ussd_encode (MMModemGsmUssd *self, const char* command, guint *scheme)
+{
+ char *cmd;
+
+ *scheme = MM_MODEM_GSM_USSD_SCHEME_7BIT;
+ cmd = g_strdup (command);
+
+ return cmd;
+}
+
+/*****************************************************************************/
+
static void
modem_init (MMModem *modem_class)
{
@@ -710,6 +727,12 @@ mm_modem_zte_init (MMModemZte *self)
}
static void
+modem_gsm_ussd_init (MMModemGsmUssd *ussd_class)
+{
+ ussd_class->encode = ussd_encode;
+}
+
+static void
dispose (GObject *object)
{
MMModemZte *self = MM_MODEM_ZTE (object);