diff options
-rw-r--r-- | src/mm-generic-cdma.c | 43 | ||||
-rw-r--r-- | src/mm-generic-cdma.h | 11 |
2 files changed, 45 insertions, 9 deletions
diff --git a/src/mm-generic-cdma.c b/src/mm-generic-cdma.c index 757e03d2..2b33e743 100644 --- a/src/mm-generic-cdma.c +++ b/src/mm-generic-cdma.c @@ -86,15 +86,14 @@ owns_port (MMModem *modem, const char *subsys, const char *name) return !!mm_modem_base_get_port (MM_MODEM_BASE (modem), subsys, name); } -static gboolean -grab_port (MMModem *modem, - const char *subsys, - const char *name, - MMPortType suggested_type, - gpointer user_data, - GError **error) +MMPort * +mm_generic_cdma_grab_port (MMGenericCdma *self, + const char *subsys, + const char *name, + MMPortType suggested_type, + gpointer user_data, + GError **error) { - MMGenericCdma *self = MM_GENERIC_CDMA (modem); MMGenericCdmaPrivate *priv = MM_GENERIC_CDMA_GET_PRIVATE (self); MMPortType ptype = MM_PORT_TYPE_IGNORED; MMPort *port; @@ -140,7 +139,18 @@ grab_port (MMModem *modem, } } - return TRUE; + return port; +} + +static gboolean +grab_port (MMModem *modem, + const char *subsys, + const char *name, + MMPortType suggested_type, + gpointer user_data, + GError **error) +{ + return !!mm_generic_cdma_grab_port (MM_GENERIC_CDMA (modem), subsys, name, suggested_type, user_data, error); } static void @@ -171,6 +181,21 @@ release_port (MMModem *modem, const char *subsys, const char *name) check_valid (MM_GENERIC_CDMA (modem)); } +MMSerialPort * +mm_generic_cdma_get_port (MMGenericCdma *modem, + MMPortType ptype) +{ + g_return_val_if_fail (MM_IS_GENERIC_CDMA (modem), NULL); + g_return_val_if_fail (ptype != MM_PORT_TYPE_UNKNOWN, NULL); + + if (ptype == MM_PORT_TYPE_PRIMARY) + return MM_GENERIC_CDMA_GET_PRIVATE (modem)->primary; + else if (ptype == MM_PORT_TYPE_SECONDARY) + return MM_GENERIC_CDMA_GET_PRIVATE (modem)->secondary; + + return NULL; +} + /*****************************************************************************/ void diff --git a/src/mm-generic-cdma.h b/src/mm-generic-cdma.h index 1f3d5989..dbf1f0d7 100644 --- a/src/mm-generic-cdma.h +++ b/src/mm-generic-cdma.h @@ -20,6 +20,7 @@ #include "mm-modem.h" #include "mm-modem-base.h" #include "mm-modem-cdma.h" +#include "mm-serial-port.h" #define MM_TYPE_GENERIC_CDMA (mm_generic_cdma_get_type ()) #define MM_GENERIC_CDMA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_GENERIC_CDMA, MMGenericCdma)) @@ -47,6 +48,16 @@ MMModem *mm_generic_cdma_new (const char *device, const char *plugin); /* Private, for subclasses */ + +MMPort * mm_generic_cdma_grab_port (MMGenericCdma *self, + const char *subsys, + const char *name, + MMPortType suggested_type, + gpointer user_data, + GError **error); + +MMSerialPort *mm_generic_cdma_get_port (MMGenericCdma *modem, MMPortType ptype); + void mm_generic_cdma_set_registration_state (MMGenericCdma *self, MMModemCdmaRegistrationState new_state); |