diff options
Diffstat (limited to 'src')
-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 */ |