port: use a 'priv' pointer to handle the private info
This commit is contained in:
@@ -33,14 +33,12 @@ enum {
|
|||||||
LAST_PROP
|
LAST_PROP
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MM_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), MM_TYPE_PORT, MMPortPrivate))
|
struct _MMPortPrivate {
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char *device;
|
char *device;
|
||||||
MMPortSubsys subsys;
|
MMPortSubsys subsys;
|
||||||
MMPortType ptype;
|
MMPortType ptype;
|
||||||
gboolean connected;
|
gboolean connected;
|
||||||
} MMPortPrivate;
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
@@ -58,7 +56,7 @@ constructor (GType type,
|
|||||||
if (!object)
|
if (!object)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
priv = MM_PORT_GET_PRIVATE (object);
|
priv = MM_PORT (object)->priv;
|
||||||
|
|
||||||
if (!priv->device) {
|
if (!priv->device) {
|
||||||
g_warning ("MMPort: no device provided");
|
g_warning ("MMPort: no device provided");
|
||||||
@@ -90,7 +88,7 @@ mm_port_get_device (MMPort *self)
|
|||||||
g_return_val_if_fail (self != NULL, NULL);
|
g_return_val_if_fail (self != NULL, NULL);
|
||||||
g_return_val_if_fail (MM_IS_PORT (self), NULL);
|
g_return_val_if_fail (MM_IS_PORT (self), NULL);
|
||||||
|
|
||||||
return MM_PORT_GET_PRIVATE (self)->device;
|
return self->priv->device;
|
||||||
}
|
}
|
||||||
|
|
||||||
MMPortSubsys
|
MMPortSubsys
|
||||||
@@ -99,7 +97,7 @@ mm_port_get_subsys (MMPort *self)
|
|||||||
g_return_val_if_fail (self != NULL, MM_PORT_SUBSYS_UNKNOWN);
|
g_return_val_if_fail (self != NULL, MM_PORT_SUBSYS_UNKNOWN);
|
||||||
g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_SUBSYS_UNKNOWN);
|
g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_SUBSYS_UNKNOWN);
|
||||||
|
|
||||||
return MM_PORT_GET_PRIVATE (self)->subsys;
|
return self->priv->subsys;
|
||||||
}
|
}
|
||||||
|
|
||||||
MMPortType
|
MMPortType
|
||||||
@@ -108,7 +106,7 @@ mm_port_get_port_type (MMPort *self)
|
|||||||
g_return_val_if_fail (self != NULL, MM_PORT_TYPE_UNKNOWN);
|
g_return_val_if_fail (self != NULL, MM_PORT_TYPE_UNKNOWN);
|
||||||
g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_TYPE_UNKNOWN);
|
g_return_val_if_fail (MM_IS_PORT (self), MM_PORT_TYPE_UNKNOWN);
|
||||||
|
|
||||||
return MM_PORT_GET_PRIVATE (self)->ptype;
|
return self->priv->ptype;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
@@ -117,24 +115,21 @@ mm_port_get_connected (MMPort *self)
|
|||||||
g_return_val_if_fail (self != NULL, FALSE);
|
g_return_val_if_fail (self != NULL, FALSE);
|
||||||
g_return_val_if_fail (MM_IS_PORT (self), FALSE);
|
g_return_val_if_fail (MM_IS_PORT (self), FALSE);
|
||||||
|
|
||||||
return MM_PORT_GET_PRIVATE (self)->connected;
|
return self->priv->connected;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
mm_port_set_connected (MMPort *self, gboolean connected)
|
mm_port_set_connected (MMPort *self, gboolean connected)
|
||||||
{
|
{
|
||||||
MMPortPrivate *priv;
|
|
||||||
|
|
||||||
g_return_if_fail (self != NULL);
|
g_return_if_fail (self != NULL);
|
||||||
g_return_if_fail (MM_IS_PORT (self));
|
g_return_if_fail (MM_IS_PORT (self));
|
||||||
|
|
||||||
priv = MM_PORT_GET_PRIVATE (self);
|
if (self->priv->connected != connected) {
|
||||||
if (priv->connected != connected) {
|
self->priv->connected = connected;
|
||||||
priv->connected = connected;
|
|
||||||
g_object_notify (G_OBJECT (self), MM_PORT_CONNECTED);
|
g_object_notify (G_OBJECT (self), MM_PORT_CONNECTED);
|
||||||
|
|
||||||
mm_dbg ("(%s): port now %s",
|
mm_dbg ("(%s): port now %s",
|
||||||
priv->device,
|
self->priv->device,
|
||||||
connected ? "connected" : "disconnected");
|
connected ? "connected" : "disconnected");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -144,29 +139,32 @@ mm_port_set_connected (MMPort *self, gboolean connected)
|
|||||||
static void
|
static void
|
||||||
mm_port_init (MMPort *self)
|
mm_port_init (MMPort *self)
|
||||||
{
|
{
|
||||||
|
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, MM_TYPE_PORT, MMPortPrivate);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
set_property (GObject *object, guint prop_id,
|
set_property (GObject *object,
|
||||||
const GValue *value, GParamSpec *pspec)
|
guint prop_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
MMPortPrivate *priv = MM_PORT_GET_PRIVATE (object);
|
MMPort *self = MM_PORT (object);
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_DEVICE:
|
case PROP_DEVICE:
|
||||||
/* Construct only */
|
/* Construct only */
|
||||||
priv->device = g_value_dup_string (value);
|
self->priv->device = g_value_dup_string (value);
|
||||||
break;
|
break;
|
||||||
case PROP_SUBSYS:
|
case PROP_SUBSYS:
|
||||||
/* Construct only */
|
/* Construct only */
|
||||||
priv->subsys = g_value_get_uint (value);
|
self->priv->subsys = g_value_get_uint (value);
|
||||||
break;
|
break;
|
||||||
case PROP_TYPE:
|
case PROP_TYPE:
|
||||||
/* Construct only */
|
/* Construct only */
|
||||||
priv->ptype = g_value_get_uint (value);
|
self->priv->ptype = g_value_get_uint (value);
|
||||||
break;
|
break;
|
||||||
case PROP_CONNECTED:
|
case PROP_CONNECTED:
|
||||||
priv->connected = g_value_get_boolean (value);
|
self->priv->connected = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
@@ -178,20 +176,20 @@ static void
|
|||||||
get_property (GObject *object, guint prop_id,
|
get_property (GObject *object, guint prop_id,
|
||||||
GValue *value, GParamSpec *pspec)
|
GValue *value, GParamSpec *pspec)
|
||||||
{
|
{
|
||||||
MMPortPrivate *priv = MM_PORT_GET_PRIVATE (object);
|
MMPort *self = MM_PORT (object);
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case PROP_DEVICE:
|
case PROP_DEVICE:
|
||||||
g_value_set_string (value, priv->device);
|
g_value_set_string (value, self->priv->device);
|
||||||
break;
|
break;
|
||||||
case PROP_SUBSYS:
|
case PROP_SUBSYS:
|
||||||
g_value_set_uint (value, priv->subsys);
|
g_value_set_uint (value, self->priv->subsys);
|
||||||
break;
|
break;
|
||||||
case PROP_TYPE:
|
case PROP_TYPE:
|
||||||
g_value_set_uint (value, priv->ptype);
|
g_value_set_uint (value, self->priv->ptype);
|
||||||
break;
|
break;
|
||||||
case PROP_CONNECTED:
|
case PROP_CONNECTED:
|
||||||
g_value_set_boolean (value, priv->connected);
|
g_value_set_boolean (value, self->priv->connected);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
@@ -202,9 +200,9 @@ get_property (GObject *object, guint prop_id,
|
|||||||
static void
|
static void
|
||||||
finalize (GObject *object)
|
finalize (GObject *object)
|
||||||
{
|
{
|
||||||
MMPortPrivate *priv = MM_PORT_GET_PRIVATE (object);
|
MMPort *self = MM_PORT (object);
|
||||||
|
|
||||||
g_free (priv->device);
|
g_free (self->priv->device);
|
||||||
|
|
||||||
G_OBJECT_CLASS (mm_port_parent_class)->finalize (object);
|
G_OBJECT_CLASS (mm_port_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
@@ -55,9 +55,11 @@ typedef enum { /*< underscore_name=mm_port_type >*/
|
|||||||
|
|
||||||
typedef struct _MMPort MMPort;
|
typedef struct _MMPort MMPort;
|
||||||
typedef struct _MMPortClass MMPortClass;
|
typedef struct _MMPortClass MMPortClass;
|
||||||
|
typedef struct _MMPortPrivate MMPortPrivate;
|
||||||
|
|
||||||
struct _MMPort {
|
struct _MMPort {
|
||||||
GObject parent;
|
GObject parent;
|
||||||
|
MMPortPrivate *priv;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MMPortClass {
|
struct _MMPortClass {
|
||||||
|
Reference in New Issue
Block a user