cdma: add port accessors for subclasses

This commit is contained in:
Dan Williams
2009-10-11 11:23:50 -07:00
parent b7dc5f00da
commit 665d1847a8
2 changed files with 45 additions and 9 deletions
+34 -9
View File
@@ -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
+11
View File
@@ -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);