aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2013-11-22 23:40:05 +0100
committerAleksander Morgado <aleksander@aleksander.es>2014-02-13 13:41:36 +0100
commitabb88a5e0ab7a0ed4a661372aa24e82aa38bc89f (patch)
treeef8b06191bd3caa8695fc61292e131315e3e7646
parent9641d27518e3f0a33c909ce46331d34eed76b432 (diff)
plugin-manager: allow looking plugins by name
-rw-r--r--src/mm-plugin-manager.c22
-rw-r--r--src/mm-plugin-manager.h4
2 files changed, 26 insertions, 0 deletions
diff --git a/src/mm-plugin-manager.c b/src/mm-plugin-manager.c
index a4e7e24c..73eb7a63 100644
--- a/src/mm-plugin-manager.c
+++ b/src/mm-plugin-manager.c
@@ -51,6 +51,28 @@ struct _MMPluginManagerPrivate {
};
/*****************************************************************************/
+/* Look for plugin */
+
+MMPlugin *
+mm_plugin_manager_peek_plugin (MMPluginManager *self,
+ const gchar *plugin_name)
+{
+ GList *l;
+
+ if (self->priv->generic && g_str_equal (plugin_name, mm_plugin_get_name (self->priv->generic)))
+ return self->priv->generic;
+
+ for (l = self->priv->plugins; l; l = g_list_next (l)) {
+ MMPlugin *plugin = MM_PLUGIN (l->data);
+
+ if (g_str_equal (plugin_name, mm_plugin_get_name (plugin)))
+ return plugin;
+ }
+
+ return NULL;
+}
+
+/*****************************************************************************/
/* Find device support */
typedef struct {
diff --git a/src/mm-plugin-manager.h b/src/mm-plugin-manager.h
index 6c2d61ea..6129149d 100644
--- a/src/mm-plugin-manager.h
+++ b/src/mm-plugin-manager.h
@@ -58,4 +58,8 @@ gboolean mm_plugin_manager_find_device_support_finish (MMPluginManager *self,
GAsyncResult *result,
GError **error);
+/* Get plugin */
+MMPlugin *mm_plugin_manager_peek_plugin (MMPluginManager *self,
+ const gchar *plugin_name);
+
#endif /* MM_PLUGIN_MANAGER_H */