aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-plugin-base.c34
-rw-r--r--src/mm-plugin-base.h8
2 files changed, 39 insertions, 3 deletions
diff --git a/src/mm-plugin-base.c b/src/mm-plugin-base.c
index 32e08511..4393e6c4 100644
--- a/src/mm-plugin-base.c
+++ b/src/mm-plugin-base.c
@@ -70,12 +70,16 @@ typedef struct {
/* Plugin-specific setups */
const gchar **subsystems;
+ const guint16 *vendor_ids;
+ const guint16 *product_ids;
} MMPluginBasePrivate;
enum {
PROP_0,
PROP_NAME,
PROP_ALLOWED_SUBSYSTEMS,
+ PROP_ALLOWED_VENDOR_IDS,
+ PROP_ALLOWED_PRODUCT_IDS,
PROP_SORT_LAST,
LAST_PROP
};
@@ -1552,6 +1556,14 @@ set_property (GObject *object, guint prop_id,
/* Construct only */
priv->subsystems = (const gchar **)g_value_get_pointer (value);
break;
+ case PROP_ALLOWED_VENDOR_IDS:
+ /* Construct only */
+ priv->vendor_ids = (const guint16 *)g_value_get_pointer (value);
+ break;
+ case PROP_ALLOWED_PRODUCT_IDS:
+ /* Construct only */
+ priv->product_ids = (const guint16 *)g_value_get_pointer (value);
+ break;
case PROP_SORT_LAST:
/* Construct only */
priv->sort_last = g_value_get_boolean (value);
@@ -1575,6 +1587,12 @@ get_property (GObject *object, guint prop_id,
case PROP_ALLOWED_SUBSYSTEMS:
g_value_set_pointer (value, (gpointer)priv->subsystems);
break;
+ case PROP_ALLOWED_VENDOR_IDS:
+ g_value_set_pointer (value, (gpointer)priv->vendor_ids);
+ break;
+ case PROP_ALLOWED_PRODUCT_IDS:
+ g_value_set_pointer (value, (gpointer)priv->product_ids);
+ break;
case PROP_SORT_LAST:
g_value_set_boolean (value, priv->sort_last);
break;
@@ -1629,6 +1647,22 @@ mm_plugin_base_class_init (MMPluginBaseClass *klass)
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property
+ (object_class, PROP_ALLOWED_VENDOR_IDS,
+ g_param_spec_pointer (MM_PLUGIN_BASE_ALLOWED_VENDOR_IDS,
+ "Allowed vendor IDs",
+ "List of vendor IDs this plugin can support, "
+ "should be an array of guint16 finished with '0'",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_ALLOWED_PRODUCT_IDS,
+ g_param_spec_pointer (MM_PLUGIN_BASE_ALLOWED_PRODUCT_IDS,
+ "Allowed product IDs",
+ "List of product IDs this plugin can support, "
+ "should be an array of guint16 finished with '0'",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
(object_class, PROP_SORT_LAST,
g_param_spec_boolean (MM_PLUGIN_BASE_SORT_LAST,
"Sort Last",
diff --git a/src/mm-plugin-base.h b/src/mm-plugin-base.h
index 99d73ff3..256fad19 100644
--- a/src/mm-plugin-base.h
+++ b/src/mm-plugin-base.h
@@ -112,9 +112,11 @@ void mm_plugin_base_supports_task_add_custom_init_command (MMPluginBaseSupportsT
#define MM_IS_PLUBIN_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MM_TYPE_PLUGIN_BASE))
#define MM_PLUGIN_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_PLUGIN_BASE, MMPluginBaseClass))
-#define MM_PLUGIN_BASE_NAME "name"
-#define MM_PLUGIN_BASE_ALLOWED_SUBSYSTEMS "allowed-subsystems"
-#define MM_PLUGIN_BASE_SORT_LAST "sort-last"
+#define MM_PLUGIN_BASE_NAME "name"
+#define MM_PLUGIN_BASE_ALLOWED_SUBSYSTEMS "allowed-subsystems"
+#define MM_PLUGIN_BASE_ALLOWED_VENDOR_IDS "allowed-vendor-ids"
+#define MM_PLUGIN_BASE_ALLOWED_PRODUCT_IDS "allowed-product-ids"
+#define MM_PLUGIN_BASE_SORT_LAST "sort-last"
typedef struct _MMPluginBase MMPluginBase;
typedef struct _MMPluginBaseClass MMPluginBaseClass;