36
36
#include "mm-iface-modem.h"
37
37
#include "mm-iface-modem-3gpp.h"
38
38
#include "mm-iface-modem-messaging.h"
39
#include "mm-sms-part-3gpp.h"
40
41
static void iface_modem_init (MMIfaceModem *iface);
41
42
static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface);
1486
1487
result = g_simple_async_result_new (G_OBJECT (self),
1489
modem_load_unlock_retries);
1490
modem_3gpp_load_enabled_facility_locks);
1491
1492
message = mbim_message_pin_list_query_new (NULL);
1492
1493
mbim_device_command (device,
2276
2277
result = g_simple_async_result_new (G_OBJECT (self),
2279
modem_3gpp_run_registration_checks);
2280
modem_3gpp_register_in_network);
2281
2282
if (operator_id && operator_id[0])
2282
2283
message = (mbim_message_register_state_set_new (
2302
2303
/*****************************************************************************/
2304
/* Scan networks (3GPP interface) */
2307
modem_3gpp_scan_networks_finish (MMIfaceModem3gpp *self,
2311
MbimMessage *response;
2312
MbimProvider **providers;
2314
GList *info_list = NULL;
2316
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
2319
response = (MbimMessage *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
2320
if (mbim_message_command_done_get_result (response, error) &&
2321
mbim_message_visible_providers_response_parse (response,
2325
info_list = mm_3gpp_network_info_list_from_mbim_providers ((const MbimProvider *const *)providers,
2327
mbim_provider_array_free (providers);
2333
visible_providers_query_ready (MbimDevice *device,
2335
GSimpleAsyncResult *simple)
2337
MbimMessage *response;
2338
GError *error = NULL;
2340
response = mbim_device_command_finish (device, res, &error);
2342
g_simple_async_result_set_op_res_gpointer (simple, response, (GDestroyNotify)mbim_message_unref);
2344
g_simple_async_result_take_error (simple, error);
2346
g_simple_async_result_complete (simple);
2347
g_object_unref (simple);
2351
modem_3gpp_scan_networks (MMIfaceModem3gpp *self,
2352
GAsyncReadyCallback callback,
2355
GSimpleAsyncResult *result;
2357
MbimMessage *message;
2359
if (!peek_device (self, &device, callback, user_data))
2362
result = g_simple_async_result_new (G_OBJECT (self),
2365
modem_3gpp_scan_networks);
2367
mm_dbg ("scanning networks...");
2368
message = mbim_message_visible_providers_query_new (MBIM_VISIBLE_PROVIDERS_ACTION_FULL_SCAN, NULL);
2369
mbim_device_command (device,
2373
(GAsyncReadyCallback)visible_providers_query_ready,
2375
mbim_message_unref (message);
2378
/*****************************************************************************/
2303
2379
/* Check support (Messaging interface) */
2305
2381
static gboolean
2407
2483
MMSmsPart *part;
2408
2484
GError *error = NULL;
2410
part = mm_sms_part_new_from_binary_pdu (pdu->message_index,
2486
part = mm_sms_part_3gpp_new_from_binary_pdu (pdu->message_index,
2415
2491
mm_dbg ("Correctly parsed PDU (%d)", pdu->message_index);
2416
2492
mm_iface_modem_messaging_take_part (MM_IFACE_MODEM_MESSAGING (self),
2697
2773
iface->run_registration_checks_finish = modem_3gpp_run_registration_checks_finish;
2698
2774
iface->register_in_network = modem_3gpp_register_in_network;
2699
2775
iface->register_in_network_finish = modem_3gpp_register_in_network_finish;
2701
/* TODO: use MBIM_CID_VISIBLE_PROVIDERS */
2702
iface->scan_networks = NULL;
2703
iface->scan_networks_finish = NULL;
2776
iface->scan_networks = modem_3gpp_scan_networks;
2777
iface->scan_networks_finish = modem_3gpp_scan_networks_finish;