aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/quectel/mm-broadband-modem-qmi-quectel.c28
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