diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2013-11-22 23:40:05 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2014-02-13 13:41:36 +0100 |
commit | abb88a5e0ab7a0ed4a661372aa24e82aa38bc89f (patch) | |
tree | ef8b06191bd3caa8695fc61292e131315e3e7646 | |
parent | 9641d27518e3f0a33c909ce46331d34eed76b432 (diff) |
plugin-manager: allow looking plugins by name
-rw-r--r-- | src/mm-plugin-manager.c | 22 | ||||
-rw-r--r-- | src/mm-plugin-manager.h | 4 |
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 */ |