aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-11-22 18:24:08 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:22 +0100
commitd32b006cce8c62a1f0e2d4cf9fe0121a4a541316 (patch)
tree24f7c5a734e7db7c34ca94092e3f94ffd26c8941
parentd5a0efc659b01ed6aafe2d20f0c03f10c8fe11e3 (diff)
base-modem: new properties for vendor and product IDs
These will be set during modem object creation.
-rw-r--r--src/mm-base-modem.c49
-rw-r--r--src/mm-base-modem.h5
2 files changed, 54 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 17f6807f..e2be254b 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -42,6 +42,8 @@ enum {
PROP_DEVICE,
PROP_DRIVER,
PROP_PLUGIN,
+ PROP_VENDOR_ID,
+ PROP_PRODUCT_ID,
PROP_LAST
};
@@ -52,6 +54,9 @@ struct _MMBaseModemPrivate {
gchar *driver;
gchar *plugin;
+ guint vendor_id;
+ guint product_id;
+
gboolean valid;
guint max_timeouts;
@@ -463,6 +468,22 @@ mm_base_modem_get_plugin (MMBaseModem *self)
return self->priv->plugin;
}
+guint
+mm_base_modem_get_vendor_id (MMBaseModem *self)
+{
+ g_return_val_if_fail (MM_IS_BASE_MODEM (self), 0);
+
+ return self->priv->vendor_id;
+}
+
+guint
+mm_base_modem_get_product_id (MMBaseModem *self)
+{
+ g_return_val_if_fail (MM_IS_BASE_MODEM (self), 0);
+
+ return self->priv->product_id;
+}
+
/*****************************************************************************/
static void
@@ -508,6 +529,12 @@ set_property (GObject *object,
g_free (self->priv->plugin);
self->priv->plugin = g_value_dup_string (value);
break;
+ case PROP_VENDOR_ID:
+ self->priv->vendor_id = g_value_get_uint (value);
+ break;
+ case PROP_PRODUCT_ID:
+ self->priv->product_id = g_value_get_uint (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -538,6 +565,12 @@ get_property (GObject *object,
case PROP_PLUGIN:
g_value_set_string (value, self->priv->plugin);
break;
+ case PROP_VENDOR_ID:
+ g_value_set_uint (value, self->priv->vendor_id);
+ break;
+ case PROP_PRODUCT_ID:
+ g_value_set_uint (value, self->priv->product_id);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -629,5 +662,21 @@ mm_base_modem_class_init (MMBaseModemClass *klass)
NULL,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
g_object_class_install_property (object_class, PROP_PLUGIN, properties[PROP_PLUGIN]);
+
+ properties[PROP_VENDOR_ID] =
+ g_param_spec_uint (MM_BASE_MODEM_VENDOR_ID,
+ "Hardware vendor ID",
+ "Hardware vendor ID. May be unknown for serial devices.",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+ g_object_class_install_property (object_class, PROP_VENDOR_ID, properties[PROP_VENDOR_ID]);
+
+ properties[PROP_PRODUCT_ID] =
+ g_param_spec_uint (MM_BASE_MODEM_PRODUCT_ID,
+ "Hardware product ID",
+ "Hardware product ID. May be unknown for serial devices.",
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+ g_object_class_install_property (object_class, PROP_PRODUCT_ID, properties[PROP_PRODUCT_ID]);
}
diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h
index ca3671d4..26a829a8 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -44,6 +44,8 @@ typedef struct _MMBaseModemPrivate MMBaseModemPrivate;
#define MM_BASE_MODEM_DEVICE "base-modem-device"
#define MM_BASE_MODEM_DRIVER "base-modem-driver"
#define MM_BASE_MODEM_PLUGIN "base-modem-plugin"
+#define MM_BASE_MODEM_VENDOR_ID "base-modem-vendor-id"
+#define MM_BASE_MODEM_PRODUCT_ID "base-modem-product-id"
struct _MMBaseModem {
MmGdbusObjectSkeleton parent;
@@ -93,5 +95,8 @@ const gchar *mm_base_modem_get_device (MMBaseModem *self);
const gchar *mm_base_modem_get_driver (MMBaseModem *self);
const gchar *mm_base_modem_get_plugin (MMBaseModem *self);
+guint mm_base_modem_get_vendor_id (MMBaseModem *self);
+guint mm_base_modem_get_product_id (MMBaseModem *self);
+
#endif /* MM_BASE_MODEM_H */