aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-03-06 13:10:10 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-16 14:53:21 +0100
commitc824ee310603971ed4ccbfb9531b83dcfcc75bd6 (patch)
tree82b9c04be25ff21c77c91ffd1b81bde551d338b9
parent51c28d0f79cfebae60982b824abbfbdf2d730f68 (diff)
broadband-modem: implement own numbers generic loading
-rw-r--r--src/mm-broadband-modem.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 35d1f21f..c4dc676a 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -759,6 +759,38 @@ modem_load_device_identifier (MMIfaceModem *self,
}
/*****************************************************************************/
+/* Load own numbers (Modem interface) */
+
+static GStrv
+modem_load_own_numbers_finish (MMIfaceModem *self,
+ GAsyncResult *res,
+ GError **error)
+{
+ const gchar *result;
+
+ result = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, error);
+ if (!result)
+ return NULL;
+
+ return mm_3gpp_parse_cnum_response (result, error);
+}
+
+static void
+modem_load_own_numbers (MMIfaceModem *self,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ mm_dbg ("loading own numbers...");
+ mm_base_modem_at_command (MM_BASE_MODEM (self),
+ "+CNUM",
+ 3,
+ FALSE,
+ NULL, /* cancellable */
+ callback,
+ user_data);
+}
+
+/*****************************************************************************/
/* Check if unlock required (Modem interface) */
typedef struct {
@@ -6934,6 +6966,8 @@ iface_modem_init (MMIfaceModem *iface)
iface->load_equipment_identifier_finish = modem_load_equipment_identifier_finish;
iface->load_device_identifier = modem_load_device_identifier;
iface->load_device_identifier_finish = modem_load_device_identifier_finish;
+ iface->load_own_numbers = modem_load_own_numbers;
+ iface->load_own_numbers_finish = modem_load_own_numbers_finish;
iface->load_unlock_required = modem_load_unlock_required;
iface->load_unlock_required_finish = modem_load_unlock_required_finish;
iface->create_sim = modem_create_sim;