diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2020-06-28 15:05:14 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-06-29 08:53:00 +0000 |
commit | 58dbb68fa0c0a30d33d93969016f39880b142920 (patch) | |
tree | 85953d58ba5a2d524613ed5b9714429c58d57913 | |
parent | 78d19c10ba50bbe6525e7f58d28e96e3e4614d86 (diff) |
quectel,qmi: add QGPS based fallback support
-rw-r--r-- | plugins/quectel/mm-broadband-modem-qmi-quectel.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/plugins/quectel/mm-broadband-modem-qmi-quectel.c b/plugins/quectel/mm-broadband-modem-qmi-quectel.c index 96eda0e5..800c2341 100644 --- a/plugins/quectel/mm-broadband-modem-qmi-quectel.c +++ b/plugins/quectel/mm-broadband-modem-qmi-quectel.c @@ -19,13 +19,17 @@ #include "mm-shared-quectel.h" #include "mm-iface-modem-firmware.h" -static void iface_modem_init (MMIfaceModem *iface); -static void shared_quectel_init (MMSharedQuectel *iface); +static void iface_modem_init (MMIfaceModem *iface); static void iface_modem_firmware_init (MMIfaceModemFirmware *iface); +static void iface_modem_location_init (MMIfaceModemLocation *iface); +static void shared_quectel_init (MMSharedQuectel *iface); + +static MMIfaceModemLocation *iface_modem_location_parent; G_DEFINE_TYPE_EXTENDED (MMBroadbandModemQmiQuectel, mm_broadband_modem_qmi_quectel, MM_TYPE_BROADBAND_MODEM_QMI, 0, G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM, iface_modem_init) G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_FIRMWARE, iface_modem_firmware_init) + G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_LOCATION, iface_modem_location_init) G_IMPLEMENT_INTERFACE (MM_TYPE_SHARED_QUECTEL, shared_quectel_init)) /*****************************************************************************/ @@ -66,8 +70,28 @@ iface_modem_firmware_init (MMIfaceModemFirmware *iface) } static void +iface_modem_location_init (MMIfaceModemLocation *iface) +{ + iface_modem_location_parent = g_type_interface_peek_parent (iface); + + iface->load_capabilities = mm_shared_quectel_location_load_capabilities; + iface->load_capabilities_finish = mm_shared_quectel_location_load_capabilities_finish; + iface->enable_location_gathering = mm_shared_quectel_enable_location_gathering; + iface->enable_location_gathering_finish = mm_shared_quectel_enable_location_gathering_finish; + iface->disable_location_gathering = mm_shared_quectel_disable_location_gathering; + iface->disable_location_gathering_finish = mm_shared_quectel_disable_location_gathering_finish; +} + +static MMIfaceModemLocation * +peek_parent_location_interface (MMSharedQuectel *self) +{ + return iface_modem_location_parent; +} + +static void shared_quectel_init (MMSharedQuectel *iface) { + iface->peek_parent_location_interface = peek_parent_location_interface; } static void |