diff options
Diffstat (limited to 'plugins/quectel')
-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 |