aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2013-11-22 21:15:15 +0100
committerAleksander Morgado <aleksander@aleksander.es>2014-02-13 13:41:31 +0100
commitb7fa48dd22f9bf4cb38a60e7c78184b7eea5fcf7 (patch)
tree43227bd35319a2d06be327f2e34fc15aa8ed19d7 /src
parent84ab92d85a331e835ab5672865e0238d08ee8857 (diff)
device: new 'hotplugged' property
Diffstat (limited to 'src')
-rw-r--r--src/mm-device.c29
-rw-r--r--src/mm-device.h4
2 files changed, 24 insertions, 9 deletions
diff --git a/src/mm-device.c b/src/mm-device.c
index 54f64562..a1b351ca 100644
--- a/src/mm-device.c
+++ b/src/mm-device.c
@@ -34,6 +34,7 @@ enum {
PROP_UDEV_DEVICE,
PROP_PLUGIN,
PROP_MODEM,
+ PROP_HOTPLUGGED,
PROP_LAST
};
@@ -624,15 +625,13 @@ mm_device_get_hotplugged (MMDevice *self)
/*****************************************************************************/
MMDevice *
-mm_device_new (GUdevDevice *udev_device, gboolean hotplugged)
+mm_device_new (GUdevDevice *udev_device,
+ gboolean hotplugged)
{
- MMDevice *device;
-
- device = MM_DEVICE (g_object_new (MM_TYPE_DEVICE,
- MM_DEVICE_UDEV_DEVICE, udev_device,
- NULL));
- device->priv->hotplugged = hotplugged;
- return device;
+ return MM_DEVICE (g_object_new (MM_TYPE_DEVICE,
+ MM_DEVICE_UDEV_DEVICE, udev_device,
+ MM_DEVICE_HOTPLUGGED, hotplugged,
+ NULL));
}
static void
@@ -666,6 +665,9 @@ set_property (GObject *object,
g_clear_object (&(self->priv->modem));
self->priv->modem = g_value_dup_object (value);
break;
+ case PROP_HOTPLUGGED:
+ self->priv->hotplugged = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -690,6 +692,9 @@ get_property (GObject *object,
case PROP_MODEM:
g_value_set_object (value, self->priv->modem);
break;
+ case PROP_HOTPLUGGED:
+ g_value_set_boolean (value, self->priv->hotplugged);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -758,6 +763,14 @@ mm_device_class_init (MMDeviceClass *klass)
G_PARAM_READWRITE);
g_object_class_install_property (object_class, PROP_MODEM, properties[PROP_MODEM]);
+ properties[PROP_HOTPLUGGED] =
+ g_param_spec_boolean (MM_DEVICE_HOTPLUGGED,
+ "Hotplugged",
+ "Whether the modem was hotplugged",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+ g_object_class_install_property (object_class, PROP_HOTPLUGGED, properties[PROP_HOTPLUGGED]);
+
signals[SIGNAL_PORT_GRABBED] =
g_signal_new (MM_DEVICE_PORT_GRABBED,
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/src/mm-device.h b/src/mm-device.h
index e7065ed7..fa70d862 100644
--- a/src/mm-device.h
+++ b/src/mm-device.h
@@ -37,6 +37,7 @@ typedef struct _MMDevicePrivate MMDevicePrivate;
#define MM_DEVICE_UDEV_DEVICE "udev-device"
#define MM_DEVICE_PLUGIN "plugin"
#define MM_DEVICE_MODEM "modem"
+#define MM_DEVICE_HOTPLUGGED "hotplugged"
#define MM_DEVICE_PORT_GRABBED "port-grabbed"
#define MM_DEVICE_PORT_RELEASED "port-released"
@@ -58,7 +59,8 @@ struct _MMDeviceClass {
GType mm_device_get_type (void);
-MMDevice *mm_device_new (GUdevDevice *udev_device, gboolean hotplugged);
+MMDevice *mm_device_new (GUdevDevice *udev_device,
+ gboolean hotplugged);
void mm_device_grab_port (MMDevice *self,
GUdevDevice *udev_port);