From ffae95a46b66190484f414d40e50434aa278d34d Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 3 Jan 2012 17:06:45 +0100 Subject: [PATCH] iface-modem: new helpers to check if modem has LTE capabilities --- src/mm-iface-modem.c | 48 +++++++++++++++++++++++++++++++----------- src/mm-iface-modem.h | 2 ++ src/mm-modem-helpers.h | 8 ++++--- 3 files changed, 43 insertions(+), 15 deletions(-) diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index 27970e7d..1499bec8 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -2850,6 +2850,18 @@ mm_iface_modem_is_3gpp (MMIfaceModem *self) return (capabilities & MM_MODEM_CAPABILITY_3GPP); } +gboolean +mm_iface_modem_is_3gpp_lte (MMIfaceModem *self) +{ + MMModemCapability capabilities = MM_MODEM_CAPABILITY_NONE; + + g_object_get (self, + MM_IFACE_MODEM_CURRENT_CAPABILITIES, &capabilities, + NULL); + + return (capabilities & MM_MODEM_CAPABILITY_3GPP_LTE); +} + gboolean mm_iface_modem_is_cdma (MMIfaceModem *self) { @@ -2862,18 +2874,6 @@ mm_iface_modem_is_cdma (MMIfaceModem *self) return (capabilities & MM_MODEM_CAPABILITY_CDMA_EVDO); } -gboolean -mm_iface_modem_is_cdma_only (MMIfaceModem *self) -{ - MMModemCapability capabilities = MM_MODEM_CAPABILITY_NONE; - - g_object_get (self, - MM_IFACE_MODEM_CURRENT_CAPABILITIES, &capabilities, - NULL); - - return (capabilities == MM_MODEM_CAPABILITY_CDMA_EVDO); -} - gboolean mm_iface_modem_is_3gpp_only (MMIfaceModem *self) { @@ -2886,6 +2886,30 @@ mm_iface_modem_is_3gpp_only (MMIfaceModem *self) return ((MM_MODEM_CAPABILITY_3GPP ^ capabilities) & capabilities); } +gboolean +mm_iface_modem_is_3gpp_lte_only (MMIfaceModem *self) +{ + MMModemCapability capabilities = MM_MODEM_CAPABILITY_NONE; + + g_object_get (self, + MM_IFACE_MODEM_CURRENT_CAPABILITIES, &capabilities, + NULL); + + return ((MM_MODEM_CAPABILITY_3GPP_LTE ^ capabilities) & capabilities); +} + +gboolean +mm_iface_modem_is_cdma_only (MMIfaceModem *self) +{ + MMModemCapability capabilities = MM_MODEM_CAPABILITY_NONE; + + g_object_get (self, + MM_IFACE_MODEM_CURRENT_CAPABILITIES, &capabilities, + NULL); + + return (capabilities == MM_MODEM_CAPABILITY_CDMA_EVDO); +} + /*****************************************************************************/ static void diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h index cd25a6bb..804f02cb 100644 --- a/src/mm-iface-modem.h +++ b/src/mm-iface-modem.h @@ -253,6 +253,8 @@ GType mm_iface_modem_get_type (void); /* Check whether this modem has 3GPP capabilities */ gboolean mm_iface_modem_is_3gpp (MMIfaceModem *self); gboolean mm_iface_modem_is_3gpp_only (MMIfaceModem *self); +gboolean mm_iface_modem_is_3gpp_lte (MMIfaceModem *self); +gboolean mm_iface_modem_is_3gpp_lte_only (MMIfaceModem *self); /* Check whether this modem has CDMA capabilities */ gboolean mm_iface_modem_is_cdma (MMIfaceModem *self); diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h index e8dd3372..725eca3c 100644 --- a/src/mm-modem-helpers.h +++ b/src/mm-modem-helpers.h @@ -22,11 +22,13 @@ #include "mm-modem-cdma.h" #include "mm-charsets.h" -#define MM_MODEM_CAPABILITY_3GPP \ - (MM_MODEM_CAPABILITY_GSM_UMTS | \ - MM_MODEM_CAPABILITY_LTE | \ +#define MM_MODEM_CAPABILITY_3GPP_LTE \ + (MM_MODEM_CAPABILITY_LTE | \ MM_MODEM_CAPABILITY_LTE_ADVANCED) +#define MM_MODEM_CAPABILITY_3GPP \ + (MM_MODEM_CAPABILITY_GSM_UMTS | \ + MM_MODEM_CAPABILITY_3GPP_LTE) /* Network scan results expected */ typedef struct {