aboutsummaryrefslogtreecommitdiff
path: root/src/mm-plugin-base.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-plugin-base.c')
-rw-r--r--src/mm-plugin-base.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mm-plugin-base.c b/src/mm-plugin-base.c
index 09d72394..113303c5 100644
--- a/src/mm-plugin-base.c
+++ b/src/mm-plugin-base.c
@@ -65,11 +65,13 @@ typedef struct {
char *name;
GUdevClient *client;
GHashTable *tasks;
+ gboolean sort_last;
} MMPluginBasePrivate;
enum {
PROP_0,
PROP_NAME,
+ PROP_SORT_LAST,
LAST_PROP
};
@@ -1216,6 +1218,12 @@ get_name (MMPlugin *plugin)
return MM_PLUGIN_BASE_GET_PRIVATE (plugin)->name;
}
+static gboolean
+get_sort_last (const MMPlugin *plugin)
+{
+ return MM_PLUGIN_BASE_GET_PRIVATE (plugin)->sort_last;
+}
+
static char *
get_driver_name (GUdevDevice *device)
{
@@ -1387,6 +1395,7 @@ plugin_init (MMPlugin *plugin_class)
{
/* interface implementation */
plugin_class->get_name = get_name;
+ plugin_class->get_sort_last = get_sort_last;
plugin_class->supports_port = supports_port;
plugin_class->cancel_supports_port = cancel_supports_port;
plugin_class->grab_port = grab_port;
@@ -1424,6 +1433,10 @@ set_property (GObject *object, guint prop_id,
/* Construct only */
priv->name = g_value_dup_string (value);
break;
+ case PROP_SORT_LAST:
+ /* Construct only */
+ priv->sort_last = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1440,6 +1453,9 @@ get_property (GObject *object, guint prop_id,
case PROP_NAME:
g_value_set_string (value, priv->name);
break;
+ case PROP_SORT_LAST:
+ g_value_set_boolean (value, priv->sort_last);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1482,6 +1498,15 @@ mm_plugin_base_class_init (MMPluginBaseClass *klass)
NULL,
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",
+ "Whether the plugin should be sorted last in the"
+ "list of plugins loaded",
+ FALSE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
signals[PROBE_RESULT] =
g_signal_new ("probe-result",
G_OBJECT_CLASS_TYPE (object_class),