aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@gnu.org>2011-09-15 19:40:56 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:20 +0100
commit8ccb2229782a8a02306a61a382312d2e8bf206c7 (patch)
tree861c5d4933caad86e07bcfdcd9dfe35c64d3599e /src
parent2d8fb51c6b6669afa60594c04244f17653df0fb7 (diff)
plugin-base: new 'allowed-vendor-strings' and 'allowed-product-strings' properties
The plugins can set these properties to filter support check requests by AT-reported Vendor string and Product string. The value given to the properties should be a NULL-terminated array of strings, e.g., static const gchar *vendor_strings[] = { "cinterion" , NULL };
Diffstat (limited to 'src')
-rw-r--r--src/mm-plugin-base.c35
-rw-r--r--src/mm-plugin-base.h14
2 files changed, 43 insertions, 6 deletions
diff --git a/src/mm-plugin-base.c b/src/mm-plugin-base.c
index f8dab8bf..812a125d 100644
--- a/src/mm-plugin-base.c
+++ b/src/mm-plugin-base.c
@@ -73,6 +73,8 @@ typedef struct {
const gchar **subsystems;
const guint16 *vendor_ids;
const guint16 *product_ids;
+ const gchar **vendor_strings;
+ const gchar **product_strings;
const MMPortProbeAtCommand *custom_init;
} MMPluginBasePrivate;
@@ -82,6 +84,8 @@ enum {
PROP_ALLOWED_SUBSYSTEMS,
PROP_ALLOWED_VENDOR_IDS,
PROP_ALLOWED_PRODUCT_IDS,
+ PROP_ALLOWED_VENDOR_STRINGS,
+ PROP_ALLOWED_PRODUCT_STRINGS,
PROP_CUSTOM_INIT,
PROP_SORT_LAST,
LAST_PROP
@@ -1567,6 +1571,14 @@ set_property (GObject *object, guint prop_id,
/* Construct only */
priv->product_ids = (const guint16 *)g_value_get_pointer (value);
break;
+ case PROP_ALLOWED_VENDOR_STRINGS:
+ /* Construct only */
+ priv->vendor_strings = (const gchar **)g_value_get_pointer (value);
+ break;
+ case PROP_ALLOWED_PRODUCT_STRINGS:
+ /* Construct only */
+ priv->product_strings = (const gchar **)g_value_get_pointer (value);
+ break;
case PROP_CUSTOM_INIT:
/* Construct only */
priv->custom_init = (const MMPortProbeAtCommand *)g_value_get_pointer (value);
@@ -1600,6 +1612,12 @@ get_property (GObject *object, guint prop_id,
case PROP_ALLOWED_PRODUCT_IDS:
g_value_set_pointer (value, (gpointer)priv->product_ids);
break;
+ case PROP_ALLOWED_VENDOR_STRINGS:
+ g_value_set_pointer (value, (gpointer)priv->vendor_strings);
+ break;
+ case PROP_ALLOWED_PRODUCT_STRINGS:
+ g_value_set_pointer (value, (gpointer)priv->product_strings);
+ break;
case PROP_CUSTOM_INIT:
g_value_set_pointer (value, (gpointer)priv->custom_init);
break;
@@ -1672,6 +1690,23 @@ mm_plugin_base_class_init (MMPluginBaseClass *klass)
"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_VENDOR_STRINGS,
+ g_param_spec_pointer (MM_PLUGIN_BASE_ALLOWED_VENDOR_STRINGS,
+ "Allowed vendor strings",
+ "List of vendor strings this plugin can support, "
+ "should be an array of strings finished with 'NULL'",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
+ g_object_class_install_property
+ (object_class, PROP_ALLOWED_PRODUCT_STRINGS,
+ g_param_spec_pointer (MM_PLUGIN_BASE_ALLOWED_PRODUCT_STRINGS,
+ "Allowed product strings",
+ "List of product strings this plugin can support, "
+ "should be an array of strings finished with 'NULL'",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
g_object_class_install_property
(object_class, PROP_CUSTOM_INIT,
g_param_spec_pointer (MM_PLUGIN_BASE_CUSTOM_INIT,
diff --git a/src/mm-plugin-base.h b/src/mm-plugin-base.h
index 7bb0f7de..230da630 100644
--- a/src/mm-plugin-base.h
+++ b/src/mm-plugin-base.h
@@ -123,12 +123,14 @@ typedef struct {
MMBaseSupportsTaskCustomInitResultFunc callback;
} MMPluginCustomInit;
-#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_CUSTOM_INIT "custom-init"
-#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_ALLOWED_VENDOR_STRINGS "allowed-vendor-strings"
+#define MM_PLUGIN_BASE_ALLOWED_PRODUCT_STRINGS "allowed-product-strings"
+#define MM_PLUGIN_BASE_CUSTOM_INIT "custom-init"
+#define MM_PLUGIN_BASE_SORT_LAST "sort-last"
typedef struct _MMPluginBase MMPluginBase;
typedef struct _MMPluginBaseClass MMPluginBaseClass;