[gnome-color-manager] trivial: add a device-kind property to GcmColorDevice
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-color-manager] trivial: add a device-kind property to GcmColorDevice
- Date: Sat, 13 Feb 2010 22:06:49 +0000 (UTC)
commit 0308f98622e21831224580f12263fe3b44daa1ec
Author: Richard Hughes <richard hughsie com>
Date: Sat Feb 13 22:05:50 2010 +0000
trivial: add a device-kind property to GcmColorDevice
src/gcm-color-device.c | 44 +++++++++++++++++++++++++++-----------------
src/gcm-color-device.h | 6 ++++++
2 files changed, 33 insertions(+), 17 deletions(-)
---
diff --git a/src/gcm-color-device.c b/src/gcm-color-device.c
index c6b44a2..7b8005b 100644
--- a/src/gcm-color-device.c
+++ b/src/gcm-color-device.c
@@ -50,6 +50,7 @@ struct _GcmColorDevicePrivate
gchar *vendor;
gchar *model;
GUdevClient *client;
+ GcmColorDeviceKind device_kind;
};
enum {
@@ -57,6 +58,7 @@ enum {
PROP_PRESENT,
PROP_VENDOR,
PROP_MODEL,
+ PROP_DEVICE_KIND,
PROP_LAST
};
@@ -88,6 +90,9 @@ gcm_color_device_get_property (GObject *object, guint prop_id, GValue *value, GP
case PROP_MODEL:
g_value_set_string (value, priv->model);
break;
+ case PROP_DEVICE_KIND:
+ g_value_set_uint (value, priv->device_kind);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -100,21 +105,7 @@ gcm_color_device_get_property (GObject *object, guint prop_id, GValue *value, GP
static void
gcm_color_device_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
- GcmColorDevice *color_device = GCM_COLOR_DEVICE (object);
- GcmColorDevicePrivate *priv = color_device->priv;
-
switch (prop_id) {
- case PROP_PRESENT:
- priv->present = g_value_get_boolean (value);
- break;
- case PROP_VENDOR:
- g_free (priv->vendor);
- priv->vendor = g_strdup (g_value_get_string (value));
- break;
- case PROP_MODEL:
- g_free (priv->model);
- priv->model = g_strdup (g_value_get_string (value));
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -138,7 +129,7 @@ gcm_color_device_class_init (GcmColorDeviceClass *klass)
*/
pspec = g_param_spec_boolean ("present", NULL, NULL,
FALSE,
- G_PARAM_READWRITE);
+ G_PARAM_READABLE);
g_object_class_install_property (object_class, PROP_PRESENT, pspec);
/**
@@ -146,7 +137,7 @@ gcm_color_device_class_init (GcmColorDeviceClass *klass)
*/
pspec = g_param_spec_string ("vendor", NULL, NULL,
NULL,
- G_PARAM_READWRITE);
+ G_PARAM_READABLE);
g_object_class_install_property (object_class, PROP_VENDOR, pspec);
/**
@@ -154,10 +145,18 @@ gcm_color_device_class_init (GcmColorDeviceClass *klass)
*/
pspec = g_param_spec_string ("model", NULL, NULL,
NULL,
- G_PARAM_READWRITE);
+ G_PARAM_READABLE);
g_object_class_install_property (object_class, PROP_MODEL, pspec);
/**
+ * GcmColorDevice:device-kind:
+ */
+ pspec = g_param_spec_uint ("device-kind", NULL, NULL,
+ 0, G_MAXUINT, GCM_COLOR_DEVICE_KIND_UNKNOWN,
+ G_PARAM_READABLE);
+ g_object_class_install_property (object_class, PROP_DEVICE_KIND, pspec);
+
+ /**
* GcmColorDevice::added:
**/
signals[SIGNAL_CHANGED] =
@@ -197,6 +196,16 @@ gcm_color_device_device_add (GcmColorDevice *color_device, GUdevDevice *device)
g_free (priv->model);
priv->model = g_strdup (g_udev_device_get_property (device, "ID_MODEL_FROM_DATABASE"));
+ /* try to get type */
+ if (g_strcmp0 (priv->model, "HueyXXX") == 0) {
+ priv->device_kind = GCM_COLOR_DEVICE_KIND_HUEY;
+ } else if (g_strcmp0 (priv->model, "MunkiXXX") == 0) {
+ priv->device_kind = GCM_COLOR_DEVICE_KIND_COLOR_MUNKI;
+ } else {
+ egg_warning ("Failed to recognise color device: %s", priv->model);
+ priv->device_kind = GCM_COLOR_DEVICE_KIND_UNKNOWN;
+ }
+
/* signal the addition */
egg_debug ("emit: changed");
g_signal_emit (color_device, signals[SIGNAL_CHANGED], 0);
@@ -288,6 +297,7 @@ gcm_color_device_init (GcmColorDevice *color_device)
color_device->priv = GCM_COLOR_DEVICE_GET_PRIVATE (color_device);
color_device->priv->vendor = NULL;
color_device->priv->model = NULL;
+ color_device->priv->device_kind = GCM_COLOR_DEVICE_KIND_UNKNOWN;
/* use GUdev to find the calibration device */
color_device->priv->client = g_udev_client_new (subsystems);
diff --git a/src/gcm-color-device.h b/src/gcm-color-device.h
index 1c83c18..dbe7bcf 100644
--- a/src/gcm-color-device.h
+++ b/src/gcm-color-device.h
@@ -55,6 +55,12 @@ struct _GcmColorDeviceClass
void (*_gcm_reserved5) (void);
};
+typedef enum {
+ GCM_COLOR_DEVICE_KIND_HUEY,
+ GCM_COLOR_DEVICE_KIND_COLOR_MUNKI,
+ GCM_COLOR_DEVICE_KIND_UNKNOWN
+} GcmColorDeviceKind;
+
GType gcm_color_device_get_type (void);
GcmColorDevice *gcm_color_device_new (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]