diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2018-07-02 00:25:54 +0200 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2018-08-21 13:26:08 +0000 |
commit | 091bf4dbd811a7e556613397cd0efa7b8998a2cd (patch) | |
tree | ecdd13be2c2a4b1ed3b3f14577ae726df9f48952 /src/mm-iface-modem-location.h | |
parent | 0798f32362f0a9664e65de13c66d3767fc7ddf6d (diff) |
api: support location assistance data
Sometimes SUPL-server based A-GPS is not possible, e.g. if the module
doesn't have Internet connectivity. In such cases, the modem may
support injecting additional "assistance data" that may be downloaded
from the Internet using external means (e.g. WiFi), in order to keep
having a quick time to first fix.
We now support using this location assistance data, with the following
new API elements:
* A new mask of supported assistance data types is provided in the
SupportedAssistanceData property.
* A new list of URLs from where the aassistance data may be
downloaded is also provided in a new AssistanceDataServers
property.
* A new InjectAssistanceData() method is provided, to perform the
data injection in the module once it's been downloaded to the host
system.
Diffstat (limited to 'src/mm-iface-modem-location.h')
-rw-r--r-- | src/mm-iface-modem-location.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/mm-iface-modem-location.h b/src/mm-iface-modem-location.h index e49fd79c..9128f1e2 100644 --- a/src/mm-iface-modem-location.h +++ b/src/mm-iface-modem-location.h @@ -50,6 +50,22 @@ struct _MMIfaceModemLocation { GAsyncResult *res, GError **error); + /* Loading of the AssistanceDataServers property */ + void (* load_assistance_data_servers) (MMIfaceModemLocation *self, + GAsyncReadyCallback callback, + gpointer user_data); + gchar ** (* load_assistance_data_servers_finish) (MMIfaceModemLocation *self, + GAsyncResult *res, + GError **error); + + /* Loading of the SupportedAssistanceData property */ + void (* load_supported_assistance_data) (MMIfaceModemLocation *self, + GAsyncReadyCallback callback, + gpointer user_data); + MMModemLocationAssistanceDataType (* load_supported_assistance_data_finish) (MMIfaceModemLocation *self, + GAsyncResult *res, + GError **error); + /* Enable location gathering (async) */ void (* enable_location_gathering) (MMIfaceModemLocation *self, MMModemLocationSource source, @@ -76,6 +92,16 @@ struct _MMIfaceModemLocation { gboolean (*set_supl_server_finish) (MMIfaceModemLocation *self, GAsyncResult *res, GError **error); + + /* Inject assistance data (async) */ + void (* inject_assistance_data) (MMIfaceModemLocation *self, + const guint8 *data, + gsize data_size, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*inject_assistance_data_finish) (MMIfaceModemLocation *self, + GAsyncResult *res, + GError **error); }; GType mm_iface_modem_location_get_type (void); |