[grilo] core: Rename PluginRegistry to Registry



commit 41f2fe09990e8f800f829e52867e87864d971b5f
Author: Juan A. Suarez Romero <jasuarez igalia com>
Date:   Mon Jul 23 10:36:53 2012 +0000

    core: Rename PluginRegistry to Registry

 bindings/vala/grilo-0.2.metadata                   |   10 +-
 bindings/vala/grilo-uninstalled.files.in           |    2 +-
 doc/grilo/environment-setup.xml                    |    4 +-
 doc/grilo/grilo-docs.sgml                          |    2 +-
 doc/grilo/grilo-sections.txt                       |   76 +-
 doc/grilo/grilo.types                              |    2 +-
 doc/grilo/plugins-sources.xml                      |   16 +-
 doc/grilo/plugins-testing.xml                      |    8 +-
 doc/grilo/writing-apps.xml                         |   20 +-
 examples/browsing.c                                |    8 +-
 examples/configuring-plugins.c                     |   14 +-
 examples/efficient-metadata-resolution.c           |   14 +-
 examples/loading-plugins.c                         |   10 +-
 examples/multivalues.c                             |   14 +-
 examples/searching.c                               |    8 +-
 src/Makefile.am                                    |    6 +-
 src/data/grl-data.c                                |   14 +-
 src/data/grl-media.c                               |   14 +-
 src/data/grl-related-keys.c                        |   10 +-
 src/grilo.c                                        |   10 +-
 src/grilo.h                                        |    2 +-
 src/grl-log-priv.h                                 |    2 +-
 src/grl-log.c                                      |    4 +-
 src/grl-metadata-key-priv.h                        |    4 +-
 src/grl-metadata-key.c                             |  871 ++++++++++----------
 src/grl-multiple.c                                 |   22 +-
 src/grl-operation-options.c                        |    8 +-
 src/grl-plugin-priv.h                              |    2 +-
 src/grl-plugin-registry.h                          |  278 -------
 src/grl-plugin.c                                   |   14 +-
 ...-plugin-registry-priv.h => grl-registry-priv.h} |   17 +-
 src/{grl-plugin-registry.c => grl-registry.c}      |  370 +++++-----
 src/grl-registry.h                                 |  272 ++++++
 src/grl-source.c                                   |   28 +-
 tests/metadata_source.c                            |   10 +-
 tests/python/test_fs.py                            |    4 +-
 tests/python/test_media.py                         |    2 +-
 tests/python/test_metadata_source.py               |    2 +-
 tests/python/test_options.py                       |    4 +-
 tests/python/test_plugin.py                        |    2 +-
 tests/python/test_registry.py                      |   12 +-
 tests/registry.c                                   |   16 +-
 tools/grilo-inspect/grl-inspect.c                  |   12 +-
 tools/grilo-test-ui/main.c                         |  102 ++--
 tools/js/testGrilo.js                              |    2 +-
 tools/python/grilo-test-ui.py                      |   22 +-
 tools/vala/grilo-test.vala                         |    2 +-
 47 files changed, 1174 insertions(+), 1174 deletions(-)
---
diff --git a/bindings/vala/grilo-0.2.metadata b/bindings/vala/grilo-0.2.metadata
index 4c59024..6b8099d 100644
--- a/bindings/vala/grilo-0.2.metadata
+++ b/bindings/vala/grilo-0.2.metadata
@@ -4,11 +4,11 @@ Grl cprefix="Grl" lower_case_cprefix="grl_" cheader_filename="grilo.h"
 # GrlConfig
 grl_config_new.source nullable="1"
 
-# GrlPluginRegistry
-grl_plugin_registry_add_config.config transfer_ownership="1"
-grl_plugin_registry_get_metadata_keys type_arguments="unowned KeyID" transfer_ownership="1"
-grl_plugin_registry_get_sources type_arguments="unowned Plugin" transfer_ownership="1"
-grl_plugin_registry_get_sources_by_operations type_arguments="unowned Plugin" transfer_ownership="1"
+# GrlRegistry
+grl_registry_add_config.config transfer_ownership="1"
+grl_registry_get_metadata_keys type_arguments="unowned KeyID" transfer_ownership="1"
+grl_registry_get_sources type_arguments="unowned Plugin" transfer_ownership="1"
+grl_registry_get_sources_by_operations type_arguments="unowned Plugin" transfer_ownership="1"
 
 # GrlPlugin
 grl_plugin_get_info_keys type_arguments="unowned string" transfer_ownership="1"
diff --git a/bindings/vala/grilo-uninstalled.files.in b/bindings/vala/grilo-uninstalled.files.in
index 5ea9b65..f116e4a 100644
--- a/bindings/vala/grilo-uninstalled.files.in
+++ b/bindings/vala/grilo-uninstalled.files.in
@@ -7,7 +7,7 @@
 @top_builddir@/src/grl-caps.h
 @top_builddir@/src/grl-operation-options.h
 @top_builddir@/src/grl-multiple.h
- top_builddir@/src/grl-plugin-registry.h
+ top_builddir@/src/grl-registry.h
 @top_builddir@/src/grl-util.h
 @top_builddir@/src/data/
 @top_builddir@/src/.libs/libgrilo-0.2.so
diff --git a/doc/grilo/environment-setup.xml b/doc/grilo/environment-setup.xml
index 012705c..4a015c5 100644
--- a/doc/grilo/environment-setup.xml
+++ b/doc/grilo/environment-setup.xml
@@ -165,11 +165,11 @@ $ export GRL_DEBUG=*:warning
 $ export GRL_DEBUG=*:info
 
 # Enable full logging for the plugin registry module
-$ export GRL_DEBUG=plugin-registry:*
+$ export GRL_DEBUG=registry:*
 
 # Enable full logging for the plugin registry module
 # and WARNING or higher for the Youtube plugin
-$ export GRL_DEBUG=plugin-registry:*,youtube:warning
+$ export GRL_DEBUG=registry:*,youtube:warning
     </programlisting>
 
     <para>
diff --git a/doc/grilo/grilo-docs.sgml b/doc/grilo/grilo-docs.sgml
index d2b663d..aae5de6 100644
--- a/doc/grilo/grilo-docs.sgml
+++ b/doc/grilo/grilo-docs.sgml
@@ -65,7 +65,7 @@
 
     <chapter id="plugin-management">
       <title>Plug-in management</title>
-      <xi:include href="xml/grl-plugin-registry.xml"/>
+      <xi:include href="xml/grl-registry.xml"/>
     </chapter>
 
     <chapter id="sources">
diff --git a/doc/grilo/grilo-sections.txt b/doc/grilo/grilo-sections.txt
index 01b9144..dfd2baa 100644
--- a/doc/grilo/grilo-sections.txt
+++ b/doc/grilo/grilo-sections.txt
@@ -161,50 +161,50 @@ grl_operation_options_set_type_filter
 </SECTION>
 
 <SECTION>
-<FILE>grl-plugin-registry</FILE>
-<TITLE>GrlPluginRegistry</TITLE>
+<FILE>grl-registry</FILE>
+<TITLE>GrlRegistry</TITLE>
 GRL_PLUGIN_PATH_VAR
 GRL_PLUGIN_RANKS_VAR
 GRL_PLUGIN_REGISTER
 GrlPluginDescriptor
-GrlPluginRegistry
-GrlPluginRegistryClass
-grl_plugin_registry_get_default
-grl_plugin_registry_add_directory
-grl_plugin_registry_load
-grl_plugin_registry_load_directory
-grl_plugin_registry_unload
-grl_plugin_registry_load_all
-grl_plugin_registry_load_by_id
-grl_plugin_registry_register_source
-grl_plugin_registry_unregister_source
-grl_plugin_registry_lookup_source
-grl_plugin_registry_get_sources
-grl_plugin_registry_get_sources_by_operations
-grl_plugin_registry_lookup_plugin
-grl_plugin_registry_get_plugins
-grl_plugin_registry_register_metadata_key
-grl_plugin_registry_register_metadata_key_full
-grl_plugin_registry_register_metadata_key_relation
-grl_plugin_registry_lookup_metadata_key
-grl_plugin_registry_lookup_metadata_key_relation
-grl_plugin_registry_lookup_metadata_key_name
-grl_plugin_registry_lookup_metadata_key_desc
-grl_plugin_registry_lookup_metadata_key_type
-grl_plugin_registry_metadata_key_validate
-grl_plugin_registry_get_metadata_keys
-grl_plugin_registry_add_config
-grl_plugin_registry_add_config_from_file
+GrlRegistry
+GrlRegistryClass
+grl_registry_get_default
+grl_registry_add_directory
+grl_registry_load
+grl_registry_load_directory
+grl_registry_unload
+grl_registry_load_all
+grl_registry_load_by_id
+grl_registry_register_source
+grl_registry_unregister_source
+grl_registry_lookup_source
+grl_registry_get_sources
+grl_registry_get_sources_by_operations
+grl_registry_lookup_plugin
+grl_registry_get_plugins
+grl_registry_register_metadata_key
+grl_registry_register_metadata_key_full
+grl_registry_register_metadata_key_relation
+grl_registry_lookup_metadata_key
+grl_registry_lookup_metadata_key_relation
+grl_registry_lookup_metadata_key_name
+grl_registry_lookup_metadata_key_desc
+grl_registry_lookup_metadata_key_type
+grl_registry_metadata_key_validate
+grl_registry_get_metadata_keys
+grl_registry_add_config
+grl_registry_add_config_from_file
 <SUBSECTION Standard>
-GRL_PLUGIN_REGISTRY
-GRL_IS_PLUGIN_REGISTRY
-GRL_TYPE_PLUGIN_REGISTRY
-grl_plugin_registry_get_type
-GRL_PLUGIN_REGISTRY_CLASS
-GRL_IS_PLUGIN_REGISTRY_CLASS
-GRL_PLUGIN_REGISTRY_GET_CLASS
+GRL_REGISTRY
+GRL_IS_REGISTRY
+GRL_TYPE_REGISTRY
+grl_registry_get_type
+GRL_REGISTRY_CLASS
+GRL_IS_REGISTRY_CLASS
+GRL_REGISTRY_GET_CLASS
 <SUBSECTION Private>
-GrlPluginRegistryPrivate
+GrlRegistryPrivate
 </SECTION>
 
 <SECTION>
diff --git a/doc/grilo/grilo.types b/doc/grilo/grilo.types
index 3bf22ac..24b9ba2 100644
--- a/doc/grilo/grilo.types
+++ b/doc/grilo/grilo.types
@@ -18,6 +18,6 @@ grl_media_video_get_type
 grl_media_image_get_type
 grl_plugin_get_type
 grl_source_get_type
-grl_plugin_registry_get_type
+grl_registry_get_type
 grl_caps_get_type
 grl_operation_options_get_type
diff --git a/doc/grilo/plugins-sources.xml b/doc/grilo/plugins-sources.xml
index 109bae6..41be993 100644
--- a/doc/grilo/plugins-sources.xml
+++ b/doc/grilo/plugins-sources.xml
@@ -94,7 +94,7 @@
     <para>
       The plugin identifier will be used by clients to identify the plugin when
       interacting with the plugin registry API. See the <link
-      linkend="GrlPluginRegistry">GrlPluginRegistry</link> API reference for
+      linkend="GrlRegistry">GrlRegistry</link> API reference for
       more details.
     </para>
 
@@ -106,7 +106,7 @@
     <para>
       Usually the plugin initialization function will create at least one <link
       linkend="GrlSource">GrlSource</link> instance and register it using <link
-      linkend="grl-plugin-registry-register-source">grl_plugin_registry_register_source()</link>.
+      linkend="grl-registry-register-source">grl_registry_register_source()</link>.
     </para>
 
     <para>
@@ -141,7 +141,7 @@
     <programlisting role="C">
       <![CDATA[
 gboolean
-grl_foo_plugin_init (GrlPluginRegistry *registry,
+grl_foo_plugin_init (GrlRegistry *registry,
                      GrlPlugin *plugin,
                      GList *configs)
 {
@@ -157,10 +157,10 @@ grl_foo_plugin_init (GrlPluginRegistry *registry,
   }
 
   GrlFooSource *source = grl_foo_source_new (api_key);
-  grl_plugin_registry_register_source (registry,
-                                       plugin,
-                                       GRL_SOURCE (source),
-                                       NULL);
+  grl_registry_register_source (registry,
+                                plugin,
+                                GRL_SOURCE (source),
+                                NULL);
   g_free (api_key);
   return TRUE;
 }
@@ -193,7 +193,7 @@ GRL_PLUGIN_REGISTER (grl_foo_plugin_init, NULL, "grl-foo");
           can spawn multiple media source objects). This identifier can be used
           by clients when interacting with available media sources through the
           plugin registry API. See the <link
-          linkend="GrlPluginRegistry">GrlPluginRegistry</link> API reference for
+          linkend="GrlRegistry">GrlRegistry</link> API reference for
           more details.
         </listitem>
         <listitem>
diff --git a/doc/grilo/plugins-testing.xml b/doc/grilo/plugins-testing.xml
index 2f6c9ab..063eeeb 100644
--- a/doc/grilo/plugins-testing.xml
+++ b/doc/grilo/plugins-testing.xml
@@ -47,7 +47,7 @@ $ export GRL_DEBUG="*:*"
   </para>
 
   <programlisting>   
-$ export GRL_DEBUG="plugin-registry:*"
+$ export GRL_DEBUG="registry:*"
   </programlisting>   
 
   <para>
@@ -56,9 +56,9 @@ $ export GRL_DEBUG="plugin-registry:*"
   </para>
 
   <programlisting> 
-(lt-grilo-test-ui:14457): Grilo-DEBUG: [plugin-registry] grl-plugin-registry.c:188: Plugin rank [plugin-id]' : 0
-(lt-grilo-test-ui:14457): Grilo-DEBUG: [plugin-registry] grl-plugin-registry.c:476: New source available: [source-id]
-(lt-grilo-test-ui:14457): Grilo-DEBUG: [plugin-registry] grl-plugin-registry.c:683: Loaded plugin '[plugin-id]' from '[plugin-file-absolute-path.so]'
+(lt-grilo-test-ui:14457): Grilo-DEBUG: [registry] grl-registry.c:188: Plugin rank [plugin-id]' : 0
+(lt-grilo-test-ui:14457): Grilo-DEBUG: [registry] grl-registry.c:476: New source available: [source-id]
+(lt-grilo-test-ui:14457): Grilo-DEBUG: [registry] grl-registry.c:683: Loaded plugin '[plugin-id]' from '[plugin-file-absolute-path.so]'
   </programlisting>
 
   <para>
diff --git a/doc/grilo/writing-apps.xml b/doc/grilo/writing-apps.xml
index 46c3aef..1321b31 100644
--- a/doc/grilo/writing-apps.xml
+++ b/doc/grilo/writing-apps.xml
@@ -46,7 +46,7 @@
       
       <para>
         Management of available plugins is done through the 
-        <link linkend="GrlPluginRegistry">Plugin Registry</link>.
+        <link linkend="GrlRegistry">Plugin Registry</link>.
         This object exposes API to load plugins and retrieve
         available media source and metadata source objects.
       </para>
@@ -64,7 +64,7 @@
       
       <para>
         You can instruct Grilo to load all available plugins via
-        <link linkend="grl-plugin-registry-load-all">grl_plugin_registry_load_all()</link>.
+        <link linkend="grl-registry-load-all">grl_registry_load_all()</link>.
         This will look into the default
         installation directory for the plugins and also the paths
         included via the environment variable GRL_PLUGIN_PATH.
@@ -89,17 +89,17 @@
       <itemizedlist>
         <listitem>
           Call
-          <link linkend="grl-plugin-registry-get-sources">
-            grl_plugin_registry_get_sources*
+          <link linkend="grl-registry-get-sources">
+            grl_registry_get_sources*
           </link> or
-          <link linkend="grl-plugin-registry-lookup-source">
-            grl_plugin_registry_lookup_source
+          <link linkend="grl-registry-lookup-source">
+            grl_registry_lookup_source
           </link>. These should be used
           when plugins have already been loaded.
         </listitem>
         <listitem>
           By connecting to the
-          <link linkend="GrlPluginRegistry-source-added">source-added</link>
+          <link linkend="GrlRegistry-source-added">source-added</link>
           signal, that is emitted whenever a new media source or metadata
           source object is found.
         </listitem>
@@ -107,7 +107,7 @@
       
       <para>
         For more information on how to use the plugin registry, please
-        check <link linkend="GrlPluginRegistry">its API reference</link>
+        check <link linkend="GrlRegistry">its API reference</link>
         or any of the code examples below.
       </para>
       
@@ -349,8 +349,8 @@
         Keys is that these do not have definitions available, and
         hence clients must query the plugin registry to know
         their identifiers first using
-        <link linkend="grl-plugin-registry-lookup-metadata-key">
-          grl_plugin_registry_lookup_metadata_key
+        <link linkend="grl-registry-lookup-metadata-key">
+          grl_registry_lookup_metadata_key
         </link>.
       </para>
 
diff --git a/examples/browsing.c b/examples/browsing.c
index 78967e0..38bd0c4 100644
--- a/examples/browsing.c
+++ b/examples/browsing.c
@@ -62,7 +62,7 @@ browse_cb (GrlSource *source,
 }
 
 static void
-source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_data)
+source_added_cb (GrlRegistry *registry, GrlSource *source, gpointer user_data)
 {
   static gboolean first = TRUE;
   GList * keys = grl_metadata_key_list_new (GRL_METADATA_KEY_TITLE,
@@ -112,13 +112,13 @@ source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_d
 static void
 load_plugins (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GError *error = NULL;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   g_signal_connect (registry, "source-added",
 		    G_CALLBACK (source_added_cb), NULL);
-  if (!grl_plugin_registry_load_all (registry, &error)) {
+  if (!grl_registry_load_all (registry, &error)) {
     g_error ("Failed to load plugins: %s", error->message);
   }
 }
diff --git a/examples/configuring-plugins.c b/examples/configuring-plugins.c
index fd93444..03bf9d8 100644
--- a/examples/configuring-plugins.c
+++ b/examples/configuring-plugins.c
@@ -10,7 +10,7 @@
 GRL_LOG_DOMAIN_STATIC(example_log_domain);
 
 static void
-source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_data)
+source_added_cb (GrlRegistry *registry, GrlSource *source, gpointer user_data)
 {
   /* If the Youtube plugin is installed, you should see it here now! */
   g_debug ("Detected new source available: '%s'",
@@ -20,15 +20,15 @@ source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_d
 static void
 load_plugins (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GError *error = NULL;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
   g_signal_connect (registry, "source-added",
                     G_CALLBACK (source_added_cb), NULL);
 
-  if (!grl_plugin_registry_load_all (registry, &error)) {
+  if (!grl_registry_load_all (registry, &error)) {
     g_error ("Failed to load plugins: %s", error->message);
   }
 }
@@ -37,15 +37,15 @@ static void
 configure_plugins (void)
 {
   GrlConfig *config;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   /* Let's configure only the Youtube plugin (only requires an API key) */
   config = grl_config_new ("grl-youtube", NULL);
   grl_config_set_api_key (config,
                           "AI39si4EfscPllSfUy1IwexMf__kntTL_G5dfSr2iUEVN45RHG"
                           "q92Aq0lX25OlnOkG6KTN-4soVAkAf67fWYXuHfVADZYr7S1A");
-  registry = grl_plugin_registry_get_default ();
-  grl_plugin_registry_add_config (registry, config, NULL);
+  registry = grl_registry_get_default ();
+  grl_registry_add_config (registry, config, NULL);
 
   /* When the plugin is loaded, the framework will provide
      this configuration for it */
diff --git a/examples/efficient-metadata-resolution.c b/examples/efficient-metadata-resolution.c
index a5fdc9d..907bc68 100644
--- a/examples/efficient-metadata-resolution.c
+++ b/examples/efficient-metadata-resolution.c
@@ -75,7 +75,7 @@ search_cb (GrlSource *source,
 }
 
 static void
-source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_data)
+source_added_cb (GrlRegistry *registry, GrlSource *source, gpointer user_data)
 {
   const gchar *source_id = grl_source_get_id (source);
   GrlCaps *caps;
@@ -117,27 +117,27 @@ static void
 configure_plugins (void)
 {
   GrlConfig *config;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   /* Let's configure only the Youtube plugin (only requires an API key) */
   config = grl_config_new ("grl-youtube", NULL);
   grl_config_set_api_key (config,
                           "AI39si4EfscPllSfUy1IwexMf__kntTL_G5dfSr2iUEVN45RHG"
                           "q92Aq0lX25OlnOkG6KTN-4soVAkAf67fWYXuHfVADZYr7S1A");
-  registry = grl_plugin_registry_get_default ();
-  grl_plugin_registry_add_config (registry, config, NULL);
+  registry = grl_registry_get_default ();
+  grl_registry_add_config (registry, config, NULL);
 }
 
 static void
 load_plugins (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GError *error = NULL;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   g_signal_connect (registry, "source-added",
 		    G_CALLBACK (source_added_cb), NULL);
-  if (!grl_plugin_registry_load_all (registry, &error)) {
+  if (!grl_registry_load_all (registry, &error)) {
     g_error ("Failed to load plugins: %s", error->message);
   }
 }
diff --git a/examples/loading-plugins.c b/examples/loading-plugins.c
index 9169ee4..001ce9e 100644
--- a/examples/loading-plugins.c
+++ b/examples/loading-plugins.c
@@ -10,7 +10,7 @@
 GRL_LOG_DOMAIN_STATIC(example_log_domain);
 
 static void
-source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_data)
+source_added_cb (GrlRegistry *registry, GrlSource *source, gpointer user_data)
 {
   g_debug ("Detected new source available: '%s'",
            grl_source_get_name (source));
@@ -20,7 +20,7 @@ source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_d
 }
 
 static void
-source_removed_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_data)
+source_removed_cb (GrlRegistry *registry, GrlSource *source, gpointer user_data)
 {
   g_debug ("Source '%s' is gone",
            grl_source_get_name (source));
@@ -33,10 +33,10 @@ source_removed_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user
 static void
 load_plugins (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GError *error = NULL;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
   /* These callback will be invoked when media providers
      are loaded/unloaded */
@@ -49,7 +49,7 @@ load_plugins (void)
      The registry will look for plugins in the default
      plugin path and directories specified using the
      GRL_PLUGIN_PATH environment variable */
-  if (!grl_plugin_registry_load_all (registry, &error)) {
+  if (!grl_registry_load_all (registry, &error)) {
     g_error ("Failed to load plugins: %s", error->message);
   }
 }
diff --git a/examples/multivalues.c b/examples/multivalues.c
index 429a846..cbee694 100644
--- a/examples/multivalues.c
+++ b/examples/multivalues.c
@@ -48,7 +48,7 @@ search_cb (GrlSource *source,
 }
 
 static void
-source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_data)
+source_added_cb (GrlRegistry *registry, GrlSource *source, gpointer user_data)
 {
   const gchar *id;
   GrlCaps *caps;
@@ -93,13 +93,13 @@ source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_d
 static void
 load_plugins (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GError *error = NULL;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   g_signal_connect (registry, "source-added",
 		    G_CALLBACK (source_added_cb), NULL);
-  if (!grl_plugin_registry_load_all (registry, &error)) {
+  if (!grl_registry_load_all (registry, &error)) {
     g_error ("Failed to load plugins: %s", error->message);
   }
 }
@@ -108,14 +108,14 @@ static void
 configure_plugins (void)
 {
   GrlConfig *config;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   config = grl_config_new ("grl-youtube", NULL);
   grl_config_set_api_key (config,
                           "AI39si4EfscPllSfUy1IwexMf__kntTL_G5dfSr2iUEVN45RHG"
                           "q92Aq0lX25OlnOkG6KTN-4soVAkAf67fWYXuHfVADZYr7S1A");
-  registry = grl_plugin_registry_get_default ();
-  grl_plugin_registry_add_config (registry, config, NULL);
+  registry = grl_registry_get_default ();
+  grl_registry_add_config (registry, config, NULL);
 }
 
 gint
diff --git a/examples/searching.c b/examples/searching.c
index 540f03e..8ec13bf 100644
--- a/examples/searching.c
+++ b/examples/searching.c
@@ -45,7 +45,7 @@ search_cb (GrlSource *source,
 }
 
 static void
-source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_data)
+source_added_cb (GrlRegistry *registry, GrlSource *source, gpointer user_data)
 {
   const gchar *id;
   GrlCaps *caps;
@@ -86,13 +86,13 @@ source_added_cb (GrlPluginRegistry *registry, GrlSource *source, gpointer user_d
 static void
 load_plugins (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GError *error = NULL;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   g_signal_connect (registry, "source-added",
 		    G_CALLBACK (source_added_cb), NULL);
-  if (!grl_plugin_registry_load_all (registry, &error)) {
+  if (!grl_registry_load_all (registry, &error)) {
     g_error ("Failed to load plugins: %s", error->message);
   }
 }
diff --git a/src/Makefile.am b/src/Makefile.am
index 0b3b636..ac05009 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -42,7 +42,7 @@ lib GRL_NAME@_la_LDFLAGS =	\
 
 lib GRL_NAME@_la_SOURCES =					\
 	grl-plugin.c grl-plugin-priv.h		\
-	grl-plugin-registry.c grl-plugin-registry-priv.h	\
+	grl-registry.c grl-registry-priv.h	\
 	grl-metadata-key.c grl-metadata-key-priv.h		\
 	grl-type-builtins.c grl-type-builtins.h			\
 	grl-marshal.c grl-marshal.h				\
@@ -76,7 +76,7 @@ lib GRL_NAME@inc_HEADERS =	\
 	grilo.h			\
 	grl-error.h		\
 	grl-plugin.h	\
-	grl-plugin-registry.h	\
+	grl-registry.h	\
 	grl-metadata-key.h	\
 	grl-source.h	\
 	grl-log.h 		\
@@ -102,7 +102,7 @@ data_h_headers =		\
 lib GRL_NAME@inc_HEADERS += $(data_h_headers)
 
 noinst_HEADERS =			\
-	grl-plugin-registry-priv.h	\
+	grl-registry-priv.h	\
 	grl-plugin-priv.h		\
 	grl-metadata-key-priv.h		\
 	grl-operation-priv.h		\
diff --git a/src/data/grl-data.c b/src/data/grl-data.c
index f8e4927..3c07396 100644
--- a/src/data/grl-data.c
+++ b/src/data/grl-data.c
@@ -38,7 +38,7 @@
 
 #include "grl-data.h"
 #include "grl-log.h"
-#include <grl-plugin-registry.h>
+#include <grl-registry.h>
 
 #define GRL_LOG_DOMAIN_DEFAULT data_log_domain
 GRL_LOG_DOMAIN(data_log_domain);
@@ -106,12 +106,12 @@ free_list_values (GrlKeyID key, GList *values, gpointer user_data)
 static GrlKeyID
 get_sample_key (GrlKeyID key)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   const GList *related_keys;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   related_keys =
-    grl_plugin_registry_lookup_metadata_key_relation (registry, key);
+    grl_registry_lookup_metadata_key_relation (registry, key);
 
   if (!related_keys) {
     GRL_WARNING ("Related keys not found for key \"%s\"",
@@ -531,18 +531,18 @@ grl_data_get_keys (GrlData *data)
 {
   GList *allkeys = NULL;
   GList *keylist, *key;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   const GList *relkeys;
 
   g_return_val_if_fail (GRL_IS_DATA (data), NULL);
 
   keylist = g_hash_table_get_keys (data->priv->data);
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
   for (key = keylist; key; key = g_list_next (key)) {
     GrlKeyID key_id = GRLPOINTER_TO_KEYID (key->data);
     relkeys =
-        grl_plugin_registry_lookup_metadata_key_relation (registry, key_id);
+        grl_registry_lookup_metadata_key_relation (registry, key_id);
     while (relkeys) {
       if (grl_data_has_key (data, GRLPOINTER_TO_KEYID (relkeys->data))) {
         allkeys = g_list_prepend (allkeys, relkeys->data);
diff --git a/src/data/grl-media.c b/src/data/grl-media.c
index 90c1646..7a422b8 100644
--- a/src/data/grl-media.c
+++ b/src/data/grl-media.c
@@ -281,7 +281,7 @@ grl_media_serialize_extended (GrlMedia *media,
   GRegex *type_regex;
   GString *serial;
   GrlKeyID grlkey;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   const GValue *value;
   const gchar *id;
   const gchar *source;
@@ -296,8 +296,8 @@ grl_media_serialize_extended (GrlMedia *media,
   /* Check serialization type */
   switch (serial_type) {
   case GRL_MEDIA_SERIALIZE_FULL:
-    registry = grl_plugin_registry_get_default ();
-    keylist = grl_plugin_registry_get_metadata_keys (registry);
+    registry = grl_registry_get_default ();
+    keylist = grl_registry_get_metadata_keys (registry);
     serial_media = grl_media_serialize_extended (media,
                                                  GRL_MEDIA_SERIALIZE_PARTIAL,
                                                  keylist);
@@ -334,7 +334,7 @@ grl_media_serialize_extended (GrlMedia *media,
     /* Include all properties */
     if (serial_type == GRL_MEDIA_SERIALIZE_PARTIAL) {
       g_string_append_c (serial, '?');
-      registry = grl_plugin_registry_get_default ();
+      registry = grl_registry_get_default ();
 
       va_start (va_serial, serial_type);
       keylist = va_arg (va_serial, GList *);
@@ -398,7 +398,7 @@ grl_media_unserialize (const gchar *serial)
   GType type_media;
   GrlKeyID grlkey;
   GrlMedia *media;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   gchar *escaped_value;
   gchar *keyname;
   gchar *protocol;
@@ -464,12 +464,12 @@ grl_media_unserialize (const gchar *serial)
   query = g_match_info_fetch (match_info, 4);
   g_match_info_free (match_info);
   if (query) {
-    registry = grl_plugin_registry_get_default ();
+    registry = grl_registry_get_default ();
     query_regex = g_regex_new ("([^=&]+)=([^=&]*)", 0, 0, NULL);
     g_regex_match (query_regex, query, 0, &match_info);
     while (g_match_info_matches (match_info)) {
       keyname = g_match_info_fetch (match_info, 1);
-      grlkey = grl_plugin_registry_lookup_metadata_key (registry, keyname);
+      grlkey = grl_registry_lookup_metadata_key (registry, keyname);
       if (grlkey) {
         escaped_value = g_match_info_fetch (match_info, 2);
         value = g_uri_unescape_string (escaped_value, NULL);
diff --git a/src/data/grl-related-keys.c b/src/data/grl-related-keys.c
index 65ab710..fdc8505 100644
--- a/src/data/grl-related-keys.c
+++ b/src/data/grl-related-keys.c
@@ -25,7 +25,7 @@
 /**
  * SECTION:grl-related-keys
  * @short_description: A class where to store related metadata keys.
- * @see_also: #GrlPluginRegistry, #GrlData
+ * @see_also: #GrlRegistry, #GrlData
  *
  * When handling media keys, like artist, URI, mime-type, and so on, some of
  * these keys are somewhat related: they do not make sense if they are not
@@ -41,7 +41,7 @@
 
 #include "grl-related-keys.h"
 #include "grl-log.h"
-#include "grl-plugin-registry.h"
+#include "grl-registry.h"
 
 struct _GrlRelatedKeysPrivate {
   GHashTable *data;
@@ -237,7 +237,7 @@ grl_related_keys_set (GrlRelatedKeys *relkeys,
                       const GValue *value)
 {
   GValue *copy = NULL;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   g_return_if_fail (GRL_IS_RELATED_KEYS (relkeys));
   g_return_if_fail (key);
@@ -258,9 +258,9 @@ grl_related_keys_set (GrlRelatedKeys *relkeys,
   g_value_init (copy, G_VALUE_TYPE (value));
   g_value_copy (value, copy);
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
-  if (!grl_plugin_registry_metadata_key_validate (registry, key, copy)) {
+  if (!grl_registry_metadata_key_validate (registry, key, copy)) {
     GRL_WARNING ("'%s' value invalid, adjusting",
                  GRL_METADATA_KEY_GET_NAME (key));
   }
diff --git a/src/grilo.c b/src/grilo.c
index f587ae4..2a05fe9 100644
--- a/src/grilo.c
+++ b/src/grilo.c
@@ -36,7 +36,7 @@
 #include "grilo.h"
 #include "grl-metadata-key-priv.h"
 #include "grl-operation-priv.h"
-#include "grl-plugin-registry-priv.h"
+#include "grl-registry-priv.h"
 #include "grl-log-priv.h"
 #include "config.h"
 
@@ -80,7 +80,7 @@ grl_init (gint *argc,
 {
   GOptionContext *ctx;
   GOptionGroup *group;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   gchar **split_element;
   gchar **split_list;
 
@@ -111,7 +111,7 @@ grl_init (gint *argc,
   _grl_log_init_core_domains ();
 
   /* Register default metadata keys */
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   grl_metadata_key_setup_system_keys (registry);
 
   /* Register GrlMedia in glib typesystem */
@@ -131,7 +131,7 @@ grl_init (gint *argc,
 
   split_list = g_strsplit (plugin_path, G_SEARCHPATH_SEPARATOR_S, 0);
   for (split_element = split_list; *split_element; split_element++) {
-    grl_plugin_registry_add_directory (registry, *split_element);
+    grl_registry_add_directory (registry, *split_element);
   }
   g_strfreev (split_list);
 
@@ -142,7 +142,7 @@ grl_init (gint *argc,
 
   if (plugin_list) {
     split_list = g_strsplit (plugin_list, ":", 0);
-    grl_plugin_registry_restrict_plugins (registry, split_list);
+    grl_registry_restrict_plugins (registry, split_list);
     g_strfreev (split_list);
   }
 
diff --git a/src/grilo.h b/src/grilo.h
index dce9115..af21712 100644
--- a/src/grilo.h
+++ b/src/grilo.h
@@ -29,7 +29,7 @@
 
 #include <grl-error.h>
 #include <grl-log.h>
-#include <grl-plugin-registry.h>
+#include <grl-registry.h>
 #include <grl-plugin.h>
 #include <grl-metadata-key.h>
 #include <grl-data.h>
diff --git a/src/grl-log-priv.h b/src/grl-log-priv.h
index d0e6c6d..78524a1 100644
--- a/src/grl-log-priv.h
+++ b/src/grl-log-priv.h
@@ -36,7 +36,7 @@ GRL_LOG_DOMAIN_EXTERN(media_log_domain);
 GRL_LOG_DOMAIN_EXTERN(plugin_log_domain);
 GRL_LOG_DOMAIN_EXTERN(source_log_domain);
 GRL_LOG_DOMAIN_EXTERN(multiple_log_domain);
-GRL_LOG_DOMAIN_EXTERN(plugin_registry_log_domain);
+GRL_LOG_DOMAIN_EXTERN(registry_log_domain);
 
 void _grl_log_init_core_domains (void);
 void _grl_log_free_core_domains (void);
diff --git a/src/grl-log.c b/src/grl-log.c
index 0cbc7ca..b97eaa8 100644
--- a/src/grl-log.c
+++ b/src/grl-log.c
@@ -329,7 +329,7 @@ _grl_log_init_core_domains (void)
   DOMAIN_INIT (plugin_log_domain, "plugin");
   DOMAIN_INIT (source_log_domain, "source");
   DOMAIN_INIT (multiple_log_domain, "multiple");
-  DOMAIN_INIT (plugin_registry_log_domain, "plugin-registry");
+  DOMAIN_INIT (registry_log_domain, "registry");
 
   /* Retrieve the GRL_DEBUG environment variable, initialize core domains from
    * it if applicable and keep it for grl_log_domain_new(). Plugins are using
@@ -373,7 +373,7 @@ _grl_log_free_core_domains (void)
   DOMAIN_FREE (plugin_log_domain);
   DOMAIN_FREE (source_log_domain);
   DOMAIN_FREE (multiple_log_domain);
-  DOMAIN_FREE (plugin_registry_log_domain);
+  DOMAIN_FREE (registry_log_domain);
 
   g_strfreev (grl_log_env);
 }
diff --git a/src/grl-metadata-key-priv.h b/src/grl-metadata-key-priv.h
index d260acb..3dd76aa 100644
--- a/src/grl-metadata-key-priv.h
+++ b/src/grl-metadata-key-priv.h
@@ -23,10 +23,10 @@
 #ifndef _GRL_METADATA_KEY_PRIV_H_
 #define _GRL_METADATA_KEY_PRIV_H_
 
-#include <grl-plugin-registry.h>
+#include <grl-registry.h>
 #include "grl-metadata-key.h"
 
 void
-grl_metadata_key_setup_system_keys (GrlPluginRegistry *registry);
+grl_metadata_key_setup_system_keys (GrlRegistry *registry);
 
 #endif /* _GRL_METADATA_KEY_PRIV_H_ */
diff --git a/src/grl-metadata-key.c b/src/grl-metadata-key.c
index 6f98425..4b4a041 100644
--- a/src/grl-metadata-key.c
+++ b/src/grl-metadata-key.c
@@ -32,443 +32,444 @@
 
 #include "grl-metadata-key.h"
 #include "grl-metadata-key-priv.h"
+#include "grl-registry-priv.h"
 #include "grl-definitions.h"
 
 #include <stdarg.h>
 
 void
-grl_metadata_key_setup_system_keys (GrlPluginRegistry *registry)
+grl_metadata_key_setup_system_keys (GrlRegistry *registry)
 {
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("album",
-                                                                       "Album",
-                                                                       "Album the media belongs to",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_ALBUM,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("artist",
-                                                                       "Artist",
-                                                                       "Main artist",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_ARTIST,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("author",
-                                                                       "Author",
-                                                                       "Creator of the media",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_AUTHOR,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_boxed ("publishing-date",
-                                                                       "Publishing date",
-                                                                       "When the media was originally published",
-                                                                       G_TYPE_DATE_TIME,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_PUBLICATION_DATE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("description",
-                                                                       "Description",
-                                                                       "Description of the media",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_DESCRIPTION,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("genre",
-                                                                       "Genre",
-                                                                       "Genre of the media",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_GENRE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("id",
-                                                                       "ID",
-                                                                       "Identifier of media",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_ID,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("last-played-time",
-                                                                       "LastPlayedTime",
-                                                                       "Last time the media was played",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_LAST_PLAYED,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("lyrics",
-                                                                       "Lyrics",
-                                                                       "Song lyrics",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_LYRICS,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("mime-type",
-                                                                       "MimeType",
-                                                                       "Media mime type",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_MIME,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("site",
-                                                                       "Site",
-                                                                       "Site",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_SITE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("source",
-                                                                       "Source",
-                                                                       "Source ID prioviding the content",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_SOURCE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("thumbnail",
-                                                                       "Thumbnail",
-                                                                       "Thumbnail image",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_THUMBNAIL,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_boxed ("thumbnail-binary",
-                                                                      "Thumbnail Binary",
-                                                                      "Thumbnail binary image",
-                                                                      G_TYPE_BYTE_ARRAY,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_THUMBNAIL_BINARY,
-
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("title",
-                                                                       "Title",
-                                                                       "Title of the media",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_TITLE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("url",
-                                                                       "URL",
-                                                                       "Media URL",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_URL,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("external-url",
-                                                                       "External URL",
-                                                                       "External location where the media can be played back, usually a website",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_EXTERNAL_URL,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("external-player",
-                                                                       "External Player URL",
-                                                                       "URL of an external player that can be used to play the resource (usually a Flash player)",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_EXTERNAL_PLAYER,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("studio",
-                                                                       "Studio",
-                                                                       "Studio the media is from",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_STUDIO,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("certificate",
-                                                                       "Certificate",
-                                                                       "Age certificate of the media",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_CERTIFICATE,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("license",
-                                                                       "License",
-                                                                       "The license of the media",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_LICENSE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("bitrate",
-                                                                    "Bitrate",
-                                                                    "Media bitrate in KBits/s",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_BITRATE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("childcount",
-                                                                    "Childcount",
-                                                                    "Number of items contained in a container",
-                                                                    -1, G_MAXINT,
-                                                                    GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_CHILDCOUNT,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("duration",
-                                                                    "Duration",
-                                                                    "Media duration",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_DURATION,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("height",
-                                                                    "Height",
-                                                                    "Height of media ('y' resolution)",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_HEIGHT,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("playback-interrupted-time",
-                                                                    "PlaybackInterruptedTime",
-                                                                    "Time at which playback was interrupted",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_LAST_POSITION,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("play-count",
-                                                                    "PlayCount",
-                                                                    "How many times media was played",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_PLAY_COUNT,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("width",
-                                                                    "Width",
-                                                                    "Width of media ('x' resolution)",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_WIDTH,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_float ("framerate",
-                                                                      "Framerate",
-                                                                      "Frames per second",
-                                                                      0, G_MAXFLOAT,
-                                                                      0,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_FRAMERATE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_float ("rating",
-                                                                      "Rating",
-                                                                      "Media rating",
-                                                                      0, G_MAXFLOAT,
-                                                                      0,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_RATING,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("season",
-                                                                    "Season",
-                                                                    "Season of a show",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_SEASON,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("episode",
-                                                                    "Episode",
-                                                                    "Episode of a show",
-                                                                    0, G_MAXINT,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_EPISODE,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("show",
-                                                                       "Show",
-                                                                       "Name of a show",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_SHOW,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_boxed ("creation-date",
-                                                                      "Creation date",
-                                                                      "Creation date",
-                                                                      G_TYPE_DATE_TIME,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_CREATION_DATE,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_string ("camera-model",
-                                                                       "Camera model",
-                                                                       "Name of the camera model used to take the photo",
-                                                                       NULL,
-                                                                       G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_CAMERA_MODEL,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("orientation",
-                                                                    "Picture orientation",
-                                                                    "Orientation of the photo in degree (clockwise)",
-                                                                    0, 359,
-                                                                    0,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_ORIENTATION,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_boolean ("flash-used",
-                                                                        "Flash used",
-                                                                        "Whether or not a flash was used to take that picture",
-                                                                        FALSE,
-                                                                        G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_FLASH_USED,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_float ("exposure-time",
-                                                                      "Exposure time",
-                                                                      "Exposure time of the photo in seconds",
-                                                                      0, G_MAXFLOAT,
-                                                                      0,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_EXPOSURE_TIME,
-                                                  NULL);
-
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_float ("iso-speed",
-                                                                      "ISO speed",
-                                                                      "Photographic film's sensitivity to light as ISO value",
-                                                                      0, G_MAXFLOAT,
-                                                                      0,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_ISO_SPEED,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_int ("track-number",
-                                                                    "Track number",
-                                                                    "Track number  inside the album",
-                                                                    1, G_MAXINT,
-                                                                    1,
-                                                                    G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_TRACK_NUMBER,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_boxed ("modification-date",
-                                                                      "Modification date",
-                                                                      "When the media was last modified",
-                                                                      G_TYPE_DATE_TIME,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_MODIFICATION_DATE,
-                                                  NULL);
-
-  grl_plugin_registry_register_metadata_key_full (registry,
-                                                  g_param_spec_float ("start-time",
-                                                                      "Start Time",
-                                                                      "Start offset in seconds relative to container",
-                                                                      0.0, G_MAXFLOAT,
-                                                                      0.0,
-                                                                      G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
-                                                  GRL_METADATA_KEY_START_TIME,
-                                                  NULL);
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("album",
+                                                                "Album",
+                                                                "Album the media belongs to",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_ALBUM,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("artist",
+                                                                "Artist",
+                                                                "Main artist",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_ARTIST,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("author",
+                                                                "Author",
+                                                                "Creator of the media",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_AUTHOR,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_boxed ("publishing-date",
+                                                               "Publishing date",
+                                                               "When the media was originally published",
+                                                               G_TYPE_DATE_TIME,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_PUBLICATION_DATE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("description",
+                                                                "Description",
+                                                                "Description of the media",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_DESCRIPTION,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("genre",
+                                                                "Genre",
+                                                                "Genre of the media",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_GENRE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("id",
+                                                                "ID",
+                                                                "Identifier of media",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_ID,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("last-played-time",
+                                                                "LastPlayedTime",
+                                                                "Last time the media was played",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_LAST_PLAYED,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("lyrics",
+                                                                "Lyrics",
+                                                                "Song lyrics",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_LYRICS,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("mime-type",
+                                                                "MimeType",
+                                                                "Media mime type",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_MIME,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("site",
+                                                                "Site",
+                                                                "Site",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_SITE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("source",
+                                                                "Source",
+                                                                "Source ID prioviding the content",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_SOURCE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("thumbnail",
+                                                                "Thumbnail",
+                                                                "Thumbnail image",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_THUMBNAIL,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_boxed ("thumbnail-binary",
+                                                               "Thumbnail Binary",
+                                                               "Thumbnail binary image",
+                                                               G_TYPE_BYTE_ARRAY,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_THUMBNAIL_BINARY,
+
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("title",
+                                                                "Title",
+                                                                "Title of the media",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_TITLE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("url",
+                                                                "URL",
+                                                                "Media URL",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_URL,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("external-url",
+                                                                "External URL",
+                                                                "External location where the media can be played back, usually a website",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_EXTERNAL_URL,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("external-player",
+                                                                "External Player URL",
+                                                                "URL of an external player that can be used to play the resource (usually a Flash player)",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_EXTERNAL_PLAYER,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("studio",
+                                                                "Studio",
+                                                                "Studio the media is from",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_STUDIO,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("certificate",
+                                                                "Certificate",
+                                                                "Age certificate of the media",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_CERTIFICATE,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("license",
+                                                                "License",
+                                                                "The license of the media",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_LICENSE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("bitrate",
+                                                             "Bitrate",
+                                                             "Media bitrate in KBits/s",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_BITRATE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("childcount",
+                                                             "Childcount",
+                                                             "Number of items contained in a container",
+                                                             -1, G_MAXINT,
+                                                             GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_CHILDCOUNT,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("duration",
+                                                             "Duration",
+                                                             "Media duration",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_DURATION,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("height",
+                                                             "Height",
+                                                             "Height of media ('y' resolution)",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_HEIGHT,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("playback-interrupted-time",
+                                                             "PlaybackInterruptedTime",
+                                                             "Time at which playback was interrupted",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_LAST_POSITION,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("play-count",
+                                                             "PlayCount",
+                                                             "How many times media was played",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_PLAY_COUNT,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("width",
+                                                             "Width",
+                                                             "Width of media ('x' resolution)",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_WIDTH,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_float ("framerate",
+                                                               "Framerate",
+                                                               "Frames per second",
+                                                               0, G_MAXFLOAT,
+                                                               0,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_FRAMERATE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_float ("rating",
+                                                               "Rating",
+                                                               "Media rating",
+                                                               0, G_MAXFLOAT,
+                                                               0,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_RATING,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("season",
+                                                             "Season",
+                                                             "Season of a show",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_SEASON,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("episode",
+                                                             "Episode",
+                                                             "Episode of a show",
+                                                             0, G_MAXINT,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_EPISODE,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("show",
+                                                                "Show",
+                                                                "Name of a show",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_SHOW,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_boxed ("creation-date",
+                                                               "Creation date",
+                                                               "Creation date",
+                                                               G_TYPE_DATE_TIME,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_CREATION_DATE,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_string ("camera-model",
+                                                                "Camera model",
+                                                                "Name of the camera model used to take the photo",
+                                                                NULL,
+                                                                G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_CAMERA_MODEL,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("orientation",
+                                                             "Picture orientation",
+                                                             "Orientation of the photo in degree (clockwise)",
+                                                             0, 359,
+                                                             0,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_ORIENTATION,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_boolean ("flash-used",
+                                                                 "Flash used",
+                                                                 "Whether or not a flash was used to take that picture",
+                                                                 FALSE,
+                                                                 G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_FLASH_USED,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_float ("exposure-time",
+                                                               "Exposure time",
+                                                               "Exposure time of the photo in seconds",
+                                                               0, G_MAXFLOAT,
+                                                               0,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_EXPOSURE_TIME,
+                                           NULL);
+
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_float ("iso-speed",
+                                                               "ISO speed",
+                                                               "Photographic film's sensitivity to light as ISO value",
+                                                               0, G_MAXFLOAT,
+                                                               0,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_ISO_SPEED,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_int ("track-number",
+                                                             "Track number",
+                                                             "Track number  inside the album",
+                                                             1, G_MAXINT,
+                                                             1,
+                                                             G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_TRACK_NUMBER,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_boxed ("modification-date",
+                                                               "Modification date",
+                                                               "When the media was last modified",
+                                                               G_TYPE_DATE_TIME,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_MODIFICATION_DATE,
+                                           NULL);
+
+  grl_registry_register_metadata_key_full (registry,
+                                           g_param_spec_float ("start-time",
+                                                               "Start Time",
+                                                               "Start offset in seconds relative to container",
+                                                               0.0, G_MAXFLOAT,
+                                                               0.0,
+                                                               G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE),
+                                           GRL_METADATA_KEY_START_TIME,
+                                           NULL);
 
   /* Create the relations */
-  grl_plugin_registry_register_metadata_key_relation (registry,
-                                                      GRL_METADATA_KEY_URL,
-                                                      GRL_METADATA_KEY_MIME);
-  grl_plugin_registry_register_metadata_key_relation (registry,
-                                                      GRL_METADATA_KEY_URL,
-                                                      GRL_METADATA_KEY_BITRATE);
-  grl_plugin_registry_register_metadata_key_relation (registry,
-                                                      GRL_METADATA_KEY_URL,
-                                                      GRL_METADATA_KEY_FRAMERATE);
-  grl_plugin_registry_register_metadata_key_relation (registry,
-                                                      GRL_METADATA_KEY_URL,
-                                                      GRL_METADATA_KEY_HEIGHT);
-  grl_plugin_registry_register_metadata_key_relation (registry,
-                                                      GRL_METADATA_KEY_URL,
-                                                      GRL_METADATA_KEY_WIDTH);
-  grl_plugin_registry_register_metadata_key_relation (registry,
-                                                      GRL_METADATA_KEY_URL,
-                                                      GRL_METADATA_KEY_START_TIME);
+  grl_registry_register_metadata_key_relation (registry,
+                                               GRL_METADATA_KEY_URL,
+                                               GRL_METADATA_KEY_MIME);
+  grl_registry_register_metadata_key_relation (registry,
+                                               GRL_METADATA_KEY_URL,
+                                               GRL_METADATA_KEY_BITRATE);
+  grl_registry_register_metadata_key_relation (registry,
+                                               GRL_METADATA_KEY_URL,
+                                               GRL_METADATA_KEY_FRAMERATE);
+  grl_registry_register_metadata_key_relation (registry,
+                                               GRL_METADATA_KEY_URL,
+                                               GRL_METADATA_KEY_HEIGHT);
+  grl_registry_register_metadata_key_relation (registry,
+                                               GRL_METADATA_KEY_URL,
+                                               GRL_METADATA_KEY_WIDTH);
+  grl_registry_register_metadata_key_relation (registry,
+                                               GRL_METADATA_KEY_URL,
+                                               GRL_METADATA_KEY_START_TIME);
 
 }
 
@@ -485,10 +486,10 @@ grl_metadata_key_setup_system_keys (GrlPluginRegistry *registry)
 const gchar *
 grl_metadata_key_get_name (GrlKeyID key)
 {
-  GrlPluginRegistry *registry = grl_plugin_registry_get_default ();
+  GrlRegistry *registry = grl_registry_get_default ();
 
   if (registry) {
-    return grl_plugin_registry_lookup_metadata_key_name (registry, key);
+    return grl_registry_lookup_metadata_key_name (registry, key);
   } else {
     return NULL;
   }
@@ -507,10 +508,10 @@ grl_metadata_key_get_name (GrlKeyID key)
 const gchar *
 grl_metadata_key_get_desc (GrlKeyID key)
 {
-  GrlPluginRegistry *registry = grl_plugin_registry_get_default ();
+  GrlRegistry *registry = grl_registry_get_default ();
 
   if (registry) {
-    return grl_plugin_registry_lookup_metadata_key_desc (registry, key);
+    return grl_registry_lookup_metadata_key_desc (registry, key);
   } else {
     return NULL;
   }
@@ -526,10 +527,10 @@ grl_metadata_key_get_desc (GrlKeyID key)
  **/
 GType grl_metadata_key_get_type (GrlKeyID key)
 {
-  GrlPluginRegistry *registry = grl_plugin_registry_get_default ();
+  GrlRegistry *registry = grl_registry_get_default ();
 
   if (registry) {
-    return grl_plugin_registry_lookup_metadata_key_type (registry, key);
+    return grl_registry_lookup_metadata_key_type (registry, key);
   } else {
     return G_TYPE_INVALID;
   }
diff --git a/src/grl-multiple.c b/src/grl-multiple.c
index abd8853..0e96396 100644
--- a/src/grl-multiple.c
+++ b/src/grl-multiple.c
@@ -37,7 +37,7 @@
 #include "grl-sync-priv.h"
 #include "grl-operation.h"
 #include "grl-operation-priv.h"
-#include "grl-plugin-registry.h"
+#include "grl-registry.h"
 #include "grl-error.h"
 #include "grl-log.h"
 
@@ -521,7 +521,7 @@ grl_multiple_search (const GList *sources,
 		     GrlSourceResultCb callback,
 		     gpointer user_data)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GList *sources_list;
   struct MultipleSearchData *msd;
   gboolean allocated_sources_list = FALSE;
@@ -535,11 +535,11 @@ grl_multiple_search (const GList *sources,
   /* If no sources have been provided then get the list of all
      searchable sources from the registry */
   if (!sources) {
-    registry = grl_plugin_registry_get_default ();
+    registry = grl_registry_get_default ();
     sources_list =
-      grl_plugin_registry_get_sources_by_operations (registry,
-						     GRL_OP_SEARCH,
-						     TRUE);
+      grl_registry_get_sources_by_operations (registry,
+                                              GRL_OP_SEARCH,
+                                              TRUE);
     if (sources_list == NULL) {
       /* No searchable sources? Raise error and bail out */
       g_list_free (sources_list);
@@ -670,7 +670,7 @@ grl_multiple_get_media_from_uri (const gchar *uri,
 				      GrlSourceResolveCb callback,
 				      gpointer user_data)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GList *sources, *iter;
   gboolean found = FALSE;
 
@@ -679,11 +679,11 @@ grl_multiple_get_media_from_uri (const gchar *uri,
   g_return_if_fail (callback != NULL);
   g_return_if_fail (GRL_IS_OPERATION_OPTIONS (options));
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   sources =
-    grl_plugin_registry_get_sources_by_operations (registry,
-						   GRL_OP_MEDIA_FROM_URI,
-						   TRUE);
+    grl_registry_get_sources_by_operations (registry,
+                                            GRL_OP_MEDIA_FROM_URI,
+                                            TRUE);
 
   /* Look for the first source that knows how to deal with 'uri' */
   iter = sources;
diff --git a/src/grl-operation-options.c b/src/grl-operation-options.c
index f5fd424..8d11921 100644
--- a/src/grl-operation-options.c
+++ b/src/grl-operation-options.c
@@ -32,7 +32,7 @@
 #include <grl-value-helper.h>
 #include <grl-range-value.h>
 #include <grl-log.h>
-#include <grl-plugin-registry.h>
+#include <grl-registry.h>
 
 #include "grl-operation-options-priv.h"
 #include "grl-type-builtins.h"
@@ -510,11 +510,11 @@ grl_operation_options_set_key_filter_value (GrlOperationOptions *options,
                                             GValue *value)
 {
   gboolean ret;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GType key_type;
 
-  registry = grl_plugin_registry_get_default ();
-  key_type = grl_plugin_registry_lookup_metadata_key_type (registry, key);
+  registry = grl_registry_get_default ();
+  key_type = grl_registry_lookup_metadata_key_type (registry, key);
 
   if (G_VALUE_TYPE (value) != key_type)
     return FALSE;
diff --git a/src/grl-plugin-priv.h b/src/grl-plugin-priv.h
index 74e868a..550e2ba 100644
--- a/src/grl-plugin-priv.h
+++ b/src/grl-plugin-priv.h
@@ -32,7 +32,7 @@
 #endif
 
 #include "grl-plugin.h"
-#include "grl-plugin-registry.h"
+#include "grl-registry.h"
 
 #include <glib.h>
 #include <glib-object.h>
diff --git a/src/grl-plugin.c b/src/grl-plugin.c
index ff08189..90e5a51 100644
--- a/src/grl-plugin.c
+++ b/src/grl-plugin.c
@@ -35,7 +35,7 @@
 
 #include "grl-plugin.h"
 #include "grl-plugin-priv.h"
-#include "grl-plugin-registry.h"
+#include "grl-registry.h"
 #include "grl-log.h"
 
 #include <string.h>
@@ -63,7 +63,7 @@ struct _GrlPluginPrivate {
   GModule *module;
   GHashTable *optional_info;
   gboolean loaded;
-  gboolean (*load_func) (GrlPluginRegistry *, GrlPlugin *, GList *);
+  gboolean (*load_func) (GrlRegistry *, GrlPlugin *, GList *);
   void (*unload_func) (GrlPlugin *);
 };
 
@@ -211,7 +211,7 @@ gboolean
 grl_plugin_load (GrlPlugin *plugin,
                  GList *configurations)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   g_return_val_if_fail (GRL_IS_PLUGIN (plugin), FALSE);
 
@@ -219,7 +219,7 @@ grl_plugin_load (GrlPlugin *plugin,
     return FALSE;
   }
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
   if (!plugin->priv->load_func (registry, plugin, configurations)) {
     return FALSE;
@@ -506,15 +506,15 @@ grl_plugin_set_info (GrlPlugin *plugin,
 GList *
 grl_plugin_get_sources (GrlPlugin *plugin)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GList *all_sources;
   GList *plugin_sources = NULL;
   GList *sources_iter;
 
   g_return_val_if_fail (GRL_IS_PLUGIN (plugin), NULL);
 
-  registry = grl_plugin_registry_get_default ();
-  all_sources = grl_plugin_registry_get_sources (registry, FALSE);
+  registry = grl_registry_get_default ();
+  all_sources = grl_registry_get_sources (registry, FALSE);
 
   for (sources_iter = all_sources;
        sources_iter;
diff --git a/src/grl-plugin-registry-priv.h b/src/grl-registry-priv.h
similarity index 62%
rename from src/grl-plugin-registry-priv.h
rename to src/grl-registry-priv.h
index c9844bc..4ea3f58 100644
--- a/src/grl-plugin-registry-priv.h
+++ b/src/grl-registry-priv.h
@@ -20,13 +20,18 @@
  *
  */
 
-#ifndef _GRL_PLUGIN_REGISTRY_PRIV_H_
-#define _GRL_PLUGIN_REGISTRY_PRIV_H_
+#ifndef _GRL_REGISTRY_PRIV_H_
+#define _GRL_REGISTRY_PRIV_H_
 
-#include <grl-plugin-registry.h>
+#include <grl-registry.h>
 
 void
-grl_plugin_registry_restrict_plugins (GrlPluginRegistry *registry,
-                                      gchar **plugins);
+grl_registry_restrict_plugins (GrlRegistry *registry,
+                               gchar **plugins);
 
-#endif /* _GRL_PLUGIN_REGISTRY_PRIV_H_ */
+GrlKeyID grl_registry_register_metadata_key_full (GrlRegistry *registry,
+                                                  GParamSpec *param_spec,
+                                                  GrlKeyID key,
+                                                  GError **error);
+
+#endif /* _GRL_REGISTRY_PRIV_H_ */
diff --git a/src/grl-plugin-registry.c b/src/grl-registry.c
similarity index 78%
rename from src/grl-plugin-registry.c
rename to src/grl-registry.c
index aff59b9..9eb70a8 100644
--- a/src/grl-plugin-registry.c
+++ b/src/grl-registry.c
@@ -22,23 +22,23 @@
  */
 
 /**
- * SECTION:grl-plugin-registry
+ * SECTION:grl-registry
  * @short_description: Grilo plugins loader and manager
  * @see_also: #GrlPlugin, #GrlSource
  *
  * The registry holds the metadata of a set of plugins.
  *
- * The #GrlPluginRegistry object is a list of plugins and some functions
+ * The #GrlRegistry object is a list of plugins and some functions
  * for dealing with them. Each #GrlPlugin is matched 1-1 with a file
  * on disk, and may or may not be loaded a given time. There only can be
- * a single instance of #GrlPluginRegistry (singleton pattern).
+ * a single instance of #GrlRegistry (singleton pattern).
  *
- * A #GrlPlugin can hold several data #GrlSource sources, and #GrlPluginRegistry
+ * A #GrlPlugin can hold several data #GrlSource sources, and #GrlRegistry
  * shall register each one of them.
  */
 
-#include "grl-plugin-registry.h"
-#include "grl-plugin-registry-priv.h"
+#include "grl-registry.h"
+#include "grl-registry-priv.h"
 #include "grl-plugin-priv.h"
 #include "grl-log.h"
 #include "grl-error.h"
@@ -47,8 +47,8 @@
 #include <gmodule.h>
 #include <libxml/parser.h>
 
-#define GRL_LOG_DOMAIN_DEFAULT  plugin_registry_log_domain
-GRL_LOG_DOMAIN(plugin_registry_log_domain);
+#define GRL_LOG_DOMAIN_DEFAULT  registry_log_domain
+GRL_LOG_DOMAIN(registry_log_domain);
 
 #define XML_ROOT_ELEMENT_NAME "plugin"
 
@@ -56,10 +56,10 @@ GRL_LOG_DOMAIN(plugin_registry_log_domain);
 
 #define GRL_PLUGIN_INFO_MODULE "module"
 
-#define GRL_PLUGIN_REGISTRY_GET_PRIVATE(object)                 \
+#define GRL_REGISTRY_GET_PRIVATE(object)                        \
   (G_TYPE_INSTANCE_GET_PRIVATE((object),                        \
-                               GRL_TYPE_PLUGIN_REGISTRY,        \
-                               GrlPluginRegistryPrivate))
+                               GRL_TYPE_REGISTRY,               \
+                               GrlRegistryPrivate))
 
 /* GQuark-like implementation, where we manually assign the first IDs. */
 struct KeyIDHandler {
@@ -68,7 +68,7 @@ struct KeyIDHandler {
   gint last_id;
 };
 
-struct _GrlPluginRegistryPrivate {
+struct _GrlRegistryPrivate {
   GHashTable *configs;
   GHashTable *plugins;
   GHashTable *sources;
@@ -81,10 +81,10 @@ struct _GrlPluginRegistryPrivate {
   struct KeyIDHandler key_id_handler;
 };
 
-static void grl_plugin_registry_setup_ranks (GrlPluginRegistry *registry);
+static void grl_registry_setup_ranks (GrlRegistry *registry);
 
-static void grl_plugin_registry_preload_plugins (GrlPluginRegistry *registry,
-                                                 GList **plugins_loaded);
+static void grl_registry_preload_plugins (GrlRegistry *registry,
+                                          GList **plugins_loaded);
 
 static void key_id_handler_init (struct KeyIDHandler *handler);
 
@@ -97,7 +97,7 @@ static const gchar *key_id_handler_get_name (struct KeyIDHandler *handler,
 static GrlKeyID key_id_handler_add (struct KeyIDHandler *handler,
                                     GrlKeyID key, const gchar *key_name);
 
-/* ================ GrlPluginRegistry GObject ================ */
+/* ================ GrlRegistry GObject ================ */
 
 enum {
   SIG_SOURCE_ADDED,
@@ -106,15 +106,15 @@ enum {
 };
 static gint registry_signals[SIG_LAST];
 
-G_DEFINE_TYPE (GrlPluginRegistry, grl_plugin_registry, G_TYPE_OBJECT);
+G_DEFINE_TYPE (GrlRegistry, grl_registry, G_TYPE_OBJECT);
 
 static void
-grl_plugin_registry_class_init (GrlPluginRegistryClass *klass)
+grl_registry_class_init (GrlRegistryClass *klass)
 {
-  g_type_class_add_private (klass, sizeof (GrlPluginRegistryPrivate));
+  g_type_class_add_private (klass, sizeof (GrlRegistryPrivate));
 
   /**
-   * GrlPluginRegistry::source-added:
+   * GrlRegistry::source-added:
    * @registry: the registry
    * @source: the source that has been added
    *
@@ -131,7 +131,7 @@ grl_plugin_registry_class_init (GrlPluginRegistryClass *klass)
 		 G_TYPE_NONE, 1, GRL_TYPE_SOURCE);
 
   /**
-   * GrlPluginRegistry::source-removed:
+   * GrlRegistry::source-removed:
    * @registry: the registry
    * @source: the source that has been removed
    *
@@ -149,9 +149,9 @@ grl_plugin_registry_class_init (GrlPluginRegistryClass *klass)
 }
 
 static void
-grl_plugin_registry_init (GrlPluginRegistry *registry)
+grl_registry_init (GrlRegistry *registry)
 {
-  registry->priv = GRL_PLUGIN_REGISTRY_GET_PRIVATE (registry);
+  registry->priv = GRL_REGISTRY_GET_PRIVATE (registry);
 
   registry->priv->configs =
     g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
@@ -166,13 +166,13 @@ grl_plugin_registry_init (GrlPluginRegistry *registry)
 
   key_id_handler_init (&registry->priv->key_id_handler);
 
-  grl_plugin_registry_setup_ranks (registry);
+  grl_registry_setup_ranks (registry);
 }
 
 /* ================ Utitilies ================ */
 
 static void
-config_source_rank (GrlPluginRegistry *registry,
+config_source_rank (GrlRegistry *registry,
                     const gchar *source_id,
                     gint rank)
 {
@@ -183,7 +183,7 @@ config_source_rank (GrlPluginRegistry *registry,
 }
 
 static void
-set_source_rank (GrlPluginRegistry *registry, GrlSource *source)
+set_source_rank (GrlRegistry *registry, GrlSource *source)
 {
   gint rank;
 
@@ -198,7 +198,7 @@ set_source_rank (GrlPluginRegistry *registry, GrlSource *source)
 }
 
 static void
-grl_plugin_registry_setup_ranks (GrlPluginRegistry *registry)
+grl_registry_setup_ranks (GrlRegistry *registry)
 {
   const gchar *ranks_env;
   gchar **rank_specs;
@@ -301,7 +301,7 @@ get_info_from_plugin_xml (const gchar *xml_path)
 }
 
 static gboolean
-activate_plugin (GrlPluginRegistry *registry,
+activate_plugin (GrlRegistry *registry,
                  GrlPlugin *plugin,
                  GError **error)
 {
@@ -341,9 +341,9 @@ activate_plugin (GrlPluginRegistry *registry,
 }
 
 static GrlPlugin *
-grl_plugin_registry_preload_plugin (GrlPluginRegistry *registry,
-                                    const gchar *dirname,
-                                    const gchar *plugin_info_filename)
+grl_registry_preload_plugin (GrlRegistry *registry,
+                             const gchar *dirname,
+                             const gchar *plugin_info_filename)
 {
   GHashTable *info;
   GrlPlugin *plugin;
@@ -414,9 +414,9 @@ grl_plugin_registry_preload_plugin (GrlPluginRegistry *registry,
 }
 
 static void
-grl_plugin_registry_preload_plugins_directory (GrlPluginRegistry *registry,
-                                               const gchar *directory,
-                                               GList **plugins_loaded)
+grl_registry_preload_plugins_directory (GrlRegistry *registry,
+                                        const gchar *directory,
+                                        GList **plugins_loaded)
 {
   GDir *dir;
   GError *error = NULL;
@@ -433,7 +433,7 @@ grl_plugin_registry_preload_plugins_directory (GrlPluginRegistry *registry,
   }
 
   while ((entry = g_dir_read_name (dir)) != NULL) {
-    plugin = grl_plugin_registry_preload_plugin (registry, directory, entry);
+    plugin = grl_registry_preload_plugin (registry, directory, entry);
     if (plugins_loaded && plugin) {
       *plugins_loaded = g_list_prepend (*plugins_loaded, plugin);
     }
@@ -443,8 +443,8 @@ grl_plugin_registry_preload_plugins_directory (GrlPluginRegistry *registry,
 }
 
 static void
-grl_plugin_registry_preload_plugins (GrlPluginRegistry *registry,
-                                     GList **plugins_loaded)
+grl_registry_preload_plugins (GrlRegistry *registry,
+                              GList **plugins_loaded)
 {
   GSList *plugin_dir;
   GList *plugins_directory_loaded = NULL;
@@ -453,22 +453,22 @@ grl_plugin_registry_preload_plugins (GrlPluginRegistry *registry,
        plugin_dir;
        plugin_dir = g_slist_next (plugin_dir)) {
     if (plugins_loaded) {
-      grl_plugin_registry_preload_plugins_directory (registry,
-                                                     plugin_dir->data,
-                                                     &plugins_directory_loaded);
+      grl_registry_preload_plugins_directory (registry,
+                                              plugin_dir->data,
+                                              &plugins_directory_loaded);
       *plugins_loaded = g_list_concat (*plugins_loaded, plugins_directory_loaded);
       plugins_directory_loaded = NULL;
     } else {
-      grl_plugin_registry_preload_plugins_directory (registry,
-                                                     plugin_dir->data,
-                                                     NULL);
+      grl_registry_preload_plugins_directory (registry,
+                                              plugin_dir->data,
+                                              NULL);
     }
   }
 }
 
 static gboolean
-grl_plugin_registry_load_list (GrlPluginRegistry *registry,
-                               GList *plugin_list)
+grl_registry_load_list (GrlRegistry *registry,
+                        GList *plugin_list)
 {
   GrlPlugin *plugin;
   gboolean loaded_one = FALSE;
@@ -478,9 +478,9 @@ grl_plugin_registry_load_list (GrlPluginRegistry *registry,
     if (grl_plugin_get_module (plugin)) {
       loaded_one |= activate_plugin (registry, plugin, NULL);
     } else {
-      loaded_one |= grl_plugin_registry_load (registry,
-                                              grl_plugin_get_filename (plugin),
-                                              NULL);
+      loaded_one |= grl_registry_load (registry,
+                                       grl_plugin_get_filename (plugin),
+                                       NULL);
     }
     plugin_list = g_list_next (plugin_list);
   }
@@ -582,20 +582,20 @@ key_id_handler_get_all_keys (struct KeyIDHandler *handler)
 /* ================ PRIVATE API ================ */
 
 /**
- * grl_plugin_registry_restrict_plugins:
+ * grl_registry_restrict_plugins:
  * @registry: the registry instance
  * @plugins: a @NULL-terminated array of plugins identifiers
  *
  * Restrict the plugins that application sees to this list.
  *
  * Other plugins will not be available for the application, unless it uses
- * directly #grl_plugin_registry_load() function.
+ * directly #grl_registry_load() function.
  **/
 void
-grl_plugin_registry_restrict_plugins (GrlPluginRegistry *registry,
-                                      gchar **plugins)
+grl_registry_restrict_plugins (GrlRegistry *registry,
+                               gchar **plugins)
 {
-  g_return_if_fail (GRL_IS_PLUGIN_REGISTRY (registry));
+  g_return_if_fail (GRL_IS_REGISTRY (registry));
   g_return_if_fail (plugins);
 
   /* Free previous list */
@@ -615,7 +615,7 @@ grl_plugin_registry_restrict_plugins (GrlPluginRegistry *registry,
 /* ================ PUBLIC API ================ */
 
 /**
- * grl_plugin_registry_get_default:
+ * grl_registry_get_default:
  *
  * As the registry is designed to work as a singleton, this
  * method is in charge of creating the only instance or
@@ -627,20 +627,20 @@ grl_plugin_registry_restrict_plugins (GrlPluginRegistry *registry,
  *
  * Since: 0.1.6
  */
-GrlPluginRegistry *
-grl_plugin_registry_get_default (void)
+GrlRegistry *
+grl_registry_get_default (void)
 {
-  static GrlPluginRegistry *registry = NULL;
+  static GrlRegistry *registry = NULL;
 
   if (!registry) {
-    registry = g_object_new (GRL_TYPE_PLUGIN_REGISTRY, NULL);
+    registry = g_object_new (GRL_TYPE_REGISTRY, NULL);
   }
 
   return registry;
 }
 
 /**
- * grl_plugin_registry_register_source:
+ * grl_registry_register_source:
  * @registry: the registry instance
  * @plugin: the plugin which owns the source
  * @source: the source to register
@@ -653,14 +653,14 @@ grl_plugin_registry_get_default (void)
  * Since: 0.1.7
  */
 gboolean
-grl_plugin_registry_register_source (GrlPluginRegistry *registry,
-                                     GrlPlugin *plugin,
-                                     GrlSource *source,
-                                     GError **error)
+grl_registry_register_source (GrlRegistry *registry,
+                              GrlPlugin *plugin,
+                              GrlSource *source,
+                              GError **error)
 {
   gchar *id;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
   g_return_val_if_fail (GRL_IS_PLUGIN (plugin), FALSE);
   g_return_val_if_fail (GRL_IS_SOURCE (source), FALSE);
 
@@ -687,7 +687,7 @@ grl_plugin_registry_register_source (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_unregister_source:
+ * grl_registry_unregister_source:
  * @registry: the registry instance
  * @source: the source to unregister
  * @error: error return location or @NULL to ignore
@@ -699,14 +699,14 @@ grl_plugin_registry_register_source (GrlPluginRegistry *registry,
  * Since: 0.1.7
  */
 gboolean
-grl_plugin_registry_unregister_source (GrlPluginRegistry *registry,
-                                       GrlSource *source,
-                                       GError **error)
+grl_registry_unregister_source (GrlRegistry *registry,
+                                GrlSource *source,
+                                GError **error)
 {
   gchar *id;
   gboolean ret = TRUE;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
   g_return_val_if_fail (GRL_IS_SOURCE (source), FALSE);
 
   g_object_get (source, "source-id", &id, NULL);
@@ -730,7 +730,7 @@ grl_plugin_registry_unregister_source (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_add_directory:
+ * grl_registry_add_directory:
  * @registry: the registry instance
  * @path: a path with plugins
  *
@@ -739,10 +739,10 @@ grl_plugin_registry_unregister_source (GrlPluginRegistry *registry,
  * Since: 0.1.6
  **/
 void
-grl_plugin_registry_add_directory (GrlPluginRegistry *registry,
-                                   const gchar *path)
+grl_registry_add_directory (GrlRegistry *registry,
+                            const gchar *path)
 {
-  g_return_if_fail (GRL_IS_PLUGIN_REGISTRY (registry));
+  g_return_if_fail (GRL_IS_REGISTRY (registry));
   g_return_if_fail (path);
 
   /* Use append instead of prepend so plugins are loaded in the same order as
@@ -753,7 +753,7 @@ grl_plugin_registry_add_directory (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_load:
+ * grl_registry_load:
  * @registry: the registry instance
  * @library_filename: the path to the so file
  * @error: error return location or @NULL to ignore
@@ -765,9 +765,9 @@ grl_plugin_registry_add_directory (GrlPluginRegistry *registry,
  * Since: 0.1.7
  */
 gboolean
-grl_plugin_registry_load (GrlPluginRegistry *registry,
-                          const gchar *library_filename,
-                          GError **error)
+grl_registry_load (GrlRegistry *registry,
+                   const gchar *library_filename,
+                   GError **error)
 {
   GModule *module;
   GrlPluginDescriptor *plugin_desc;
@@ -776,7 +776,7 @@ grl_plugin_registry_load (GrlPluginRegistry *registry,
   gchar *info_dirname;
   gchar *info_filename;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
 
   module = g_module_open (library_filename, G_MODULE_BIND_LAZY);
   if (!module) {
@@ -816,7 +816,7 @@ grl_plugin_registry_load (GrlPluginRegistry *registry,
   if (!plugin) {
     info_dirname = g_path_get_dirname (library_filename);
     info_filename = g_strconcat (plugin_desc->plugin_id, "." GRL_PLUGIN_INFO_SUFFIX, NULL);
-    plugin = grl_plugin_registry_preload_plugin (registry, info_dirname, info_filename);
+    plugin = grl_registry_preload_plugin (registry, info_dirname, info_filename);
     g_free (info_dirname);
     g_free (info_filename);
     if (!plugin) {
@@ -858,7 +858,7 @@ grl_plugin_registry_load (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_load_directory:
+ * grl_registry_load_directory:
  * @registry: the registry instance
  * @path: the path to the directory
  * @error: error return location or @NULL to ignore
@@ -871,19 +871,19 @@ grl_plugin_registry_load (GrlPluginRegistry *registry,
  * Since: 0.1.7
  */
 gboolean
-grl_plugin_registry_load_directory (GrlPluginRegistry *registry,
-                                    const gchar *path,
-                                    GError **error)
+grl_registry_load_directory (GrlRegistry *registry,
+                             const gchar *path,
+                             GError **error)
 {
   GList *preloaded_plugins = NULL;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
 
   /* Preload plugins */
-  grl_plugin_registry_preload_plugins_directory (registry, path, &preloaded_plugins);
+  grl_registry_preload_plugins_directory (registry, path, &preloaded_plugins);
 
   /* Load the plugins */
-  if (!grl_plugin_registry_load_list (registry, preloaded_plugins)) {
+  if (!grl_registry_load_list (registry, preloaded_plugins)) {
     GRL_WARNING ("No plugins loaded from directory '%s'", path);
   }
   g_list_free (preloaded_plugins);
@@ -892,7 +892,7 @@ grl_plugin_registry_load_directory (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_load_all:
+ * grl_registry_load_all:
  * @registry: the registry instance
  * @error: error return location or @NULL to ignore
  *
@@ -908,22 +908,22 @@ grl_plugin_registry_load_directory (GrlPluginRegistry *registry,
  * Since: 0.1.1
  */
 gboolean
-grl_plugin_registry_load_all (GrlPluginRegistry *registry, GError **error)
+grl_registry_load_all (GrlRegistry *registry, GError **error)
 {
   GList *all_plugins;
   gboolean loaded_one;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), TRUE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), TRUE);
 
   /* Preload all plugins */
   if (!registry->priv->all_plugins_preloaded) {
-    grl_plugin_registry_preload_plugins (registry, NULL);
+    grl_registry_preload_plugins (registry, NULL);
     registry->priv->all_plugins_preloaded = TRUE;
   }
 
   /* Now load all plugins */
   all_plugins = g_hash_table_get_values (registry->priv->plugins);
-  loaded_one = grl_plugin_registry_load_list (registry, all_plugins);
+  loaded_one = grl_registry_load_list (registry, all_plugins);
 
   g_list_free (all_plugins);
 
@@ -939,7 +939,7 @@ grl_plugin_registry_load_all (GrlPluginRegistry *registry, GError **error)
 }
 
 /**
- * grl_plugin_registry_load_by_id:
+ * grl_registry_load_by_id:
  * @registry: the registry instance
  * @plugin_id: plugin identifier
  * @error: error return location or @NULL to ignore
@@ -955,20 +955,20 @@ grl_plugin_registry_load_all (GrlPluginRegistry *registry, GError **error)
  * Since: 0.1.14
  **/
 gboolean
-grl_plugin_registry_load_by_id (GrlPluginRegistry *registry,
-                                const gchar *plugin_id,
-                                GError **error)
+grl_registry_load_by_id (GrlRegistry *registry,
+                         const gchar *plugin_id,
+                         GError **error)
 {
   GrlPlugin *plugin;
   gboolean is_loaded;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
   g_return_val_if_fail (plugin_id, FALSE);
 
 
   /* Preload all plugins */
   if (!registry->priv->all_plugins_preloaded) {
-    grl_plugin_registry_preload_plugins (registry, NULL);
+    grl_registry_preload_plugins (registry, NULL);
     registry->priv->all_plugins_preloaded = FALSE;
   }
 
@@ -995,11 +995,11 @@ grl_plugin_registry_load_by_id (GrlPluginRegistry *registry,
   }
 
   /* Load plugin */
-  return grl_plugin_registry_load (registry, grl_plugin_get_filename (plugin), error);
+  return grl_registry_load (registry, grl_plugin_get_filename (plugin), error);
 }
 
 /**
- * grl_plugin_registry_lookup_source:
+ * grl_registry_lookup_source:
  * @registry: the registry instance
  * @source_id: the id of a source
  *
@@ -1010,10 +1010,10 @@ grl_plugin_registry_load_by_id (GrlPluginRegistry *registry,
  * Since: 0.1.1
  */
 GrlSource *
-grl_plugin_registry_lookup_source (GrlPluginRegistry *registry,
-                                   const gchar *source_id)
+grl_registry_lookup_source (GrlRegistry *registry,
+                            const gchar *source_id)
 {
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), NULL);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), NULL);
   g_return_val_if_fail (source_id != NULL, NULL);
 
   return (GrlSource *) g_hash_table_lookup (registry->priv->sources,
@@ -1021,7 +1021,7 @@ grl_plugin_registry_lookup_source (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_get_sources:
+ * grl_registry_get_sources:
  * @registry: the registry instance
  * @ranked: whether the returned list shall be returned ordered by rank
  *
@@ -1036,14 +1036,14 @@ grl_plugin_registry_lookup_source (GrlPluginRegistry *registry,
  * Since: 0.1.7
  */
 GList *
-grl_plugin_registry_get_sources (GrlPluginRegistry *registry,
-				 gboolean ranked)
+grl_registry_get_sources (GrlRegistry *registry,
+                          gboolean ranked)
 {
   GHashTableIter iter;
   GList *source_list = NULL;
   GrlSource *current_source;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), NULL);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), NULL);
 
   g_hash_table_iter_init (&iter, registry->priv->sources);
   while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &current_source)) {
@@ -1058,7 +1058,7 @@ grl_plugin_registry_get_sources (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_get_sources_by_operations:
+ * grl_registry_get_sources_by_operations:
  * @registry: the registry instance
  * @ops: a bitwise mangle of the requested operations.
  * @ranked: whether the returned list shall be returned ordered by rank
@@ -1075,15 +1075,15 @@ grl_plugin_registry_get_sources (GrlPluginRegistry *registry,
  * Since: 0.1.7
  */
 GList *
-grl_plugin_registry_get_sources_by_operations (GrlPluginRegistry *registry,
-                                               GrlSupportedOps ops,
-                                               gboolean ranked)
+grl_registry_get_sources_by_operations (GrlRegistry *registry,
+                                        GrlSupportedOps ops,
+                                        gboolean ranked)
 {
   GHashTableIter iter;
   GList *source_list = NULL;
   GrlSource *source;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), NULL);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), NULL);
 
   g_hash_table_iter_init (&iter, registry->priv->sources);
   while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &source)) {
@@ -1103,7 +1103,7 @@ grl_plugin_registry_get_sources_by_operations (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_lookup_plugin:
+ * grl_registry_lookup_plugin:
  * @registry: the registry instance
  * @plugin_id: the id of a plugin
  *
@@ -1112,10 +1112,10 @@ grl_plugin_registry_get_sources_by_operations (GrlPluginRegistry *registry,
  * Returns: (transfer none): The plugin found
  **/
 GrlPlugin *
-grl_plugin_registry_lookup_plugin (GrlPluginRegistry *registry,
-                                   const gchar *plugin_id)
+grl_registry_lookup_plugin (GrlRegistry *registry,
+                            const gchar *plugin_id)
 {
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), NULL);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), NULL);
   g_return_val_if_fail (plugin_id, NULL);
 
   return (GrlPlugin *) g_hash_table_lookup (registry->priv->plugins,
@@ -1123,7 +1123,7 @@ grl_plugin_registry_lookup_plugin (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_get_plugins:
+ * grl_registry_get_plugins:
  * @registry: the registry instance
  * @only_loaded: whether the returned list shall include only loaded plugins
  *
@@ -1137,15 +1137,15 @@ grl_plugin_registry_lookup_plugin (GrlPluginRegistry *registry,
  * or freed. Use g_list_free() when done using the list.
  **/
 GList *
-grl_plugin_registry_get_plugins (GrlPluginRegistry *registry,
-                                 gboolean only_loaded)
+grl_registry_get_plugins (GrlRegistry *registry,
+                          gboolean only_loaded)
 {
   GList *plugin_list = NULL;
   GHashTableIter iter;
   GrlPlugin *current_plugin;
   gboolean is_loaded;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), NULL);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), NULL);
 
   if (only_loaded) {
     g_hash_table_iter_init (&iter, registry->priv->plugins);
@@ -1163,7 +1163,7 @@ grl_plugin_registry_get_plugins (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_unload:
+ * grl_registry_unload:
  * @registry: the registry instance
  * @plugin_id: the identifier of the plugin
  * @error: error return location or @NULL to ignore
@@ -1176,17 +1176,17 @@ grl_plugin_registry_get_plugins (GrlPluginRegistry *registry,
  * Since: 0.1.7
  */
 gboolean
-grl_plugin_registry_unload (GrlPluginRegistry *registry,
-                            const gchar *plugin_id,
-                            GError **error)
+grl_registry_unload (GrlRegistry *registry,
+                     const gchar *plugin_id,
+                     GError **error)
 {
   GrlPlugin *plugin;
   GList *sources = NULL;
   GList *sources_iter;
 
-  GRL_DEBUG ("grl_plugin_registry_unload: %s", plugin_id);
+  GRL_DEBUG ("grl_registry_unload: %s", plugin_id);
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
   g_return_val_if_fail (plugin_id != NULL, FALSE);
 
   /* First check the plugin is valid  */
@@ -1202,13 +1202,13 @@ grl_plugin_registry_unload (GrlPluginRegistry *registry,
 
   /* Second, shut down any sources spawned by this plugin */
   GRL_DEBUG ("Shutting down sources spawned by '%s'", plugin_id);
-  sources = grl_plugin_registry_get_sources (registry, FALSE);
+  sources = grl_registry_get_sources (registry, FALSE);
 
   for (sources_iter = sources; sources_iter;
       sources_iter = g_list_next (sources_iter)) {
     GrlSource *source = GRL_SOURCE (sources_iter->data);
     if (grl_source_get_plugin (source) == plugin) {
-      grl_plugin_registry_unregister_source (registry, source, NULL);
+      grl_registry_unregister_source (registry, source, NULL);
     }
   }
   g_list_free (sources);
@@ -1225,7 +1225,7 @@ grl_plugin_registry_unload (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_register_metadata_key:
+ * grl_registry_register_metadata_key:
  * @registry: The plugin registry
  * @param_spec: The definition of the key to register
  * @error: error return location or @NULL to ignore
@@ -1237,34 +1237,34 @@ grl_plugin_registry_unload (GrlPluginRegistry *registry,
  * Since: 0.1.7
  */
 GrlKeyID
-grl_plugin_registry_register_metadata_key (GrlPluginRegistry *registry,
-                                           GParamSpec *param_spec,
-                                           GError **error)
+grl_registry_register_metadata_key (GrlRegistry *registry,
+                                    GParamSpec *param_spec,
+                                    GError **error)
 {
-  return grl_plugin_registry_register_metadata_key_full (registry,
-                                                         param_spec,
-                                                         GRL_METADATA_KEY_INVALID,
-                                                         error);
+  return grl_registry_register_metadata_key_full (registry,
+                                                  param_spec,
+                                                  GRL_METADATA_KEY_INVALID,
+                                                  error);
 }
 
 /*
- * grl_plugin_registry_register_metadata_key_full:
+ * grl_registry_register_metadata_key_full:
  *
  * This is an internal method only meant to be used to register core
  * keys.
  *
  * For internal use. Plugin developers should use
- * grl_plugin_registry_register_metadata_key().
+ * grl_registry_register_metadata_key().
  */
 GrlKeyID
-grl_plugin_registry_register_metadata_key_full (GrlPluginRegistry *registry,
-                                                GParamSpec *param_spec,
-                                                GrlKeyID key,
-                                                GError **error)
+grl_registry_register_metadata_key_full (GrlRegistry *registry,
+                                         GParamSpec *param_spec,
+                                         GrlKeyID key,
+                                         GError **error)
 {
   const gchar *key_name;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), 0);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), 0);
   g_return_val_if_fail (G_IS_PARAM_SPEC (param_spec), 0);
   GrlKeyID registered_key;
 
@@ -1297,7 +1297,7 @@ grl_plugin_registry_register_metadata_key_full (GrlPluginRegistry *registry,
 
 
 /**
- * grl_plugin_registry_register_metadata_key_relation:
+ * grl_registry_register_metadata_key_relation:
  * @registry: the plugin registry
  * @key1: key involved in relationship
  * @key2: key involved in relationship
@@ -1315,14 +1315,14 @@ grl_plugin_registry_register_metadata_key_full (GrlPluginRegistry *registry,
  * Since: 0.1.10
  */
 void
-grl_plugin_registry_register_metadata_key_relation (GrlPluginRegistry *registry,
-                                                    GrlKeyID key1,
-                                                    GrlKeyID key2)
+grl_registry_register_metadata_key_relation (GrlRegistry *registry,
+                                             GrlKeyID key1,
+                                             GrlKeyID key2)
 {
   GList *key1_partners, *key1_peer;
   GList *key2_partners;
 
-  g_return_if_fail (GRL_IS_PLUGIN_REGISTRY (registry));
+  g_return_if_fail (GRL_IS_REGISTRY (registry));
   g_return_if_fail (key1);
   g_return_if_fail (key2);
 
@@ -1350,7 +1350,7 @@ grl_plugin_registry_register_metadata_key_relation (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_lookup_metadata_key:
+ * grl_registry_lookup_metadata_key:
  * @registry: the registry instance
  * @key_name: the key name
  *
@@ -1361,17 +1361,17 @@ grl_plugin_registry_register_metadata_key_relation (GrlPluginRegistry *registry,
  * Since: 0.1.6
  */
 GrlKeyID
-grl_plugin_registry_lookup_metadata_key (GrlPluginRegistry *registry,
-                                         const gchar *key_name)
+grl_registry_lookup_metadata_key (GrlRegistry *registry,
+                                  const gchar *key_name)
 {
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), 0);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), 0);
   g_return_val_if_fail (key_name, 0);
 
   return key_id_handler_get_key (&registry->priv->key_id_handler, key_name);
 }
 
 /**
- * grl_plugin_registry_lookup_metadata_key_name:
+ * grl_registry_lookup_metadata_key_name:
  * @registry: the registry instance
  * @key: a metadata key
  *
@@ -1380,16 +1380,16 @@ grl_plugin_registry_lookup_metadata_key (GrlPluginRegistry *registry,
  * Returns: metadata key name, or @NULL if not found
  */
 const gchar *
-grl_plugin_registry_lookup_metadata_key_name (GrlPluginRegistry *registry,
-                                              GrlKeyID key)
+grl_registry_lookup_metadata_key_name (GrlRegistry *registry,
+                                       GrlKeyID key)
 {
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), 0);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), 0);
 
   return key_id_handler_get_name (&registry->priv->key_id_handler, key);
 }
 
 /**
- * grl_plugin_registry_lookup_metadata_key_desc:
+ * grl_registry_lookup_metadata_key_desc:
  * @registry: the registry instance
  * @key: a metadata key
  *
@@ -1398,13 +1398,13 @@ grl_plugin_registry_lookup_metadata_key_name (GrlPluginRegistry *registry,
  * Returns: metadata key description, or @NULL if not found
  */
 const gchar *
-grl_plugin_registry_lookup_metadata_key_desc (GrlPluginRegistry *registry,
-                                              GrlKeyID key)
+grl_registry_lookup_metadata_key_desc (GrlRegistry *registry,
+                                       GrlKeyID key)
 {
   const gchar *key_name;
   GParamSpec *key_pspec;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), 0);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), 0);
 
   key_name = key_id_handler_get_name (&registry->priv->key_id_handler, key);
   if (!key_name) {
@@ -1422,7 +1422,7 @@ grl_plugin_registry_lookup_metadata_key_desc (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_lookup_metadata_key_type:
+ * grl_registry_lookup_metadata_key_type:
  * @registry: the registry instance
  * @key: a metadata key
  *
@@ -1431,13 +1431,13 @@ grl_plugin_registry_lookup_metadata_key_desc (GrlPluginRegistry *registry,
  * Returns: metadata key type, or @G_TYPE_INVALID if not found
  */
 GType
-grl_plugin_registry_lookup_metadata_key_type (GrlPluginRegistry *registry,
-                                              GrlKeyID key)
+grl_registry_lookup_metadata_key_type (GrlRegistry *registry,
+                                       GrlKeyID key)
 {
   const gchar *key_name;
   GParamSpec *key_pspec;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), 0);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), 0);
 
   key_name = key_id_handler_get_name (&registry->priv->key_id_handler, key);
   if (!key_name) {
@@ -1455,7 +1455,7 @@ grl_plugin_registry_lookup_metadata_key_type (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_metadata_key_validate:
+ * grl_registry_metadata_key_validate:
  * @registry: the registry instance
  * @key: a metadata key
  * @value: value to be validate
@@ -1467,14 +1467,14 @@ grl_plugin_registry_lookup_metadata_key_type (GrlPluginRegistry *registry,
  * Returns: %TRUE if complies
  **/
 gboolean
-grl_plugin_registry_metadata_key_validate (GrlPluginRegistry *registry,
-                                           GrlKeyID key,
-                                           GValue *value)
+grl_registry_metadata_key_validate (GrlRegistry *registry,
+                                    GrlKeyID key,
+                                    GValue *value)
 {
   const gchar *key_name;
   GParamSpec *key_pspec;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
   g_return_val_if_fail (G_IS_VALUE (value), FALSE);
 
   key_name = key_id_handler_get_name (&registry->priv->key_id_handler, key);
@@ -1493,7 +1493,7 @@ grl_plugin_registry_metadata_key_validate (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_lookup_metadata_key_relation:
+ * grl_registry_lookup_metadata_key_relation:
  * @registry: the registry instance
  * @key: a metadata key
  *
@@ -1507,16 +1507,16 @@ grl_plugin_registry_metadata_key_validate (GrlPluginRegistry *registry,
  * Since: 0.1.10
  **/
 const GList *
-grl_plugin_registry_lookup_metadata_key_relation (GrlPluginRegistry *registry,
-                                                  GrlKeyID key)
+grl_registry_lookup_metadata_key_relation (GrlRegistry *registry,
+                                           GrlKeyID key)
 {
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), NULL);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), NULL);
 
   return g_hash_table_lookup (registry->priv->related_keys, GRLKEYID_TO_POINTER (key));
 }
 
 /**
- * grl_plugin_registry_get_metadata_keys:
+ * grl_registry_get_metadata_keys:
  * @registry: the registry instance
  *
  * Returns a list with all registered keys in system.
@@ -1528,13 +1528,13 @@ grl_plugin_registry_lookup_metadata_key_relation (GrlPluginRegistry *registry,
  * Since: 0.1.6
  **/
 GList *
-grl_plugin_registry_get_metadata_keys (GrlPluginRegistry *registry)
+grl_registry_get_metadata_keys (GrlRegistry *registry)
 {
   return key_id_handler_get_all_keys (&registry->priv->key_id_handler);
 }
 
 /**
- * grl_plugin_registry_add_config:
+ * grl_registry_add_config:
  * @registry: the registry instance
  * @config: (transfer full): a configuration set
  * @error: error return location or @NULL to ignore
@@ -1544,15 +1544,15 @@ grl_plugin_registry_get_metadata_keys (GrlPluginRegistry *registry)
  * Since: 0.1.7
  */
 gboolean
-grl_plugin_registry_add_config (GrlPluginRegistry *registry,
-                                GrlConfig *config,
-                                GError **error)
+grl_registry_add_config (GrlRegistry *registry,
+                         GrlConfig *config,
+                         GError **error)
 {
   gchar *plugin_id;
   GList *configs = NULL;
 
   g_return_val_if_fail (config != NULL, FALSE);
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
 
   plugin_id = grl_config_get_plugin (config);
   if (!plugin_id) {
@@ -1582,7 +1582,7 @@ grl_plugin_registry_add_config (GrlPluginRegistry *registry,
 }
 
 /**
- * grl_plugin_registry_add_config_from_file:
+ * grl_registry_add_config_from_file:
  * @registry: the registry instance
  * @config_file: a key-value file containing the configuration
  * @error: error return location or @NULL to ignore
@@ -1594,9 +1594,9 @@ grl_plugin_registry_add_config (GrlPluginRegistry *registry,
  * Since: 0.1.7
  **/
 gboolean
-grl_plugin_registry_add_config_from_file (GrlPluginRegistry *registry,
-                                          const gchar *config_file,
-                                          GError **error)
+grl_registry_add_config_from_file (GrlRegistry *registry,
+                                   const gchar *config_file,
+                                   GError **error)
 {
   GError *load_error = NULL;
   GKeyFile *keyfile;
@@ -1607,7 +1607,7 @@ grl_plugin_registry_add_config_from_file (GrlPluginRegistry *registry,
   gchar **plugins;
   gchar *value;
 
-  g_return_val_if_fail (GRL_IS_PLUGIN_REGISTRY (registry), FALSE);
+  g_return_val_if_fail (GRL_IS_REGISTRY (registry), FALSE);
   g_return_val_if_fail (config_file, FALSE);
 
   keyfile = g_key_file_new ();
@@ -1631,7 +1631,7 @@ grl_plugin_registry_add_config_from_file (GrlPluginRegistry *registry,
           g_free (value);
         }
       }
-      grl_plugin_registry_add_config (registry, config, NULL);
+      grl_registry_add_config (registry, config, NULL);
       g_strfreev (keys);
     }
     g_strfreev (plugins);
diff --git a/src/grl-registry.h b/src/grl-registry.h
new file mode 100644
index 0000000..6632846
--- /dev/null
+++ b/src/grl-registry.h
@@ -0,0 +1,272 @@
+/*
+ * Copyright (C) 2010, 2011 Igalia S.L.
+ *
+ * Contact: Iago Toral Quiroga <itoral igalia com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+#if !defined (_GRILO_H_INSIDE_) && !defined (GRILO_COMPILATION)
+#error "Only <grilo.h> can be included directly."
+#endif
+
+#ifndef _GRL_REGISTRY_H_
+#define _GRL_REGISTRY_H_
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gmodule.h>
+
+#include <grl-source.h>
+#include <grl-metadata-key.h>
+#include <grl-config.h>
+#include <grl-definitions.h>
+#include <grl-plugin.h>
+
+#define GRL_PLUGIN_PATH_VAR "GRL_PLUGIN_PATH"
+#define GRL_PLUGIN_LIST_VAR "GRL_PLUGIN_LIST"
+#define GRL_PLUGIN_RANKS_VAR "GRL_PLUGIN_RANKS"
+
+/* Macros */
+
+#define GRL_TYPE_REGISTRY                       \
+  (grl_registry_get_type ())
+
+#define GRL_REGISTRY(obj)                                       \
+  (G_TYPE_CHECK_INSTANCE_CAST ((obj),                           \
+                               GRL_TYPE_REGISTRY,               \
+                               GrlRegistry))
+
+#define GRL_IS_REGISTRY(obj)                                    \
+  (G_TYPE_CHECK_INSTANCE_TYPE ((obj),                           \
+                               GRL_TYPE_REGISTRY))
+
+#define GRL_REGISTRY_CLASS(klass)                       \
+  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
+                           GRL_TYPE_REGISTRY,           \
+                           GrlRegistryClass))
+
+#define GRL_IS_REGISTRY_CLASS(klass)                    \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
+                           GRL_TYPE_REGISTRY))
+
+#define GRL_REGISTRY_GET_CLASS(obj)                     \
+  (G_TYPE_INSTANCE_GET_CLASS ((obj),                    \
+                              GRL_TYPE_REGISTRY,        \
+                              GrlRegistryClass))
+
+/* Plugin registration */
+
+/**
+ * GRL_PLUGIN_REGISTER:
+ * @init: the module initialization. It shall instantiate
+ * the #GrlPlugins provided
+ * @deinit: (allow-none): function to execute when the registry needs to dispose the module
+ * @id: the module identifier
+ *
+ * Define the boilerplate for loadable modules. Defines a new module
+ * descriptor which provides a set of #GrlPlugins
+ */
+#define GRL_PLUGIN_REGISTER(init,                                    \
+                            deinit,                                  \
+                            id)                                      \
+  G_MODULE_EXPORT GrlPluginDescriptor GRL_PLUGIN_DESCRIPTOR = {		\
+    .plugin_id = id,                                                 \
+    .plugin_init = init,                                             \
+    .plugin_deinit = deinit,                                         \
+    .module = NULL                                                   \
+  }
+
+/* Plugin descriptor */
+
+typedef struct _GrlRegistry GrlRegistry;
+
+typedef struct _GrlPluginDescriptor  GrlPluginDescriptor;
+
+/**
+* GrlPluginDescriptor:
+* @plugin_id: the module identifier
+* @plugin_init: the module initialization. It shall instantiate
+* the #GrlPlugins provided
+* @plugin_deinit: function to execute when the registry needs
+* to dispose the module.
+* @module: the #GModule instance.
+*
+* This structure is used for the module loader
+*/
+struct _GrlPluginDescriptor {
+  gchar *plugin_id;
+  gboolean (*plugin_init) (GrlRegistry *, GrlPlugin *, GList *);
+  void (*plugin_deinit) (GrlPlugin *);
+  GModule *module;
+
+  /*< private >*/
+  gpointer _grl_reserved[GRL_PADDING];
+};
+
+/* Plugin ranks */
+
+/**
+ * GrlRank:
+ * @GRL_RANK_LOWEST: will be chosen last or not at all
+ * @GRL_RANK_LOW: unlikely to be chosen
+ * @GRL_RANK_DEFAULT: likely to be chosen
+ * @GRL_RANK_HIGH: will be chosen
+ * @GRL_RANK_HIGHEST: will be chosen first
+ *
+ * Source priority ranks. Defines the order in which the resolver
+ * (or similar rank-picking mechanisms) will choose this source
+ * over an alternative one with the same function.
+ *
+ * These constants serve as a rough guidance for defining the rank
+ * of a GrlSource. Any value is valid, including values bigger
+ * than GRL_RANK_HIGHEST.
+ */
+typedef enum {
+  GRL_RANK_LOWEST  = -64,
+  GRL_RANK_LOW     = -32,
+  GRL_RANK_DEFAULT =   0,
+  GRL_RANK_HIGH    =  32,
+  GRL_RANK_HIGHEST =  64
+} GrlRank;
+
+/* GrlRegistry object */
+
+typedef struct _GrlRegistryPrivate GrlRegistryPrivate;
+
+struct _GrlRegistry {
+
+  GObject parent;
+
+  /*< private >*/
+  GrlRegistryPrivate *priv;
+
+  gpointer _grl_reserved[GRL_PADDING];
+};
+
+/* GrlRegistry class */
+
+typedef struct _GrlRegistryClass GrlRegistryClass;
+
+/**
+ * GrlRegistryClass:
+ * @parent_class: the parent class structure
+ *
+ * Grilo Registry class. Dynamic loader of plugins.
+ */
+struct _GrlRegistryClass {
+
+  GObjectClass parent_class;
+
+  /*< private >*/
+  gpointer _grl_reserved[GRL_PADDING];
+};
+
+G_BEGIN_DECLS
+
+GType grl_registry_get_type (void);
+
+GrlRegistry *grl_registry_get_default (void);
+
+void grl_registry_add_directory (GrlRegistry *registry,
+                                 const gchar *path);
+
+gboolean grl_registry_load (GrlRegistry *registry,
+                            const gchar *library_filename,
+                            GError **error);
+
+gboolean grl_registry_load_directory (GrlRegistry *registry,
+                                      const gchar *path,
+                                      GError **error);
+
+gboolean grl_registry_unload (GrlRegistry *registry,
+                              const gchar *plugin_id,
+                              GError **error);
+
+gboolean grl_registry_load_all (GrlRegistry *registry,
+                                GError **error);
+
+gboolean grl_registry_load_by_id (GrlRegistry *registry,
+                                  const gchar *plugin_id,
+                                  GError **error);
+
+gboolean grl_registry_register_source (GrlRegistry *registry,
+                                       GrlPlugin *plugin,
+                                       GrlSource *source,
+                                       GError **error);
+
+gboolean grl_registry_unregister_source (GrlRegistry *registry,
+                                         GrlSource *source,
+                                         GError **error);
+
+GrlSource *grl_registry_lookup_source (GrlRegistry *registry,
+                                       const gchar *source_id);
+
+GList *grl_registry_get_sources (GrlRegistry *registry,
+                                 gboolean ranked);
+
+GList *grl_registry_get_sources_by_operations (GrlRegistry *registry,
+                                               GrlSupportedOps ops,
+                                               gboolean ranked);
+
+GrlPlugin *grl_registry_lookup_plugin (GrlRegistry *registry,
+                                       const gchar *plugin_id);
+
+GList *grl_registry_get_plugins (GrlRegistry *registry,
+                                 gboolean only_loaded);
+
+
+GrlKeyID grl_registry_register_metadata_key (GrlRegistry *registry,
+                                             GParamSpec *param_spec,
+                                             GError **error);
+
+void grl_registry_register_metadata_key_relation (GrlRegistry *registry,
+                                                  GrlKeyID key1,
+                                                  GrlKeyID key2);
+
+GrlKeyID grl_registry_lookup_metadata_key (GrlRegistry *registry,
+                                           const gchar *key_name);
+
+const GList *grl_registry_lookup_metadata_key_relation (GrlRegistry *registry,
+                                                        GrlKeyID key);
+
+const gchar *grl_registry_lookup_metadata_key_name (GrlRegistry *registry,
+                                                    GrlKeyID key);
+
+const gchar *grl_registry_lookup_metadata_key_desc (GrlRegistry *registry,
+                                                    GrlKeyID key);
+
+GType grl_registry_lookup_metadata_key_type (GrlRegistry *registry,
+                                             GrlKeyID key);
+
+gboolean grl_registry_metadata_key_validate (GrlRegistry *registry,
+                                             GrlKeyID key,
+                                             GValue *value);
+
+GList *grl_registry_get_metadata_keys (GrlRegistry *registry);
+
+gboolean grl_registry_add_config (GrlRegistry *registry,
+                                  GrlConfig *config,
+                                  GError **error);
+
+gboolean grl_registry_add_config_from_file (GrlRegistry *registry,
+                                            const gchar *config_file,
+                                            GError **error);
+
+G_END_DECLS
+
+#endif /* _GRL_REGISTRY_H_ */
diff --git a/src/grl-source.c b/src/grl-source.c
index a5b3972..ce0b7a4 100644
--- a/src/grl-source.c
+++ b/src/grl-source.c
@@ -39,7 +39,7 @@
 #include "grl-marshal.h"
 #include "grl-type-builtins.h"
 #include "grl-sync-priv.h"
-#include "grl-plugin-registry.h"
+#include "grl-registry.h"
 #include "grl-error.h"
 #include "grl-log.h"
 #include "data/grl-media.h"
@@ -1229,16 +1229,16 @@ get_additional_sources (GrlSource *source,
                         gboolean main_source_is_only_resolver)
 {
   GList *missing_keys, *iter, *result = NULL, *sources;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   missing_keys = missing_in_data (GRL_DATA (media), keys);
   if (!missing_keys)
     return NULL;
 
-  registry = grl_plugin_registry_get_default ();
-  sources = grl_plugin_registry_get_sources_by_operations (registry,
-                                                           GRL_OP_RESOLVE,
-                                                           TRUE);
+  registry = grl_registry_get_default ();
+  sources = grl_registry_get_sources_by_operations (registry,
+                                                    GRL_OP_RESOLVE,
+                                                    TRUE);
 
   for (iter = missing_keys; iter; iter = g_list_next (iter)) {
     GrlKeyID key = (GrlKeyID) iter->data;
@@ -2466,7 +2466,7 @@ map_writable_keys (GrlSource *source,
                    GList **failed_keys)
 {
   GHashTable *map;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GList *sources = NULL;
   GList *sources_iter;
   GrlSource *_source;
@@ -2490,11 +2490,11 @@ map_writable_keys (GrlSource *source,
   }
 
   /* Check if other sources can write the missing keys */
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   sources =
-    grl_plugin_registry_get_sources_by_operations (registry,
-                                                   GRL_OP_STORE_METADATA,
-                                                   TRUE);
+    grl_registry_get_sources_by_operations (registry,
+                                            GRL_OP_STORE_METADATA,
+                                            TRUE);
 
   for (sources_iter = sources; unsupported_keys && sources_iter;
        sources_iter = g_list_next (sources_iter)) {
@@ -3036,9 +3036,9 @@ grl_source_resolve (GrlSource *source,
 
   if (flags & GRL_RESOLVE_FULL) {
     GRL_DEBUG ("requested full metadata");
-    sources = grl_plugin_registry_get_sources_by_operations (grl_plugin_registry_get_default (),
-                                                             GRL_OP_RESOLVE,
-                                                             TRUE);
+    sources = grl_registry_get_sources_by_operations (grl_registry_get_default (),
+                                                      GRL_OP_RESOLVE,
+                                                      TRUE);
     /* Put current source on top */
     sources = g_list_remove (sources, source);
     sources = g_list_prepend (sources, source);
diff --git a/tests/metadata_source.c b/tests/metadata_source.c
index 6429567..9a9ba0f 100644
--- a/tests/metadata_source.c
+++ b/tests/metadata_source.c
@@ -56,9 +56,9 @@ registry_load_error_handler (const gchar *log_domain,
 static bool
 load_metadata_sources ()
 {
-  GrlPluginRegistry *reg;
+  GrlRegistry *reg;
 
-  reg = grl_plugin_registry_get_default ();
+  reg = grl_registry_get_default ();
   if (!reg)
     return false;
 
@@ -66,14 +66,14 @@ load_metadata_sources ()
   g_test_log_set_fatal_handler (registry_load_error_handler, NULL);
 #endif
 
-  if (!grl_plugin_registry_load_all (reg, NULL))
+  if (!grl_registry_load_all (reg, NULL))
     return false;
 
-  keys = grl_plugin_registry_get_metadata_keys (reg);
+  keys = grl_registry_get_metadata_keys (reg);
   if (!keys)
     return false;
 
-  sources = grl_plugin_registry_get_sources (reg, false);
+  sources = grl_registry_get_sources (reg, false);
   if (!sources)
     return false;
 
diff --git a/tests/python/test_fs.py b/tests/python/test_fs.py
index b74ea4f..add454d 100644
--- a/tests/python/test_fs.py
+++ b/tests/python/test_fs.py
@@ -28,7 +28,7 @@ _tempdir = tempfile.mkdtemp()
 class TestFSOperations(unittest.TestCase):
     def __init__(self, method_name):
         super(TestFSOperations, self).__init__(method_name)
-        self.registry = Grl.PluginRegistry.get_default()
+        self.registry = Grl.Registry.get_default()
         self.plugin = self.registry.lookup_source("grl-filesystem")
 
         self.file_tree_pictures = [
@@ -256,7 +256,7 @@ class TestFSOperations(unittest.TestCase):
 
 def _init():
     Grl.init([])
-    registry = Grl.PluginRegistry.get_default()
+    registry = Grl.Registry.get_default()
 
     fs_config = Grl.Config.new("grl-filesystem", None)
     fs_config.set_string("base-path", _tempdir)
diff --git a/tests/python/test_media.py b/tests/python/test_media.py
index ccd4727..1532636 100644
--- a/tests/python/test_media.py
+++ b/tests/python/test_media.py
@@ -55,5 +55,5 @@ class TestMedia(unittest.TestCase):
 
 # who said "this is ugly" ?
 Grl.init([])
-registry = Grl.PluginRegistry.get_default()
+registry = Grl.Registry.get_default()
 registry.load_by_id("grl-filesystem")
diff --git a/tests/python/test_metadata_source.py b/tests/python/test_metadata_source.py
index 67282cb..9642e9a 100644
--- a/tests/python/test_metadata_source.py
+++ b/tests/python/test_metadata_source.py
@@ -16,7 +16,7 @@ class TestMetadataSource(unittest.TestCase):
     def __init__(self, method_name):
         super(TestMetadataSource, self).__init__(method_name)
         Grl.init([])
-        self.registry = Grl.PluginRegistry.get_default()
+        self.registry = Grl.Registry.get_default()
         self.registry.load_all()
         ops = Grl.SupportedOps(Grl.SupportedOps.RESOLVE |
                                Grl.SupportedOps.SET_METADATA)
diff --git a/tests/python/test_options.py b/tests/python/test_options.py
index 19126c4..5a8f1c5 100644
--- a/tests/python/test_options.py
+++ b/tests/python/test_options.py
@@ -179,7 +179,7 @@ class TestOptions(unittest.TestCase):
 class TestFileSystem(unittest.TestCase):
     def __init__(self, method_name):
         super(TestFileSystem, self).__init__(method_name)
-        self.registry = Grl.PluginRegistry.get_default()
+        self.registry = Grl.Registry.get_default()
         self.plugin = self.registry.lookup_source("grl-filesystem")
 
     def test_caps(self):
@@ -189,5 +189,5 @@ class TestFileSystem(unittest.TestCase):
 
 # who said "this is ugly" ?
 Grl.init([])
-registry = Grl.PluginRegistry.get_default()
+registry = Grl.Registry.get_default()
 registry.load_by_id("grl-filesystem")
diff --git a/tests/python/test_plugin.py b/tests/python/test_plugin.py
index 9ebc6c7..68b1437 100644
--- a/tests/python/test_plugin.py
+++ b/tests/python/test_plugin.py
@@ -14,7 +14,7 @@ class TestMediaPlugin(unittest.TestCase):
     def __init__(self, method_name):
         super(TestMediaPlugin, self).__init__(method_name)
         Grl.init([])
-        self.registry = Grl.PluginRegistry.get_default()
+        self.registry = Grl.Registry.get_default()
         self.registry.load_all()
         sources = self.registry.get_sources(False)
         if sources:
diff --git a/tests/python/test_registry.py b/tests/python/test_registry.py
index 654a2fa..b13c5bd 100644
--- a/tests/python/test_registry.py
+++ b/tests/python/test_registry.py
@@ -12,7 +12,7 @@ except:
     logging.warning("Unable to import Grilo's introspection bindings")
     exit()
 
-class TestPluginRegistry(unittest.TestCase):
+class TestRegistry(unittest.TestCase):
 
     EXISTING_LIBRARY_PATH = None
 
@@ -24,9 +24,9 @@ class TestPluginRegistry(unittest.TestCase):
     NONEXISTING_SOURCE = 'NON_EXISTING_SOURCE'
 
     def __init__(self, method_name):
-        super(TestPluginRegistry, self).__init__(method_name)
+        super(TestRegistry, self).__init__(method_name)
         Grl.init([])
-        self.registry = Grl.PluginRegistry.get_default()
+        self.registry = Grl.Registry.get_default()
         plugin_paths = util.GRL_PLUGIN_PATH.split(':')
         for path in plugin_paths:
             if path:
@@ -43,12 +43,12 @@ class TestPluginRegistry(unittest.TestCase):
         pass
 
     def test_get_default_not_null(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         self.assertTrue(registry)
 
     def test_get_default_singleton(self):
-        registry1 = Grl.PluginRegistry.get_default()
-        registry2 = Grl.PluginRegistry.get_default()
+        registry1 = Grl.Registry.get_default()
+        registry2 = Grl.Registry.get_default()
         self.assertEquals(registry1, registry2)
 
     def test_add_directory(self):
diff --git a/tests/registry.c b/tests/registry.c
index af55072..4826e1b 100644
--- a/tests/registry.c
+++ b/tests/registry.c
@@ -50,7 +50,7 @@ registry_load_error_handler (const gchar *log_domain,
 #endif
 
 typedef struct {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GMainLoop *loop;
 } RegistryFixture;
 
@@ -61,7 +61,7 @@ registry_fixture_setup (RegistryFixture *fixture, gconstpointer data)
   g_test_log_set_fatal_handler (registry_load_error_handler, NULL);
 #endif
 
-  fixture->registry = grl_plugin_registry_get_default ();
+  fixture->registry = grl_registry_get_default ();
   fixture->loop = g_main_loop_new (NULL, TRUE);
 }
 
@@ -74,9 +74,9 @@ registry_fixture_teardown (RegistryFixture *fixture, gconstpointer data)
 static void
 registry_init (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   g_assert (registry);
 }
 
@@ -85,7 +85,7 @@ registry_load (RegistryFixture *fixture, gconstpointer data)
 {
   gboolean res;
 
-  res = grl_plugin_registry_load_all (fixture->registry, NULL);
+  res = grl_registry_load_all (fixture->registry, NULL);
   g_assert_cmpint (res, ==, TRUE);
 }
 
@@ -98,20 +98,20 @@ registry_unregister (RegistryFixture *fixture, gconstpointer data)
 
   g_test_bug ("627207");
 
-  sources = grl_plugin_registry_get_sources (fixture->registry, FALSE);
+  sources = grl_registry_get_sources (fixture->registry, FALSE);
 
   for (sources_iter = sources, i = 0; sources_iter;
       sources_iter = g_list_next (sources_iter), i++) {
     GrlMediaPlugin *source = GRL_MEDIA_PLUGIN (sources_iter->data);
 
-    grl_plugin_registry_unregister_source (fixture->registry, source, NULL);
+    grl_registry_unregister_source (fixture->registry, source, NULL);
   }
   g_list_free (sources);
 
   /* We expect to have loaded sources */
   g_assert_cmpint (i, !=, 0);
 
-  sources = grl_plugin_registry_get_sources (fixture->registry, FALSE);
+  sources = grl_registry_get_sources (fixture->registry, FALSE);
   for (sources_iter = sources, i = 0; sources_iter;
       sources_iter = g_list_next (sources_iter), i++)
     ;
diff --git a/tools/grilo-inspect/grl-inspect.c b/tools/grilo-inspect/grl-inspect.c
index b054cc6..0f640e2 100644
--- a/tools/grilo-inspect/grl-inspect.c
+++ b/tools/grilo-inspect/grl-inspect.c
@@ -32,7 +32,7 @@ static gint delay = 0;
 static GMainLoop *mainloop = NULL;
 static gchar **introspect_sources = NULL;
 static gchar *conffile = NULL;
-static GrlPluginRegistry *registry = NULL;
+static GrlRegistry *registry = NULL;
 static gboolean version;
 
 static GOptionEntry entries[] = {
@@ -61,7 +61,7 @@ list_all_sources ()
   GList *sources = NULL;
   GList *sources_iter;
 
-  sources = grl_plugin_registry_get_sources (registry, FALSE);
+  sources = grl_registry_get_sources (registry, FALSE);
 
   for (sources_iter = sources; sources_iter;
       sources_iter = g_list_next (sources_iter)) {
@@ -110,7 +110,7 @@ introspect_source (const gchar *source_id)
   GList *info_keys;
   GList *info_key;
 
-  source = grl_plugin_registry_lookup_source (registry, source_id);
+  source = grl_registry_lookup_source (registry, source_id);
 
   if (source) {
     plugin = grl_source_get_plugin (source);
@@ -239,9 +239,9 @@ main (int argc, char *argv[])
 
   GRL_LOG_DOMAIN_INIT (grl_inspect_log_domain, "grl-inspect");
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   if (conffile) {
-    grl_plugin_registry_add_config_from_file (registry, conffile, &error);
+    grl_registry_add_config_from_file (registry, conffile, &error);
     if (error) {
       GRL_WARNING ("Unable to load configuration: %s", error->message);
       g_error_free (error);
@@ -250,7 +250,7 @@ main (int argc, char *argv[])
 
   mainloop = g_main_loop_new (NULL, FALSE);
 
-  grl_plugin_registry_load_all (registry, NULL);
+  grl_registry_load_all (registry, NULL);
 
   if (delay > 0) {
     g_timeout_add_seconds ((guint) delay, run, NULL);
diff --git a/tools/grilo-test-ui/main.c b/tools/grilo-test-ui/main.c
index a19c29e..6750992 100644
--- a/tools/grilo-test-ui/main.c
+++ b/tools/grilo-test-ui/main.c
@@ -259,12 +259,12 @@ static void
 changes_notification_cb (GtkToggleAction *action)
 {
   GList *sources, *source;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   ui_state->changes_notification = gtk_toggle_action_get_active (action);
 
-  registry = grl_plugin_registry_get_default ();
-  sources = grl_plugin_registry_get_sources (registry, FALSE);
+  registry = grl_registry_get_default ();
+  sources = grl_registry_get_sources (registry, FALSE);
   for (source = sources; source; source = g_list_next (source)) {
     if (grl_source_supported_operations (GRL_SOURCE (source->data)) &
         GRL_OP_NOTIFY_CHANGE) {
@@ -359,12 +359,12 @@ get_icon_for_media (GrlMedia *media)
 static GList *
 all_keys (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   static GList *keys = NULL;
 
   if (!keys) {
-    registry = grl_plugin_registry_get_default ();
-    keys = grl_plugin_registry_get_metadata_keys (registry);
+    registry = grl_registry_get_default ();
+    keys = grl_registry_get_metadata_keys (registry);
   }
 
   return keys;
@@ -1312,17 +1312,17 @@ set_filter_cb (GtkComboBox *widget,
 static void
 query_combo_setup (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GList *sources = NULL;
   GList *sources_iter;
   GtkTreeIter iter;
 
   clear_query_combo ();
 
-  registry = grl_plugin_registry_get_default ();
-  sources = grl_plugin_registry_get_sources_by_operations (registry,
-                                                           GRL_OP_QUERY,
-                                                           FALSE);
+  registry = grl_registry_get_default ();
+  sources = grl_registry_get_sources_by_operations (registry,
+                                                    GRL_OP_QUERY,
+                                                    FALSE);
   for (sources_iter = sources; sources_iter;
       sources_iter = g_list_next (sources_iter)) {
     GrlSource *source = GRL_SOURCE (sources_iter->data);
@@ -1343,17 +1343,17 @@ query_combo_setup (void)
 static void
 search_combo_setup (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   GList *sources = NULL;
   GList *sources_iter;
   GtkTreeIter iter;
 
   clear_search_combo ();
 
-  registry = grl_plugin_registry_get_default ();
-  sources = grl_plugin_registry_get_sources_by_operations (registry,
-                                                           GRL_OP_SEARCH,
-                                                           FALSE);
+  registry = grl_registry_get_default ();
+  sources = grl_registry_get_sources_by_operations (registry,
+                                                    GRL_OP_SEARCH,
+                                                    FALSE);
   for (sources_iter = sources; sources_iter;
       sources_iter = g_list_next (sources_iter)) {
     GrlSource *source = GRL_SOURCE (sources_iter->data);
@@ -1488,16 +1488,16 @@ activate_ok_button (GtkLabel *label,
 static void
 load_file_config (void)
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   gchar *config_file;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
   config_file = g_strconcat (g_get_user_config_dir(),
                              G_DIR_SEPARATOR_S, "grilo-test-ui",
                              G_DIR_SEPARATOR_S, "grilo.conf",
                              NULL);
   if (g_file_test (config_file, G_FILE_TEST_EXISTS)) {
-    grl_plugin_registry_add_config_from_file (registry, config_file, NULL);
+    grl_registry_add_config_from_file (registry, config_file, NULL);
   }
   g_free (config_file);
 }
@@ -1583,15 +1583,15 @@ static void
 set_flickr_config (void)
 {
   GrlConfig *config;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
   gchar *token;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
   config = grl_config_new ("grl-flickr", NULL);
   grl_config_set_api_key (config, FLICKR_KEY);
   grl_config_set_api_secret (config, FLICKR_SECRET);
-  grl_plugin_registry_add_config (registry, config, NULL);
+  grl_registry_add_config (registry, config, NULL);
 
   token = load_flickr_token ();
 
@@ -1608,7 +1608,7 @@ set_flickr_config (void)
     grl_config_set_api_key (config, FLICKR_KEY);
     grl_config_set_api_secret (config, FLICKR_SECRET);
     grl_config_set_api_token (config, token);
-    grl_plugin_registry_add_config (registry, config, NULL);
+    grl_registry_add_config (registry, config, NULL);
   }
   g_free (token);
 }
@@ -1617,40 +1617,40 @@ static void
 set_youtube_config (void)
 {
   GrlConfig *config;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   config = grl_config_new ("grl-youtube", NULL);
   grl_config_set_api_key (config, YOUTUBE_KEY);
 
-  registry = grl_plugin_registry_get_default ();
-  grl_plugin_registry_add_config (registry, config, NULL);
+  registry = grl_registry_get_default ();
+  grl_registry_add_config (registry, config, NULL);
 }
 
 static void
 set_vimeo_config (void)
 {
   GrlConfig *config;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   config = grl_config_new ("grl-vimeo", NULL);
   grl_config_set_api_key (config, VIMEO_KEY);
   grl_config_set_api_secret (config, VIMEO_SECRET);
 
-  registry = grl_plugin_registry_get_default ();
-  grl_plugin_registry_add_config (registry, config, NULL);
+  registry = grl_registry_get_default ();
+  grl_registry_add_config (registry, config, NULL);
 }
 
 static void
 set_local_config (void)
 {
   GrlConfig *config;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   config = grl_config_new ("grl-local-metadata", NULL);
   grl_config_set_boolean (config, "guess-video", TRUE);
 
-  registry = grl_plugin_registry_get_default ();
-  grl_plugin_registry_add_config (registry, config, NULL);
+  registry = grl_registry_get_default ();
+  grl_registry_add_config (registry, config, NULL);
 }
 
 static void
@@ -1938,15 +1938,15 @@ show_browsable_sources ()
   GList *sources;
   GList *sources_iter;
   GtkTreeIter iter;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
   clear_panes ();
 
-  sources = grl_plugin_registry_get_sources_by_operations (registry,
-                                                           GRL_OP_BROWSE,
-                                                           FALSE);
+  sources = grl_registry_get_sources_by_operations (registry,
+                                                    GRL_OP_BROWSE,
+                                                    FALSE);
   for (sources_iter = sources; sources_iter;
       sources_iter = g_list_next (sources_iter)) {
     GrlSource *source;
@@ -2076,7 +2076,7 @@ content_changed_cb (GrlSource *source,
 }
 
 static void
-source_added_cb (GrlPluginRegistry *registry,
+source_added_cb (GrlRegistry *registry,
                  GrlSource *source,
                  gpointer user_data)
 {
@@ -2107,7 +2107,7 @@ source_added_cb (GrlPluginRegistry *registry,
 }
 
 static void
-source_removed_cb (GrlPluginRegistry *registry,
+source_removed_cb (GrlRegistry *registry,
                    GrlSource *source,
                    gpointer user_data)
 {
@@ -2132,13 +2132,13 @@ source_removed_cb (GrlPluginRegistry *registry,
 static void
 load_plugins (void)
 {
-  GrlPluginRegistry *registry;
-  registry = grl_plugin_registry_get_default ();
+  GrlRegistry *registry;
+  registry = grl_registry_get_default ();
   g_signal_connect (registry, "source-added",
 		    G_CALLBACK (source_added_cb), NULL);
   g_signal_connect (registry, "source-removed",
 		    G_CALLBACK (source_removed_cb), NULL);
-  if (!grl_plugin_registry_load_all (registry, NULL)) {
+  if (!grl_registry_load_all (registry, NULL)) {
     g_error ("Failed to load plugins.");
   }
 }
@@ -2148,7 +2148,7 @@ shutdown_plugins (void)
 {
   GList *plugins;
   GList *plugin_iter;
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
   /* Cancel previous operation, if any */
   cancel_current_operation ();
@@ -2157,20 +2157,20 @@ shutdown_plugins (void)
      we are about to shut down */
   clear_ui ();
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
   /* Disable "source-removed" handler */
   g_signal_handlers_block_by_func (G_OBJECT (registry), source_removed_cb,
 				   NULL);
 
   /* Shut down the plugins now */
-  plugins = grl_plugin_registry_get_plugins (registry, TRUE);
+  plugins = grl_registry_get_plugins (registry, TRUE);
   for (plugin_iter = plugins;
        plugin_iter;
        plugin_iter = g_list_next (plugin_iter)) {
-    grl_plugin_registry_unload (registry,
-                                grl_plugin_get_id (GRL_PLUGIN (plugin_iter->data)),
-                                NULL);
+    grl_registry_unload (registry,
+                         grl_plugin_get_id (GRL_PLUGIN (plugin_iter->data)),
+                         NULL);
   }
   g_list_free (plugins);
 
@@ -2187,11 +2187,11 @@ shutdown_plugins (void)
 static void
 load_all_plugins ()
 {
-  GrlPluginRegistry *registry;
+  GrlRegistry *registry;
 
-  registry = grl_plugin_registry_get_default ();
+  registry = grl_registry_get_default ();
 
-  grl_plugin_registry_load_all (registry, NULL);
+  grl_registry_load_all (registry, NULL);
 }
 
 static void
diff --git a/tools/js/testGrilo.js b/tools/js/testGrilo.js
index 7c5aea6..7bdc9a6 100644
--- a/tools/js/testGrilo.js
+++ b/tools/js/testGrilo.js
@@ -16,7 +16,7 @@ function SimplePlayList () {
 
 SimplePlayList.prototype = {
     _init: function () {
-        let registry = Grl.PluginRegistry.get_default ();
+        let registry = Grl.Registry.get_default ();
 
         let sources = [];
         this.sources = sources;
diff --git a/tools/python/grilo-test-ui.py b/tools/python/grilo-test-ui.py
index 1b79a41..fb57034 100644
--- a/tools/python/grilo-test-ui.py
+++ b/tools/python/grilo-test-ui.py
@@ -73,7 +73,7 @@ class MainWindow(Gtk.Window):
         self._configure_youtube()
 
     def _configure_flickr(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         flickr_config = Grl.Config.new('grl-flickr', None)
         flickr_config.set_api_key(self.FLICKR_KEY)
         flickr_config.set_api_secret(self.FLICKR_SECRET)
@@ -83,7 +83,7 @@ class MainWindow(Gtk.Window):
                 print 'Cannot add Flickr config'
 
     def _configure_vimeo(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         vimeo_config = Grl.Config.new('grl-vimeo', None)
         vimeo_config.set_api_key(self.VIMEO_KEY)
         vimeo_config.set_api_secret(self.VIMEO_SECRET)
@@ -93,7 +93,7 @@ class MainWindow(Gtk.Window):
                 print 'Cannot add Vimeo config'
 
     def _configure_youtube(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         youtube_config = Grl.Config.new('grl-youtube', None)
         youtube_config.set_api_key(self.YOUTUBE_KEY)
         try:
@@ -102,18 +102,18 @@ class MainWindow(Gtk.Window):
                 print 'Cannot add Youtube config'
 
     def _lookup_browse_keys(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         key_id = registry.lookup_metadata_key('id')
         key_title = registry.lookup_metadata_key('title')
         key_childcount = registry.lookup_metadata_key('childcount')
         return [key_id, key_title, key_childcount]
 
     def _lookup_metadata_keys(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         return registry.get_metadata_keys()
 
     def _load_plugins(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         registry.connect('source-added',
                          self._source_added_cb)
         registry.connect('source-removed',
@@ -179,7 +179,7 @@ class MainWindow(Gtk.Window):
         return button
 
     def _show_plugins(self):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         self._clear_panes()
         sources = registry.get_sources_by_operations(Grl.SupportedOps.BROWSE, False)
         self._browser_window.get_browser().add_sources(sources)
@@ -237,12 +237,12 @@ class MainWindow(Gtk.Window):
         self._remove_btn.set_sensitive(False)
         return toolbar_buttons
 
-    def _source_added_cb(self, plugin_registry, media_source):
+    def _source_added_cb(self, registry, media_source):
         self._show_plugins()
         for combo in [self._search_combo, self._query_combo]:
             combo.update()
 
-    def _source_removed_cb(self, plugin_registry, media_source):
+    def _source_removed_cb(self, registry, media_source):
         print media_source.get_name()
 
     def _browser_activated_cb(self, tree_view, path, column, data=None):
@@ -303,7 +303,7 @@ class MainWindow(Gtk.Window):
             print ('playing %(url)s' % {'url':self._ui_state.last_url})
             uri_list.append(self._ui_state.last_url)
 
-            registry = Grl.PluginRegistry.get_default()
+            registry = Grl.Registry.get_default()
             key_source = registry.lookup_metadata_key('source')
             if isinstance(self._ui_state.cur_md_media, Grl.MediaImage):
                 app = self._launchers.eog
@@ -689,7 +689,7 @@ class TextComboBox(Gtk.ComboBox):
         self.add_attribute(cell, 'text', ComboBoxStore.NAME_COLUMN)
 
     def update(self, operation):
-        registry = Grl.PluginRegistry.get_default()
+        registry = Grl.Registry.get_default()
         sources = registry.get_sources_by_operations(operation,
                                                      False)
         model = ComboBoxStore()
diff --git a/tools/vala/grilo-test.vala b/tools/vala/grilo-test.vala
index 8aba53b..60b5c12 100644
--- a/tools/vala/grilo-test.vala
+++ b/tools/vala/grilo-test.vala
@@ -6,7 +6,7 @@ public class SimplePlaylist : Object {
 	int processed_sources = 0;
 
 	construct {
-		var registry = Grl.PluginRegistry.get_default ();
+		var registry = Grl.Registry.get_default ();
 
 		registry.source_added.connect (source_added_cb);
 		registry.source_removed.connect (source_removed_cb);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]