diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-generic-gsm.c | 16 | ||||
-rw-r--r-- | src/mm-generic-gsm.h | 2 | ||||
-rw-r--r-- | src/mm-modem-gsm-card.c | 29 | ||||
-rw-r--r-- | src/mm-modem-gsm-card.h | 3 | ||||
-rw-r--r-- | src/mm-modem-gsm-sms.c | 15 | ||||
-rw-r--r-- | src/mm-modem-gsm-sms.h | 6 |
6 files changed, 66 insertions, 5 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c index d32b0174..de15cbcb 100644 --- a/src/mm-generic-gsm.c +++ b/src/mm-generic-gsm.c @@ -1786,6 +1786,8 @@ set_property (GObject *object, guint prop_id, case MM_GENERIC_GSM_PROP_POWER_UP_CMD: case MM_GENERIC_GSM_PROP_POWER_DOWN_CMD: case MM_GENERIC_GSM_PROP_INIT_CMD: + case MM_GENERIC_GSM_PROP_SUPPORTED_BANDS: + case MM_GENERIC_GSM_PROP_SUPPORTED_MODES: break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -1833,6 +1835,12 @@ get_property (GObject *object, guint prop_id, case MM_GENERIC_GSM_PROP_INIT_CMD: g_value_set_string (value, "Z E0 V1 X4 &C1 +CMEE=1"); break; + case MM_GENERIC_GSM_PROP_SUPPORTED_BANDS: + g_value_set_uint (value, 0); + break; + case MM_GENERIC_GSM_PROP_SUPPORTED_MODES: + g_value_set_uint (value, 0); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1895,6 +1903,14 @@ mm_generic_gsm_class_init (MMGenericGsmClass *klass) MM_MODEM_PROP_VALID, MM_MODEM_VALID); + g_object_class_override_property (object_class, + MM_GENERIC_GSM_PROP_SUPPORTED_BANDS, + MM_MODEM_GSM_CARD_SUPPORTED_BANDS); + + g_object_class_override_property (object_class, + MM_GENERIC_GSM_PROP_SUPPORTED_MODES, + MM_MODEM_GSM_CARD_SUPPORTED_MODES); + g_object_class_install_property (object_class, MM_GENERIC_GSM_PROP_POWER_UP_CMD, g_param_spec_string (MM_GENERIC_GSM_POWER_UP_CMD, diff --git a/src/mm-generic-gsm.h b/src/mm-generic-gsm.h index cb250064..ac2ce365 100644 --- a/src/mm-generic-gsm.h +++ b/src/mm-generic-gsm.h @@ -39,6 +39,8 @@ typedef enum { MM_GENERIC_GSM_PROP_POWER_UP_CMD, MM_GENERIC_GSM_PROP_POWER_DOWN_CMD, MM_GENERIC_GSM_PROP_INIT_CMD, + MM_GENERIC_GSM_PROP_SUPPORTED_BANDS, + MM_GENERIC_GSM_PROP_SUPPORTED_MODES, MM_GENERIC_GSM_LAST_PROP = MM_GENERIC_GSM_PROP_INIT_CMD } MMGenericGsmProp; diff --git a/src/mm-modem-gsm-card.c b/src/mm-modem-gsm-card.c index 80f381ac..dea4590e 100644 --- a/src/mm-modem-gsm-card.c +++ b/src/mm-modem-gsm-card.c @@ -19,6 +19,7 @@ #include "mm-modem-gsm-card.h" #include "mm-errors.h" #include "mm-callback-info.h" +#include "mm-modem-gsm.h" static void impl_gsm_modem_get_imei (MMModemGsmCard *modem, DBusGMethodInvocation *context); @@ -253,6 +254,32 @@ impl_gsm_modem_change_pin (MMModemGsmCard *modem, static void mm_modem_gsm_card_init (gpointer g_iface) { + static gboolean initialized = FALSE; + + if (G_LIKELY (initialized)) + return; + + initialized = TRUE; + + g_object_interface_install_property + (g_iface, + g_param_spec_uint (MM_MODEM_GSM_CARD_SUPPORTED_BANDS, + "Supported Modes", + "Supported frequency bands of the card", + MM_MODEM_GSM_BAND_UNKNOWN, + MM_MODEM_GSM_BAND_LAST, + MM_MODEM_GSM_BAND_UNKNOWN, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + g_object_interface_install_property + (g_iface, + g_param_spec_uint (MM_MODEM_GSM_CARD_SUPPORTED_MODES, + "Supported Modes", + "Supported modes of the card (ex 2G preferred, 3G preferred, 2G only, etc", + MM_MODEM_GSM_MODE_UNKNOWN, + MM_MODEM_GSM_MODE_LAST, + MM_MODEM_GSM_MODE_UNKNOWN, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } GType @@ -260,7 +287,7 @@ mm_modem_gsm_card_get_type (void) { static GType card_type = 0; - if (!G_UNLIKELY (card_type)) { + if (G_UNLIKELY (!card_type)) { const GTypeInfo card_info = { sizeof (MMModemGsmCard), /* class_size */ mm_modem_gsm_card_init, /* base_init */ diff --git a/src/mm-modem-gsm-card.h b/src/mm-modem-gsm-card.h index 8c4b21e8..4d690e65 100644 --- a/src/mm-modem-gsm-card.h +++ b/src/mm-modem-gsm-card.h @@ -24,6 +24,9 @@ #define MM_IS_MODEM_GSM_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_MODEM_GSM_CARD)) #define MM_MODEM_GSM_CARD_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MM_TYPE_MODEM_GSM_CARD, MMModemGsmCard)) +#define MM_MODEM_GSM_CARD_SUPPORTED_BANDS "supported-bands" +#define MM_MODEM_GSM_CARD_SUPPORTED_MODES "supported-modes" + typedef struct _MMModemGsmCard MMModemGsmCard; struct _MMModemGsmCard { diff --git a/src/mm-modem-gsm-sms.c b/src/mm-modem-gsm-sms.c index 23685b35..e8ec0742 100644 --- a/src/mm-modem-gsm-sms.c +++ b/src/mm-modem-gsm-sms.c @@ -70,6 +70,7 @@ static void impl_gsm_modem_sms_set_indication (MMModemGsmSms *modem, enum { SMS_RECEIVED, + COMPLETED, LAST_SIGNAL }; @@ -274,9 +275,17 @@ mm_modem_gsm_sms_init (gpointer g_iface) G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (MMModemGsmSms, sms_received), NULL, NULL, - g_cclosure_marshal_VOID__UINT, - G_TYPE_NONE, 1, - G_TYPE_UINT); + mm_marshal_VOID__UINT_BOOLEAN, + G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_BOOLEAN); + + signals[COMPLETED] = + g_signal_new ("completed", + iface_type, + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (MMModemGsmSms, completed), + NULL, NULL, + mm_marshal_VOID__UINT_BOOLEAN, + G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_BOOLEAN); initialized = TRUE; } diff --git a/src/mm-modem-gsm-sms.h b/src/mm-modem-gsm-sms.h index e01e993b..79a5bb03 100644 --- a/src/mm-modem-gsm-sms.h +++ b/src/mm-modem-gsm-sms.h @@ -40,8 +40,12 @@ struct _MMModemGsmSms { /* Signals */ void (*sms_received) (MMModemGsmSms *self, - guint32 index); + guint32 index, + gboolean completed); + void (*completed) (MMModemGsmSms *self, + guint32 index, + gboolean completed); }; GType mm_modem_gsm_sms_get_type (void); |