[PATCH 5/5] vala: new vapi generation machinery



Following this scheme[1], the vapi generation now is fully
automatic.

Besides, for sake of a correct compilation, further changes
were done:

+ As the vapi file is autogenerated with the uninstalled files, the
  vapi must be generated before the vala test is compiled.

+ Set the ellipsis property to grl_list_from_va()

+ Add more custom code into the vapi. This is a _bad_ symptom, because it
  means more diverging from the normal gobject code style.

+ Fix the vala test according to the new custom code.

1. http://git.collabora.co.uk/?p=user/edward/gst-convenience.git;a=blob;f=vala/Makefile.am

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez igalia com>
---
 Makefile.am                                        |    2 +-
 bindings/vala/Makefile.am                          |   72 ++-
 bindings/vala/grilo-0.1-custom.vala                |  103 +++
 bindings/vala/{grilo-0.1 => }/grilo-0.1.metadata   |    1 +
 bindings/vala/grilo-0.1.vapi                       |  510 -----------
 bindings/vala/grilo-0.1/grilo-0.1-custom.vala      |   39 -
 bindings/vala/grilo-0.1/grilo-0.1.files            |    3 -
 bindings/vala/grilo-0.1/grilo-0.1.gi               |  932 --------------------
 bindings/vala/grilo-0.1/grilo-0.1.namespace        |    1 -
 ...grilo-0.1.defines => grilo-uninstalled.defines} |    0
 tools/vala/grilo-test.vala                         |    2 +-
 11 files changed, 174 insertions(+), 1491 deletions(-)
 create mode 100644 bindings/vala/grilo-0.1-custom.vala
 rename bindings/vala/{grilo-0.1 => }/grilo-0.1.metadata (91%)
 delete mode 100644 bindings/vala/grilo-0.1.vapi
 delete mode 100644 bindings/vala/grilo-0.1/grilo-0.1-custom.vala
 delete mode 100644 bindings/vala/grilo-0.1/grilo-0.1.files
 delete mode 100644 bindings/vala/grilo-0.1/grilo-0.1.gi
 delete mode 100644 bindings/vala/grilo-0.1/grilo-0.1.namespace
 rename bindings/vala/{grilo-0.1/grilo-0.1.defines => grilo-uninstalled.defines} (100%)

diff --git a/Makefile.am b/Makefile.am
index 7acc3d7..5cfd858 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@
 
 ACLOCAL_AMFLAGS = -I m4
 
-SUBDIRS = src tools bindings
+SUBDIRS = src bindings tools
 
 if ENABLE_GTK_DOC
 SUBDIRS += doc
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
index 80309aa..a3f55f0 100644
--- a/bindings/vala/Makefile.am
+++ b/bindings/vala/Makefile.am
@@ -1,6 +1,70 @@
-vapidir = $(datadir)/vala/vapi
+# This Makefile is a tad convoluted. I've tried to make it so that the vapi
+# can be built at the same time as the library in the hope that this will make
+# it easier to keep it up-to-date.
+#
+# The vapi is generated in 2 steps:
+#
+#   vala-gen-introspect looks at headers and libs and generates a gidl for the
+#   library. It takes a .files file containing paths to these. It also takes a
+#   .namespace file containing the Vala namespace corresponding to this
+#   library. Both these files are expected to be in the directory where you run
+#   vala-gen-introspect.
+#
+#   vapigen takes the gidl, a .deps file containing the list of libs needed
+#   to link this library, and a .metadata file containing annotations to the
+#   gidl (e.g. foo() is the free function for object X).
+#
+# vala-gen-introspect runs with the -uninstalled .pc file. The .files is
+# generated so that it has links to the headers and libraries from the source
+# and build trees. The .namespace file is generated, though it doesn't need
+# to be, so that it exists in the build tree where vala-gen-introspect is run
+# (because this may not be the same as the source tree). Since we're working
+# with the -uninstalled files, and vala-gen-introspect assumes filenames are
+# named as <package>.<extension>, all the associated file names have an
+# -uninstalled suffix.
+#
+# Running vapigen is simpler. It generates a the .vapi file using the gidl
+# file from vala-gen-introspect. Since we want the final files to be in the
+# form <libname>-<version>.*, we use the same convention for naming the files
+# associated with this step (contrast with the -uninstalled suffix for the
+# vala-gen-introspect step). The only file implicitly used by vapigen is the
+# .deps file, so to make the build independent of a split source/build tree,
+# I've put the deps on the vapigen command-line (it's redundant, but helps
+# with distcheck).
+#
 
-dist_vapi_DATA = \
-	grilo-0.1.vapi
+targets = grilo- GRL_MAJORMINOR@
+targets_u = $(foreach target,$(targets),$(subst @GRL_MAJORMINOR@,uninstalled,$(target)))
 
-MAINTAINERCLEANFILES = Makefile.in
+# "source" files for vala-gen-introspect
+filesfiles_src = $(foreach target,$(targets_u),$(target).files.in)
+filesfiles = $(foreach target,$(targets_u),$(target).files)
+nsfiles_src = $(foreach target,$(targets_u),$(target).namespace.in)
+nsfiles = $(foreach target,$(targets_u),$(target).namespace)
+
+# "source" files for vapigen
+gifiles = $(foreach target,$(targets),$(target).gi)
+metadatafiles = $(foreach target,$(targets),$(target).metadata)
+
+vapidir = $(VAPIDIR)
+
+if HAVE_VALA
+vapifiles = $(foreach target,$(targets),$(target).vapi)
+vapi_DATA = $(depsfiles) $(vapifiles)
+endif
+
+%- GRL_MAJORMINOR@.gi: %-uninstalled.files %-uninstalled.namespace
+	PKG_CONFIG_PATH=$(top_builddir)/:${PKG_CONFIG_PATH} \
+		$(VALA_GEN_INTROSPECT) $*-uninstalled .
+	@mv $*-uninstalled.gi $*- GRL_MAJORMINOR@.gi
+
+%.vapi: %.gi %.metadata %-custom.vala
+	$(VAPIGEN) --library $* \
+		--metadata $(top_srcdir)/bindings/vala/$*.metadata $*.gi \
+		$*-custom.vala
+
+all: $(vapifiles)
+
+EXTRA_DIST = $(depsfiles) $(filesfiles_src) $(nsfiles_src) $(metadatafiles) $(vapifiles)
+CLEANFILES = $(gifiles)
+DISTCLEANFILES = $(vapifiles) $(filesfiles) $(nsfiles)
diff --git a/bindings/vala/grilo-0.1-custom.vala b/bindings/vala/grilo-0.1-custom.vala
new file mode 100644
index 0000000..c43bbb1
--- /dev/null
+++ b/bindings/vala/grilo-0.1-custom.vala
@@ -0,0 +1,103 @@
+namespace Grl {
+	public class Media {
+		public unowned string get_id ();
+		public unowned string get_url ();
+		public unowned string get_author ();
+		public unowned string get_title ();
+		public unowned string get_description ();
+		public unowned string get_source ();
+		public unowned string get_thumbnail ();
+		public unowned string get_site ();
+		public unowned string get_date ();
+		public unowned string get_mime ();
+		public unowned string get_rating ();
+		public int get_duration ();
+
+		public void set_id (string id);
+		public void set_url (string url);
+		public void set_author (string url);
+		public void set_title (string title);
+		public void set_description (string description);
+		public void set_source (string source);
+		public void set_thumbnail (string thumbnail);
+		public void set_site (string site);
+		public void set_duration (int duration);
+		public void set_date (string date);
+		public void set_mime (string mime);
+	}
+
+	[CCode (instance_pos = 2.1)]
+	public delegate void MediaSourceMetadataCb (MediaSource source, Media? media, GLib.Error error);
+	[CCode (instance_pos = 2.1)]
+	public delegate void MediaSourceRemoveCb (MediaSource source, Media? media, GLib.Error error);
+	[CCode (instance_pos = 4.1)]
+	public delegate void MediaSourceResultCb (MediaSource source, uint browse_id, Media? media, uint remaining, GLib.Error? error);
+	[CCode (instance_pos = 4.1)]
+	public delegate void MediaSourceStoreCb (MediaSource source, MediaBox? parent, Media? media, GLib.Error? error);
+	[CCode (instance_pos = 2.1)]
+	public delegate void MetadataSourceResolveCb (MetadataSource source, Media? media, GLib.Error? error);
+
+	[Compact]
+	public class MetadataKey {
+		[CCode (cname ="GRL_METADATA_KEY_ALBUM")]
+		public GLib.ParamSpec ALBUM;
+		[CCode (cname ="GRL_METADATA_KEY_ARTIST")]
+		public GLib.ParamSpec ARTIST;
+		[CCode (cname ="GRL_METADATA_KEY_AUTHOR")]
+		public GLib.ParamSpec AUTHOR;
+		[CCode (cname ="GRL_METADATA_KEY_BITRATE")]
+		public GLib.ParamSpec BITRATE;
+		[CCode (cname ="GRL_METADATA_KEY_CERTIFICATE")]
+		public GLib.ParamSpec CERTIFICATE;
+		[CCode (cname ="GRL_METADATA_KEY_CHILDCOUNT")]
+		public GLib.ParamSpec CHILDCOUNT;
+		[CCode (cname ="GRL_METADATA_KEY_DATE")]
+		public GLib.ParamSpec DATE;
+		[CCode (cname ="GRL_METADATA_KEY_DESCRIPTION")]
+		public GLib.ParamSpec DESCRIPTION;
+		[CCode (cname ="GRL_METADATA_KEY_DURATION")]
+		public GLib.ParamSpec DURATION;
+		[CCode (cname ="GRL_METADATA_KEY_EXTERNAL_PLAYER")]
+		public GLib.ParamSpec EXTERNAL_PLAYER;
+		[CCode (cname ="GRL_METADATA_KEY_EXTERNAL_URL")]
+		public GLib.ParamSpec EXTERNAL_URL;
+		[CCode (cname ="GRL_METADATA_KEY_FRAMERATE")]
+		public GLib.ParamSpec FRAMERATE;
+		[CCode (cname ="GRL_METADATA_KEY_GENRE")]
+		public GLib.ParamSpec GENRE;
+		[CCode (cname ="GRL_METADATA_KEY_HEIGHT")]
+		public GLib.ParamSpec HEIGHT;
+		[CCode (cname ="GRL_METADATA_KEY_ID")]
+		public static GLib.ParamSpec ID;
+		[CCode (cname ="GRL_METADATA_KEY_LAST_PLAYED")]
+		public GLib.ParamSpec LAST_PLAYED;
+		[CCode (cname ="GRL_METADATA_KEY_LAST_POSITION")]
+		public GLib.ParamSpec LAST_POSITION;
+		[CCode (cname ="GRL_METADATA_KEY_LICENSE")]
+		public GLib.ParamSpec LICENSE;
+		[CCode (cname ="GRL_METADATA_KEY_LYRICS")]
+		public GLib.ParamSpec LYRICS;
+		[CCode (cname ="GRL_METADATA_KEY_MIME")]
+		public GLib.ParamSpec MIME;
+		[CCode (cname ="GRL_METADATA_KEY_PLAY_COUNT")]
+		public GLib.ParamSpec PLAY_COUNT;
+		[CCode (cname ="GRL_METADATA_KEY_RATING")]
+		public GLib.ParamSpec RATING;
+		[CCode (cname ="GRL_METADATA_KEY_SITE")]
+		public GLib.ParamSpec SITE;
+		[CCode (cname ="GRL_METADATA_KEY_SOURCE")]
+		public GLib.ParamSpec SOURCE;
+		[CCode (cname ="GRL_METADATA_KEY_STUDIO")]
+		public GLib.ParamSpec STUDIO;
+		[CCode (cname ="GRL_METADATA_KEY_THUMBNAIL")]
+		public GLib.ParamSpec THUMBNAIL;
+		[CCode (cname ="GRL_METADATA_KEY_TITLE")]
+		public static GLib.ParamSpec TITLE;
+		[CCode (cname ="GRL_METADATA_KEY_URL")]
+		public static GLib.ParamSpec URL;
+		[CCode (cname ="GRL_METADATA_KEY_WIDTH")]
+		public GLib.ParamSpec WIDTH;
+
+		public static unowned GLib.List list_new (GLib.ParamSpec p, ...);
+	}
+}
diff --git a/bindings/vala/grilo-0.1/grilo-0.1.metadata b/bindings/vala/grilo-0.1.metadata
similarity index 91%
rename from bindings/vala/grilo-0.1/grilo-0.1.metadata
rename to bindings/vala/grilo-0.1.metadata
index 75c8a56..8f75940 100644
--- a/bindings/vala/grilo-0.1/grilo-0.1.metadata
+++ b/bindings/vala/grilo-0.1.metadata
@@ -6,3 +6,4 @@ GrlMediaSourceRemoveCb hidden="1"
 GrlMediaSourceResultCb hidden="1"
 GrlMediaSourceStoreCb hidden="1"
 GrlMetadataSourceResolveCb hidden="1"
+grl_list_from_va ellipsis="1"
diff --git a/bindings/vala/grilo-0.1.vapi b/bindings/vala/grilo-0.1.vapi
deleted file mode 100644
index 567d56a..0000000
--- a/bindings/vala/grilo-0.1.vapi
+++ /dev/null
@@ -1,510 +0,0 @@
-/* grilo-0.1.vapi generated by vapigen, do not modify. */
-
-[CCode (cprefix = "Grl", lower_case_cprefix = "grl_")]
-namespace Grl {
-	[CCode (cheader_filename = "grilo.h")]
-	public class Config : Grl.Data {
-		[CCode (has_construct_function = false)]
-		public Config (string plugin, string source);
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class Data : GLib.Object {
-		[CCode (has_construct_function = false)]
-		public Data ();
-		public void add (Grl.KeyID key);
-		public GLib.Value @get (Grl.KeyID key);
-		public float get_float (Grl.KeyID key);
-		public int get_int (Grl.KeyID key);
-		public unowned GLib.List get_keys ();
-		public bool get_overwrite ();
-		public unowned string get_string (Grl.KeyID key);
-		public bool has_key (Grl.KeyID key);
-		public bool key_is_known (Grl.KeyID key);
-		public void remove (Grl.KeyID key);
-		public void @set (Grl.KeyID key, GLib.Value value);
-		public void set_float (Grl.KeyID key, int floatvalue);
-		public void set_int (Grl.KeyID key, int intvalue);
-		public void set_overwrite (bool overwrite);
-		public void set_string (Grl.KeyID key, string strvalue);
-		public bool overwrite { get; set; }
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class KeyID {
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class Media : Grl.Data {
-		[CCode (has_construct_function = false)]
-		public Media ();
-		public unowned string get_author ();
-		public unowned string get_date ();
-		public unowned string get_description ();
-		public int get_duration ();
-		public unowned string get_id ();
-		public unowned string get_mime ();
-		public unowned string get_rating ();
-		public unowned string get_site ();
-		public unowned string get_source ();
-		public unowned string get_thumbnail ();
-		public unowned string get_title ();
-		public unowned string get_url ();
-		public void set_author (string url);
-		public void set_date (string date);
-		public void set_description (string description);
-		public void set_duration (int duration);
-		public void set_id (string id);
-		public void set_mime (string mime);
-		public void set_rating (string rating, string max);
-		public void set_site (string site);
-		public void set_source (string source);
-		public void set_thumbnail (string thumbnail);
-		public void set_title (string title);
-		public void set_url (string url);
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaAudio : Grl.Media {
-		[CCode (type = "GrlMedia*", has_construct_function = false)]
-		public MediaAudio ();
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaBox : Grl.Media {
-		[CCode (type = "GrlMedia*", has_construct_function = false)]
-		public MediaBox ();
-		public int get_childcount ();
-		public void set_childcount (int childcount);
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaImage : Grl.Media {
-		[CCode (type = "GrlMedia*", has_construct_function = false)]
-		public MediaImage ();
-		public void set_size (int width, int height);
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaPlugin : GLib.Object {
-		public unowned string get_author ();
-		public unowned string get_description ();
-		public unowned string get_id ();
-		public unowned string get_license ();
-		public unowned string get_name ();
-		public int get_rank ();
-		public unowned string get_site ();
-		public unowned string get_version ();
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaSource : Grl.MetadataSource {
-		public virtual void browse (Grl.Media container, GLib.List keys, uint skip, uint count, Grl.MetadataResolutionFlags flags, Grl.MediaSourceResultCb callback);
-		public virtual void cancel (uint operation_id);
-		public uint get_auto_split_threshold ();
-		public void* get_operation_data (uint operation_id);
-		public virtual void metadata (Grl.Media media, GLib.List keys, Grl.MetadataResolutionFlags flags, Grl.MediaSourceMetadataCb callback);
-		public virtual void query (string query, GLib.List keys, uint skip, uint count, Grl.MetadataResolutionFlags flags, Grl.MediaSourceResultCb callback);
-		public virtual void remove (Grl.Media media, Grl.MediaSourceRemoveCb callback);
-		public virtual void search (string text, GLib.List keys, uint skip, uint count, Grl.MetadataResolutionFlags flags, Grl.MediaSourceResultCb callback);
-		public void set_auto_split_threshold (uint threshold);
-		public void set_operation_data (uint operation_id, void* data);
-		public virtual void store (Grl.MediaBox parent, Grl.Media media, Grl.MediaSourceStoreCb callback);
-		public uint auto_split_threshold { get; set; }
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaSourceBrowseSpec {
-		public uint browse_id;
-		public weak Grl.MediaSourceResultCb callback;
-		public weak Grl.Media container;
-		public uint count;
-		public Grl.MetadataResolutionFlags flags;
-		public weak GLib.List keys;
-		public uint skip;
-		public weak Grl.MediaSource source;
-		public void* user_data;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaSourceMetadataSpec {
-		public weak Grl.MediaSourceMetadataCb callback;
-		public Grl.MetadataResolutionFlags flags;
-		public weak GLib.List keys;
-		public weak Grl.Media media;
-		public weak Grl.MediaSource source;
-		public void* user_data;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaSourceQuerySpec {
-		public weak Grl.MediaSourceResultCb callback;
-		public uint count;
-		public Grl.MetadataResolutionFlags flags;
-		public weak GLib.List keys;
-		public weak string query;
-		public uint query_id;
-		public uint skip;
-		public weak Grl.MediaSource source;
-		public void* user_data;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaSourceRemoveSpec {
-		public weak Grl.MediaSourceRemoveCb callback;
-		public weak Grl.Media media;
-		public weak string media_id;
-		public weak Grl.MediaSource source;
-		public void* user_data;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaSourceSearchSpec {
-		public weak Grl.MediaSourceResultCb callback;
-		public uint count;
-		public Grl.MetadataResolutionFlags flags;
-		public weak GLib.List keys;
-		public uint search_id;
-		public uint skip;
-		public weak Grl.MediaSource source;
-		public weak string text;
-		public void* user_data;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaSourceStoreSpec {
-		public weak Grl.MediaSourceStoreCb callback;
-		public weak Grl.Media media;
-		public weak Grl.MediaBox parent;
-		public weak Grl.MediaSource source;
-		public void* user_data;
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class MediaVideo : Grl.Media {
-		[CCode (type = "GrlMedia*", has_construct_function = false)]
-		public MediaVideo ();
-		public void set_size (int width, int height);
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MetadataKey {
-		public weak string desc;
-		public weak Grl.KeyID id;
-		public weak string name;
-		public static unowned GLib.List list_new (...);
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class MetadataSource : Grl.MediaPlugin {
-		public unowned GLib.List filter_slow (GLib.List keys, bool return_filtered);
-		public unowned GLib.List filter_supported (GLib.List keys, bool return_filtered);
-		public unowned GLib.List filter_writable (GLib.List keys, bool return_filtered);
-		public unowned string get_description ();
-		public unowned string get_id ();
-		public unowned string get_name ();
-		public virtual unowned GLib.List key_depends (Grl.KeyID key_id);
-		public virtual void resolve (GLib.List keys, Grl.Media media, Grl.MetadataResolutionFlags flags, Grl.MetadataSourceResolveCb callback);
-		public virtual void set_metadata (Grl.Media media, GLib.List keys, Grl.MetadataWritingFlags flags, Grl.MetadataSourceSetMetadataCb callback);
-		public virtual unowned GLib.List slow_keys ();
-		public virtual unowned GLib.List supported_keys ();
-		public virtual Grl.SupportedOps supported_operations ();
-		public virtual unowned GLib.List writable_keys ();
-		[NoAccessorMethod]
-		public string source_desc { owned get; set construct; }
-		[NoAccessorMethod]
-		public string source_id { owned get; set construct; }
-		[NoAccessorMethod]
-		public string source_name { owned get; set construct; }
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MetadataSourceResolveSpec {
-		public weak Grl.MetadataSourceResolveCb callback;
-		public Grl.MetadataResolutionFlags flags;
-		public weak GLib.List keys;
-		public weak Grl.Media media;
-		public weak Grl.MetadataSource source;
-		public void* user_data;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class MetadataSourceSetMetadataSpec {
-		public weak Grl.MetadataSourceSetMetadataCb callback;
-		public weak GLib.List failed_keys;
-		public Grl.MetadataWritingFlags flags;
-		public weak GLib.List keys;
-		public weak Grl.Media media;
-		public weak Grl.MetadataSource source;
-		public void* user_data;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class PluginDescriptor {
-		public weak Grl.PluginInfo info;
-		public weak GLib.Callback plugin_deinit;
-		public weak GLib.Callback plugin_init;
-	}
-	[Compact]
-	[CCode (cheader_filename = "grilo.h")]
-	public class PluginInfo {
-		public weak string author;
-		public weak string desc;
-		public weak string id;
-		public weak string license;
-		public weak string name;
-		public int rank;
-		public weak string site;
-		public weak string version;
-	}
-	[CCode (cheader_filename = "grilo.h")]
-	public class PluginRegistry : GLib.Object {
-		public void add_config (Grl.Config config);
-		public static unowned Grl.PluginRegistry get_instance ();
-		[CCode (array_length = false)]
-		public unowned Grl.MediaPlugin[] get_sources (bool ranked);
-		public unowned Grl.MediaPlugin get_sources_by_operations (Grl.SupportedOps ops, bool ranked);
-		public bool load (string path);
-		public bool load_all ();
-		public bool load_directory (string path);
-		public unowned Grl.MetadataKey lookup_metadata_key (Grl.KeyID key_id);
-		public unowned Grl.MediaPlugin lookup_source (string source_id);
-		public bool register_source (Grl.PluginInfo plugin, Grl.MediaPlugin source);
-		public void unload (string plugin_id);
-		public void unregister_source (Grl.MediaPlugin source);
-		public virtual signal void source_added (Grl.MediaPlugin p0);
-		public virtual signal void source_removed (Grl.MediaPlugin p0);
-	}
-	[CCode (cprefix = "GRL_RESOLVE_", has_type_id = false, cheader_filename = "grilo.h")]
-	public enum MetadataResolutionFlags {
-		NORMAL,
-		FULL,
-		IDLE_RELAY,
-		FAST_ONLY
-	}
-	[CCode (cprefix = "GRL_WRITE_", has_type_id = false, cheader_filename = "grilo.h")]
-	public enum MetadataWritingFlags {
-		NORMAL,
-		FULL
-	}
-	[CCode (cprefix = "GRL_PLUGIN_RANK_", has_type_id = false, cheader_filename = "grilo.h")]
-	public enum PluginRank {
-		LOWEST,
-		LOW,
-		DEFAULT,
-		HIGH,
-		HIGHEST
-	}
-	[CCode (cprefix = "GRL_OP_", has_type_id = false, cheader_filename = "grilo.h")]
-	public enum SupportedOps {
-		NONE,
-		METADATA,
-		RESOLVE,
-		BROWSE,
-		SEARCH,
-		QUERY,
-		STORE,
-		STORE_PARENT,
-		REMOVE,
-		SET_METADATA
-	}
-	[CCode (cprefix = "GRL_ERROR_", cheader_filename = "grilo.h")]
-	public errordomain Error {
-		BROWSE_FAILED,
-		SEARCH_FAILED,
-		QUERY_FAILED,
-		METADATA_FAILED,
-		RESOLVE_FAILED,
-		MEDIA_NOT_FOUND,
-		STORE_FAILED,
-		REMOVE_FAILED,
-		SET_METADATA_FAILED,
-	}
-	[CCode (cheader_filename = "grilo.h", instance_pos = 2.1)]
-	public delegate void MediaSourceMetadataCb (Grl.MediaSource source, Grl.Media? media, GLib.Error error);
-	[CCode (cheader_filename = "grilo.h", instance_pos = 2.1)]
-	public delegate void MediaSourceRemoveCb (Grl.MediaSource source, Grl.Media? media, GLib.Error error);
-	[CCode (cheader_filename = "grilo.h", instance_pos = 4.1)]
-	public delegate void MediaSourceResultCb (Grl.MediaSource source, uint browse_id, Grl.Media? media, uint remaining, GLib.Error? error);
-	[CCode (cheader_filename = "grilo.h", instance_pos = 4.1)]
-	public delegate void MediaSourceStoreCb (Grl.MediaSource source, Grl.MediaBox? parent, Grl.Media? media, GLib.Error? error);
-	[CCode (cheader_filename = "grilo.h", instance_pos = 2.1)]
-	public delegate void MetadataSourceResolveCb (Grl.MetadataSource source, Grl.Media? media, GLib.Error? error);
-	[CCode (cheader_filename = "grilo.h", has_target = false)]
-	public delegate void MetadataSourceSetMetadataCb (Grl.MetadataSource source, Grl.Media media, GLib.List failed_keys, void* user_data, GLib.Error error);
-	[CCode (cheader_filename = "grilo.h")]
-	public const int CONFIG_KEY_APIKEY;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_APIKEY_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_APIKEY_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int CONFIG_KEY_APISECRET;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_APISECRET_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_APISECRET_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int CONFIG_KEY_APITOKEN;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_APITOKEN_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_APITOKEN_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int CONFIG_KEY_PLUGIN;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_PLUGIN_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_PLUGIN_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int CONFIG_KEY_SOURCE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_SOURCE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string CONFIG_KEY_SOURCE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string KEYID_FORMAT;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_ALBUM;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_ALBUM_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_ALBUM_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_ARTIST;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_ARTIST_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_ARTIST_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_AUTHOR;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_AUTHOR_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_AUTHOR_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_BITRATE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_BITRATE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_BITRATE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_CHILDCOUNT;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_CHILDCOUNT_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_CHILDCOUNT_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_CHILDCOUNT_UNKNOWN;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_DATE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_DATE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_DATE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_DESCRIPTION;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_DESCRIPTION_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_DESCRIPTION_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_DURATION;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_DURATION_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_DURATION_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_FRAMERATE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_FRAMERATE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_FRAMERATE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_GENRE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_GENRE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_GENRE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_HEIGHT;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_HEIGHT_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_HEIGHT_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_ID;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_ID_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_ID_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_LAST_PLAYED;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_LAST_PLAYED_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_LAST_PLAYED_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_LAST_POSITION;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_LAST_POSITION_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_LAST_POSITION_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_LYRICS;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_LYRICS_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_LYRICS_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_MIME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_MIME_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_MIME_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_PLAY_COUNT;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_PLAY_COUNT_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_PLAY_COUNT_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_RATING;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_RATING_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_RATING_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_SITE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_SITE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_SITE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_SOURCE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_SOURCE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_SOURCE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_THUMBNAIL;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_THUMBNAIL_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_THUMBNAIL_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_TITLE;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_TITLE_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_TITLE_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_URL;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_URL_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_URL_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const int METADATA_KEY_WIDTH;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_WIDTH_DESC;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string METADATA_KEY_WIDTH_NAME;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string PLUGIN_PATH_VAR;
-	[CCode (cheader_filename = "grilo.h")]
-	public const string PLUGIN_RANKS_VAR;
-	[CCode (cheader_filename = "grilo.h")]
-	public static void log_init (string domains);
-}
diff --git a/bindings/vala/grilo-0.1/grilo-0.1-custom.vala b/bindings/vala/grilo-0.1/grilo-0.1-custom.vala
deleted file mode 100644
index 39f57ed..0000000
--- a/bindings/vala/grilo-0.1/grilo-0.1-custom.vala
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace Grl {
-	public class Media {
-		public unowned string get_id ();
-		public unowned string get_url ();
-		public unowned string get_author ();
-		public unowned string get_title ();
-		public unowned string get_description ();
-		public unowned string get_source ();
-		public unowned string get_thumbnail ();
-		public unowned string get_site ();
-		public unowned string get_date ();
-		public unowned string get_mime ();
-		public unowned string get_rating ();
-		public int get_duration ();
-
-		public void set_id (string id);
-		public void set_url (string url);
-		public void set_author (string url);
-		public void set_title (string title);
-		public void set_description (string description);
-		public void set_source (string source);
-		public void set_thumbnail (string thumbnail);
-		public void set_site (string site);
-		public void set_duration (int duration);
-		public void set_date (string date);
-		public void set_mime (string mime);
-	}
-
-	[CCode (instance_pos = 2.1)]
-	public delegate void MediaSourceMetadataCb (MediaSource source, Media? media, GLib.Error error);
-	[CCode (instance_pos = 2.1)]
-	public delegate void MediaSourceRemoveCb (MediaSource source, Media? media, GLib.Error error);
-	[CCode (instance_pos = 4.1)]
-	public delegate void MediaSourceResultCb (MediaSource source, uint browse_id, Media? media, uint remaining, GLib.Error? error);
-	[CCode (instance_pos = 4.1)]
-	public delegate void MediaSourceStoreCb (MediaSource source, MediaBox? parent, Media? media, GLib.Error? error);
-	[CCode (instance_pos = 2.1)]
-	public delegate void MetadataSourceResolveCb (MetadataSource source, Media? media, GLib.Error? error);
-}
diff --git a/bindings/vala/grilo-0.1/grilo-0.1.files b/bindings/vala/grilo-0.1/grilo-0.1.files
deleted file mode 100644
index 3ebedf6..0000000
--- a/bindings/vala/grilo-0.1/grilo-0.1.files
+++ /dev/null
@@ -1,3 +0,0 @@
-include/grilo-0.1/
-lib64/libgrilo-0.1.so
-
diff --git a/bindings/vala/grilo-0.1/grilo-0.1.gi b/bindings/vala/grilo-0.1/grilo-0.1.gi
deleted file mode 100644
index 08f1ead..0000000
--- a/bindings/vala/grilo-0.1/grilo-0.1.gi
+++ /dev/null
@@ -1,932 +0,0 @@
-<?xml version="1.0"?>
-<api version="1.0">
-	<namespace name="Grl">
-		<function name="log_init" symbol="grl_log_init">
-			<return-type type="void"/>
-			<parameters>
-				<parameter name="domains" type="gchar*"/>
-			</parameters>
-		</function>
-		<callback name="GrlMediaSourceMetadataCb">
-			<return-type type="void"/>
-			<parameters>
-				<parameter name="source" type="GrlMediaSource*"/>
-				<parameter name="media" type="GrlMedia*"/>
-				<parameter name="user_data" type="gpointer"/>
-				<parameter name="error" type="GError*"/>
-			</parameters>
-		</callback>
-		<callback name="GrlMediaSourceRemoveCb">
-			<return-type type="void"/>
-			<parameters>
-				<parameter name="source" type="GrlMediaSource*"/>
-				<parameter name="media" type="GrlMedia*"/>
-				<parameter name="user_data" type="gpointer"/>
-				<parameter name="error" type="GError*"/>
-			</parameters>
-		</callback>
-		<callback name="GrlMediaSourceResultCb">
-			<return-type type="void"/>
-			<parameters>
-				<parameter name="source" type="GrlMediaSource*"/>
-				<parameter name="browse_id" type="guint"/>
-				<parameter name="media" type="GrlMedia*"/>
-				<parameter name="remaining" type="guint"/>
-				<parameter name="user_data" type="gpointer"/>
-				<parameter name="error" type="GError*"/>
-			</parameters>
-		</callback>
-		<callback name="GrlMediaSourceStoreCb">
-			<return-type type="void"/>
-			<parameters>
-				<parameter name="source" type="GrlMediaSource*"/>
-				<parameter name="parent" type="GrlMediaBox*"/>
-				<parameter name="media" type="GrlMedia*"/>
-				<parameter name="user_data" type="gpointer"/>
-				<parameter name="error" type="GError*"/>
-			</parameters>
-		</callback>
-		<callback name="GrlMetadataSourceResolveCb">
-			<return-type type="void"/>
-			<parameters>
-				<parameter name="source" type="GrlMetadataSource*"/>
-				<parameter name="media" type="GrlMedia*"/>
-				<parameter name="user_data" type="gpointer"/>
-				<parameter name="error" type="GError*"/>
-			</parameters>
-		</callback>
-		<callback name="GrlMetadataSourceSetMetadataCb">
-			<return-type type="void"/>
-			<parameters>
-				<parameter name="source" type="GrlMetadataSource*"/>
-				<parameter name="media" type="GrlMedia*"/>
-				<parameter name="failed_keys" type="GList*"/>
-				<parameter name="user_data" type="gpointer"/>
-				<parameter name="error" type="GError*"/>
-			</parameters>
-		</callback>
-		<struct name="GrlKeyID">
-		</struct>
-		<struct name="GrlMediaSourceBrowseSpec">
-			<field name="source" type="GrlMediaSource*"/>
-			<field name="browse_id" type="guint"/>
-			<field name="container" type="GrlMedia*"/>
-			<field name="keys" type="GList*"/>
-			<field name="skip" type="guint"/>
-			<field name="count" type="guint"/>
-			<field name="flags" type="GrlMetadataResolutionFlags"/>
-			<field name="callback" type="GrlMediaSourceResultCb"/>
-			<field name="user_data" type="gpointer"/>
-		</struct>
-		<struct name="GrlMediaSourceMetadataSpec">
-			<field name="source" type="GrlMediaSource*"/>
-			<field name="media" type="GrlMedia*"/>
-			<field name="keys" type="GList*"/>
-			<field name="flags" type="GrlMetadataResolutionFlags"/>
-			<field name="callback" type="GrlMediaSourceMetadataCb"/>
-			<field name="user_data" type="gpointer"/>
-		</struct>
-		<struct name="GrlMediaSourceQuerySpec">
-			<field name="source" type="GrlMediaSource*"/>
-			<field name="query_id" type="guint"/>
-			<field name="query" type="gchar*"/>
-			<field name="keys" type="GList*"/>
-			<field name="skip" type="guint"/>
-			<field name="count" type="guint"/>
-			<field name="flags" type="GrlMetadataResolutionFlags"/>
-			<field name="callback" type="GrlMediaSourceResultCb"/>
-			<field name="user_data" type="gpointer"/>
-		</struct>
-		<struct name="GrlMediaSourceRemoveSpec">
-			<field name="source" type="GrlMediaSource*"/>
-			<field name="media_id" type="gchar*"/>
-			<field name="media" type="GrlMedia*"/>
-			<field name="callback" type="GrlMediaSourceRemoveCb"/>
-			<field name="user_data" type="gpointer"/>
-		</struct>
-		<struct name="GrlMediaSourceSearchSpec">
-			<field name="source" type="GrlMediaSource*"/>
-			<field name="search_id" type="guint"/>
-			<field name="text" type="gchar*"/>
-			<field name="keys" type="GList*"/>
-			<field name="skip" type="guint"/>
-			<field name="count" type="guint"/>
-			<field name="flags" type="GrlMetadataResolutionFlags"/>
-			<field name="callback" type="GrlMediaSourceResultCb"/>
-			<field name="user_data" type="gpointer"/>
-		</struct>
-		<struct name="GrlMediaSourceStoreSpec">
-			<field name="source" type="GrlMediaSource*"/>
-			<field name="parent" type="GrlMediaBox*"/>
-			<field name="media" type="GrlMedia*"/>
-			<field name="callback" type="GrlMediaSourceStoreCb"/>
-			<field name="user_data" type="gpointer"/>
-		</struct>
-		<struct name="GrlMetadataKey">
-			<method name="list_new" symbol="grl_metadata_key_list_new">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="first_key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<field name="id" type="GrlKeyID"/>
-			<field name="name" type="gchar*"/>
-			<field name="desc" type="gchar*"/>
-		</struct>
-		<struct name="GrlMetadataSourceResolveSpec">
-			<field name="source" type="GrlMetadataSource*"/>
-			<field name="keys" type="GList*"/>
-			<field name="media" type="GrlMedia*"/>
-			<field name="flags" type="GrlMetadataResolutionFlags"/>
-			<field name="callback" type="GrlMetadataSourceResolveCb"/>
-			<field name="user_data" type="gpointer"/>
-		</struct>
-		<struct name="GrlMetadataSourceSetMetadataSpec">
-			<field name="source" type="GrlMetadataSource*"/>
-			<field name="media" type="GrlMedia*"/>
-			<field name="keys" type="GList*"/>
-			<field name="flags" type="GrlMetadataWritingFlags"/>
-			<field name="callback" type="GrlMetadataSourceSetMetadataCb"/>
-			<field name="user_data" type="gpointer"/>
-			<field name="failed_keys" type="GList*"/>
-		</struct>
-		<struct name="GrlPluginDescriptor">
-			<field name="info" type="GrlPluginInfo"/>
-			<field name="plugin_init" type="GCallback"/>
-			<field name="plugin_deinit" type="GCallback"/>
-		</struct>
-		<struct name="GrlPluginInfo">
-			<field name="id" type="gchar*"/>
-			<field name="name" type="gchar*"/>
-			<field name="desc" type="gchar*"/>
-			<field name="version" type="gchar*"/>
-			<field name="author" type="gchar*"/>
-			<field name="license" type="gchar*"/>
-			<field name="site" type="gchar*"/>
-			<field name="rank" type="gint"/>
-		</struct>
-		<enum name="GrlError">
-			<member name="GRL_ERROR_BROWSE_FAILED" value="1"/>
-			<member name="GRL_ERROR_SEARCH_FAILED" value="2"/>
-			<member name="GRL_ERROR_QUERY_FAILED" value="3"/>
-			<member name="GRL_ERROR_METADATA_FAILED" value="4"/>
-			<member name="GRL_ERROR_RESOLVE_FAILED" value="5"/>
-			<member name="GRL_ERROR_MEDIA_NOT_FOUND" value="6"/>
-			<member name="GRL_ERROR_STORE_FAILED" value="7"/>
-			<member name="GRL_ERROR_REMOVE_FAILED" value="8"/>
-			<member name="GRL_ERROR_SET_METADATA_FAILED" value="9"/>
-		</enum>
-		<enum name="GrlMetadataResolutionFlags">
-			<member name="GRL_RESOLVE_NORMAL" value="0"/>
-			<member name="GRL_RESOLVE_FULL" value="1"/>
-			<member name="GRL_RESOLVE_IDLE_RELAY" value="2"/>
-			<member name="GRL_RESOLVE_FAST_ONLY" value="4"/>
-		</enum>
-		<enum name="GrlMetadataWritingFlags">
-			<member name="GRL_WRITE_NORMAL" value="0"/>
-			<member name="GRL_WRITE_FULL" value="1"/>
-		</enum>
-		<enum name="GrlPluginRank">
-			<member name="GRL_PLUGIN_RANK_LOWEST" value="-64"/>
-			<member name="GRL_PLUGIN_RANK_LOW" value="-32"/>
-			<member name="GRL_PLUGIN_RANK_DEFAULT" value="0"/>
-			<member name="GRL_PLUGIN_RANK_HIGH" value="32"/>
-			<member name="GRL_PLUGIN_RANK_HIGHEST" value="64"/>
-		</enum>
-		<enum name="GrlSupportedOps">
-			<member name="GRL_OP_NONE" value="0"/>
-			<member name="GRL_OP_METADATA" value="1"/>
-			<member name="GRL_OP_RESOLVE" value="2"/>
-			<member name="GRL_OP_BROWSE" value="4"/>
-			<member name="GRL_OP_SEARCH" value="8"/>
-			<member name="GRL_OP_QUERY" value="16"/>
-			<member name="GRL_OP_STORE" value="32"/>
-			<member name="GRL_OP_STORE_PARENT" value="64"/>
-			<member name="GRL_OP_REMOVE" value="128"/>
-			<member name="GRL_OP_SET_METADATA" value="256"/>
-		</enum>
-		<object name="GrlConfig" parent="GrlData" type-name="GrlConfig" get-type="grl_config_get_type">
-			<constructor name="new" symbol="grl_config_new">
-				<return-type type="GrlConfig*"/>
-				<parameters>
-					<parameter name="plugin" type="gchar*"/>
-					<parameter name="source" type="gchar*"/>
-				</parameters>
-			</constructor>
-		</object>
-		<object name="GrlData" parent="GObject" type-name="GrlData" get-type="grl_data_get_type">
-			<method name="add" symbol="grl_data_add">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="get" symbol="grl_data_get">
-				<return-type type="GValue*"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="get_float" symbol="grl_data_get_float">
-				<return-type type="gfloat"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="get_int" symbol="grl_data_get_int">
-				<return-type type="gint"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="get_keys" symbol="grl_data_get_keys">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-				</parameters>
-			</method>
-			<method name="get_overwrite" symbol="grl_data_get_overwrite">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-				</parameters>
-			</method>
-			<method name="get_string" symbol="grl_data_get_string">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="has_key" symbol="grl_data_has_key">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="key_is_known" symbol="grl_data_key_is_known">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<constructor name="new" symbol="grl_data_new">
-				<return-type type="GrlData*"/>
-			</constructor>
-			<method name="remove" symbol="grl_data_remove">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="set" symbol="grl_data_set">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-					<parameter name="value" type="GValue*"/>
-				</parameters>
-			</method>
-			<method name="set_float" symbol="grl_data_set_float">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-					<parameter name="floatvalue" type="gint"/>
-				</parameters>
-			</method>
-			<method name="set_int" symbol="grl_data_set_int">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-					<parameter name="intvalue" type="gint"/>
-				</parameters>
-			</method>
-			<method name="set_overwrite" symbol="grl_data_set_overwrite">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="overwrite" type="gboolean"/>
-				</parameters>
-			</method>
-			<method name="set_string" symbol="grl_data_set_string">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="data" type="GrlData*"/>
-					<parameter name="key" type="GrlKeyID"/>
-					<parameter name="strvalue" type="gchar*"/>
-				</parameters>
-			</method>
-			<property name="overwrite" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
-		</object>
-		<object name="GrlMedia" parent="GrlData" type-name="GrlMedia" get-type="grl_media_get_type">
-			<constructor name="new" symbol="grl_media_new">
-				<return-type type="GrlMedia*"/>
-			</constructor>
-			<method name="set_rating" symbol="grl_media_set_rating">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="media" type="GrlMedia*"/>
-					<parameter name="rating" type="gchar*"/>
-					<parameter name="max" type="gchar*"/>
-				</parameters>
-			</method>
-		</object>
-		<object name="GrlMediaAudio" parent="GrlMedia" type-name="GrlMediaAudio" get-type="grl_media_audio_get_type">
-			<constructor name="new" symbol="grl_media_audio_new">
-				<return-type type="GrlMedia*"/>
-			</constructor>
-		</object>
-		<object name="GrlMediaBox" parent="GrlMedia" type-name="GrlMediaBox" get-type="grl_media_box_get_type">
-			<method name="get_childcount" symbol="grl_media_box_get_childcount">
-				<return-type type="gint"/>
-				<parameters>
-					<parameter name="box" type="GrlMediaBox*"/>
-				</parameters>
-			</method>
-			<constructor name="new" symbol="grl_media_box_new">
-				<return-type type="GrlMedia*"/>
-			</constructor>
-			<method name="set_childcount" symbol="grl_media_box_set_childcount">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="box" type="GrlMediaBox*"/>
-					<parameter name="childcount" type="gint"/>
-				</parameters>
-			</method>
-		</object>
-		<object name="GrlMediaImage" parent="GrlMedia" type-name="GrlMediaImage" get-type="grl_media_image_get_type">
-			<constructor name="new" symbol="grl_media_image_new">
-				<return-type type="GrlMedia*"/>
-			</constructor>
-			<method name="set_size" symbol="grl_media_image_set_size">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="image" type="GrlMediaImage*"/>
-					<parameter name="width" type="gint"/>
-					<parameter name="height" type="gint"/>
-				</parameters>
-			</method>
-		</object>
-		<object name="GrlMediaPlugin" parent="GObject" type-name="GrlMediaPlugin" get-type="grl_media_plugin_get_type">
-			<method name="get_author" symbol="grl_media_plugin_get_author">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="get_description" symbol="grl_media_plugin_get_description">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="get_id" symbol="grl_media_plugin_get_id">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="get_license" symbol="grl_media_plugin_get_license">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="get_name" symbol="grl_media_plugin_get_name">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="get_rank" symbol="grl_media_plugin_get_rank">
-				<return-type type="gint"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="get_site" symbol="grl_media_plugin_get_site">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="get_version" symbol="grl_media_plugin_get_version">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="plugin" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-		</object>
-		<object name="GrlMediaSource" parent="GrlMetadataSource" type-name="GrlMediaSource" get-type="grl_media_source_get_type">
-			<method name="browse" symbol="grl_media_source_browse">
-				<return-type type="guint"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="container" type="GrlMedia*"/>
-					<parameter name="keys" type="GList*"/>
-					<parameter name="skip" type="guint"/>
-					<parameter name="count" type="guint"/>
-					<parameter name="flags" type="GrlMetadataResolutionFlags"/>
-					<parameter name="callback" type="GrlMediaSourceResultCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="cancel" symbol="grl_media_source_cancel">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="operation_id" type="guint"/>
-				</parameters>
-			</method>
-			<method name="get_auto_split_threshold" symbol="grl_media_source_get_auto_split_threshold">
-				<return-type type="guint"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-				</parameters>
-			</method>
-			<method name="get_operation_data" symbol="grl_media_source_get_operation_data">
-				<return-type type="gpointer"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="operation_id" type="guint"/>
-				</parameters>
-			</method>
-			<method name="metadata" symbol="grl_media_source_metadata">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="media" type="GrlMedia*"/>
-					<parameter name="keys" type="GList*"/>
-					<parameter name="flags" type="GrlMetadataResolutionFlags"/>
-					<parameter name="callback" type="GrlMediaSourceMetadataCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="query" symbol="grl_media_source_query">
-				<return-type type="guint"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="query" type="gchar*"/>
-					<parameter name="keys" type="GList*"/>
-					<parameter name="skip" type="guint"/>
-					<parameter name="count" type="guint"/>
-					<parameter name="flags" type="GrlMetadataResolutionFlags"/>
-					<parameter name="callback" type="GrlMediaSourceResultCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="remove" symbol="grl_media_source_remove">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="media" type="GrlMedia*"/>
-					<parameter name="callback" type="GrlMediaSourceRemoveCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="search" symbol="grl_media_source_search">
-				<return-type type="guint"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="text" type="gchar*"/>
-					<parameter name="keys" type="GList*"/>
-					<parameter name="skip" type="guint"/>
-					<parameter name="count" type="guint"/>
-					<parameter name="flags" type="GrlMetadataResolutionFlags"/>
-					<parameter name="callback" type="GrlMediaSourceResultCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="set_auto_split_threshold" symbol="grl_media_source_set_auto_split_threshold">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="threshold" type="guint"/>
-				</parameters>
-			</method>
-			<method name="set_operation_data" symbol="grl_media_source_set_operation_data">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="operation_id" type="guint"/>
-					<parameter name="data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="store" symbol="grl_media_source_store">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="parent" type="GrlMediaBox*"/>
-					<parameter name="media" type="GrlMedia*"/>
-					<parameter name="callback" type="GrlMediaSourceStoreCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<property name="auto-split-threshold" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
-			<vfunc name="browse">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="bs" type="GrlMediaSourceBrowseSpec*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="cancel">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="operation_id" type="guint"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="metadata">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="ms" type="GrlMediaSourceMetadataSpec*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="query">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="qs" type="GrlMediaSourceQuerySpec*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="remove">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="ss" type="GrlMediaSourceRemoveSpec*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="search">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="ss" type="GrlMediaSourceSearchSpec*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="store">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMediaSource*"/>
-					<parameter name="ss" type="GrlMediaSourceStoreSpec*"/>
-				</parameters>
-			</vfunc>
-		</object>
-		<object name="GrlMediaVideo" parent="GrlMedia" type-name="GrlMediaVideo" get-type="grl_media_video_get_type">
-			<constructor name="new" symbol="grl_media_video_new">
-				<return-type type="GrlMedia*"/>
-			</constructor>
-			<method name="set_size" symbol="grl_media_video_set_size">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="video" type="GrlMediaVideo*"/>
-					<parameter name="width" type="gint"/>
-					<parameter name="height" type="gint"/>
-				</parameters>
-			</method>
-		</object>
-		<object name="GrlMetadataSource" parent="GrlMediaPlugin" type-name="GrlMetadataSource" get-type="grl_metadata_source_get_type">
-			<method name="filter_slow" symbol="grl_metadata_source_filter_slow">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="keys" type="GList**"/>
-					<parameter name="return_filtered" type="gboolean"/>
-				</parameters>
-			</method>
-			<method name="filter_supported" symbol="grl_metadata_source_filter_supported">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="keys" type="GList**"/>
-					<parameter name="return_filtered" type="gboolean"/>
-				</parameters>
-			</method>
-			<method name="filter_writable" symbol="grl_metadata_source_filter_writable">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="keys" type="GList**"/>
-					<parameter name="return_filtered" type="gboolean"/>
-				</parameters>
-			</method>
-			<method name="get_description" symbol="grl_metadata_source_get_description">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</method>
-			<method name="get_id" symbol="grl_metadata_source_get_id">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</method>
-			<method name="get_name" symbol="grl_metadata_source_get_name">
-				<return-type type="gchar*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</method>
-			<method name="key_depends" symbol="grl_metadata_source_key_depends">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="key_id" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="resolve" symbol="grl_metadata_source_resolve">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="keys" type="GList*"/>
-					<parameter name="media" type="GrlMedia*"/>
-					<parameter name="flags" type="GrlMetadataResolutionFlags"/>
-					<parameter name="callback" type="GrlMetadataSourceResolveCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="set_metadata" symbol="grl_metadata_source_set_metadata">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="media" type="GrlMedia*"/>
-					<parameter name="keys" type="GList*"/>
-					<parameter name="flags" type="GrlMetadataWritingFlags"/>
-					<parameter name="callback" type="GrlMetadataSourceSetMetadataCb"/>
-					<parameter name="user_data" type="gpointer"/>
-				</parameters>
-			</method>
-			<method name="slow_keys" symbol="grl_metadata_source_slow_keys">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</method>
-			<method name="supported_keys" symbol="grl_metadata_source_supported_keys">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</method>
-			<method name="supported_operations" symbol="grl_metadata_source_supported_operations">
-				<return-type type="GrlSupportedOps"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</method>
-			<method name="writable_keys" symbol="grl_metadata_source_writable_keys">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</method>
-			<property name="source-desc" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
-			<property name="source-id" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
-			<property name="source-name" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
-			<vfunc name="key_depends">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="key_id" type="GrlKeyID"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="resolve">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="rs" type="GrlMetadataSourceResolveSpec*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="set_metadata">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-					<parameter name="sms" type="GrlMetadataSourceSetMetadataSpec*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="slow_keys">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="supported_keys">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="supported_operations">
-				<return-type type="GrlSupportedOps"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</vfunc>
-			<vfunc name="writable_keys">
-				<return-type type="GList*"/>
-				<parameters>
-					<parameter name="source" type="GrlMetadataSource*"/>
-				</parameters>
-			</vfunc>
-		</object>
-		<object name="GrlPluginRegistry" parent="GObject" type-name="GrlPluginRegistry" get-type="grl_plugin_registry_get_type">
-			<method name="add_config" symbol="grl_plugin_registry_add_config">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="config" type="GrlConfig*"/>
-				</parameters>
-			</method>
-			<method name="get_instance" symbol="grl_plugin_registry_get_instance">
-				<return-type type="GrlPluginRegistry*"/>
-			</method>
-			<method name="get_sources" symbol="grl_plugin_registry_get_sources">
-				<return-type type="GrlMediaPlugin**"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="ranked" type="gboolean"/>
-				</parameters>
-			</method>
-			<method name="get_sources_by_operations" symbol="grl_plugin_registry_get_sources_by_operations">
-				<return-type type="GrlMediaPlugin**"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="ops" type="GrlSupportedOps"/>
-					<parameter name="ranked" type="gboolean"/>
-				</parameters>
-			</method>
-			<method name="load" symbol="grl_plugin_registry_load">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="path" type="gchar*"/>
-				</parameters>
-			</method>
-			<method name="load_all" symbol="grl_plugin_registry_load_all">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-				</parameters>
-			</method>
-			<method name="load_directory" symbol="grl_plugin_registry_load_directory">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="path" type="gchar*"/>
-				</parameters>
-			</method>
-			<method name="lookup_metadata_key" symbol="grl_plugin_registry_lookup_metadata_key">
-				<return-type type="GrlMetadataKey*"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="key_id" type="GrlKeyID"/>
-				</parameters>
-			</method>
-			<method name="lookup_source" symbol="grl_plugin_registry_lookup_source">
-				<return-type type="GrlMediaPlugin*"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="source_id" type="gchar*"/>
-				</parameters>
-			</method>
-			<method name="register_source" symbol="grl_plugin_registry_register_source">
-				<return-type type="gboolean"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="plugin" type="GrlPluginInfo*"/>
-					<parameter name="source" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<method name="unload" symbol="grl_plugin_registry_unload">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="plugin_id" type="gchar*"/>
-				</parameters>
-			</method>
-			<method name="unregister_source" symbol="grl_plugin_registry_unregister_source">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="registry" type="GrlPluginRegistry*"/>
-					<parameter name="source" type="GrlMediaPlugin*"/>
-				</parameters>
-			</method>
-			<signal name="source-added" when="FIRST">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="object" type="GrlPluginRegistry*"/>
-					<parameter name="p0" type="GrlMediaPlugin*"/>
-				</parameters>
-			</signal>
-			<signal name="source-removed" when="FIRST">
-				<return-type type="void"/>
-				<parameters>
-					<parameter name="object" type="GrlPluginRegistry*"/>
-					<parameter name="p0" type="GrlMediaPlugin*"/>
-				</parameters>
-			</signal>
-		</object>
-		<constant name="GRL_CONFIG_KEY_APIKEY" type="int" value="3"/>
-		<constant name="GRL_CONFIG_KEY_APIKEY_DESC" type="char*" value="API Key"/>
-		<constant name="GRL_CONFIG_KEY_APIKEY_NAME" type="char*" value="api-key"/>
-		<constant name="GRL_CONFIG_KEY_APISECRET" type="int" value="5"/>
-		<constant name="GRL_CONFIG_KEY_APISECRET_DESC" type="char*" value="API secret"/>
-		<constant name="GRL_CONFIG_KEY_APISECRET_NAME" type="char*" value="api-secret"/>
-		<constant name="GRL_CONFIG_KEY_APITOKEN" type="int" value="4"/>
-		<constant name="GRL_CONFIG_KEY_APITOKEN_DESC" type="char*" value="API token"/>
-		<constant name="GRL_CONFIG_KEY_APITOKEN_NAME" type="char*" value="api-token"/>
-		<constant name="GRL_CONFIG_KEY_PLUGIN" type="int" value="1"/>
-		<constant name="GRL_CONFIG_KEY_PLUGIN_DESC" type="char*" value="Plugin ID to which the configuration applies"/>
-		<constant name="GRL_CONFIG_KEY_PLUGIN_NAME" type="char*" value="plugin"/>
-		<constant name="GRL_CONFIG_KEY_SOURCE" type="int" value="2"/>
-		<constant name="GRL_CONFIG_KEY_SOURCE_DESC" type="char*" value="Source ID to which the configuration applies"/>
-		<constant name="GRL_CONFIG_KEY_SOURCE_NAME" type="char*" value="source"/>
-		<constant name="GRL_KEYID_FORMAT" type="char*" value="u"/>
-		<constant name="GRL_METADATA_KEY_ALBUM" type="int" value="4"/>
-		<constant name="GRL_METADATA_KEY_ALBUM_DESC" type="char*" value="Album the media belongs to"/>
-		<constant name="GRL_METADATA_KEY_ALBUM_NAME" type="char*" value="album"/>
-		<constant name="GRL_METADATA_KEY_ARTIST" type="int" value="3"/>
-		<constant name="GRL_METADATA_KEY_ARTIST_DESC" type="char*" value="Main artist"/>
-		<constant name="GRL_METADATA_KEY_ARTIST_NAME" type="char*" value="artist"/>
-		<constant name="GRL_METADATA_KEY_AUTHOR" type="int" value="8"/>
-		<constant name="GRL_METADATA_KEY_AUTHOR_DESC" type="char*" value="Creator of the media"/>
-		<constant name="GRL_METADATA_KEY_AUTHOR_NAME" type="char*" value="author"/>
-		<constant name="GRL_METADATA_KEY_BITRATE" type="int" value="21"/>
-		<constant name="GRL_METADATA_KEY_BITRATE_DESC" type="char*" value="Media bitrate in Kbits/s"/>
-		<constant name="GRL_METADATA_KEY_BITRATE_NAME" type="char*" value="bitrate"/>
-		<constant name="GRL_METADATA_KEY_CHILDCOUNT" type="int" value="15"/>
-		<constant name="GRL_METADATA_KEY_CHILDCOUNT_DESC" type="char*" value="Number of items contained in a container"/>
-		<constant name="GRL_METADATA_KEY_CHILDCOUNT_NAME" type="char*" value="childcount"/>
-		<constant name="GRL_METADATA_KEY_CHILDCOUNT_UNKNOWN" type="int" value="-1"/>
-		<constant name="GRL_METADATA_KEY_DATE" type="int" value="14"/>
-		<constant name="GRL_METADATA_KEY_DATE_DESC" type="char*" value="Publishing or recording date"/>
-		<constant name="GRL_METADATA_KEY_DATE_NAME" type="char*" value="date"/>
-		<constant name="GRL_METADATA_KEY_DESCRIPTION" type="int" value="9"/>
-		<constant name="GRL_METADATA_KEY_DESCRIPTION_DESC" type="char*" value="Description of the media"/>
-		<constant name="GRL_METADATA_KEY_DESCRIPTION_NAME" type="char*" value="description"/>
-		<constant name="GRL_METADATA_KEY_DURATION" type="int" value="13"/>
-		<constant name="GRL_METADATA_KEY_DURATION_DESC" type="char*" value="Media duration"/>
-		<constant name="GRL_METADATA_KEY_DURATION_NAME" type="char*" value="duration"/>
-		<constant name="GRL_METADATA_KEY_FRAMERATE" type="int" value="19"/>
-		<constant name="GRL_METADATA_KEY_FRAMERATE_DESC" type="char*" value="Frames per second"/>
-		<constant name="GRL_METADATA_KEY_FRAMERATE_NAME" type="char*" value="framerate"/>
-		<constant name="GRL_METADATA_KEY_GENRE" type="int" value="5"/>
-		<constant name="GRL_METADATA_KEY_GENRE_DESC" type="char*" value="Genre of the media"/>
-		<constant name="GRL_METADATA_KEY_GENRE_NAME" type="char*" value="genre"/>
-		<constant name="GRL_METADATA_KEY_HEIGHT" type="int" value="18"/>
-		<constant name="GRL_METADATA_KEY_HEIGHT_DESC" type="char*" value="height of media (&apos;y&apos; resolution)"/>
-		<constant name="GRL_METADATA_KEY_HEIGHT_NAME" type="char*" value="height"/>
-		<constant name="GRL_METADATA_KEY_ID" type="int" value="7"/>
-		<constant name="GRL_METADATA_KEY_ID_DESC" type="char*" value="Identifier of media"/>
-		<constant name="GRL_METADATA_KEY_ID_NAME" type="char*" value="id"/>
-		<constant name="GRL_METADATA_KEY_LAST_PLAYED" type="int" value="23"/>
-		<constant name="GRL_METADATA_KEY_LAST_PLAYED_DESC" type="char*" value="Last time the media was played"/>
-		<constant name="GRL_METADATA_KEY_LAST_PLAYED_NAME" type="char*" value="last played time"/>
-		<constant name="GRL_METADATA_KEY_LAST_POSITION" type="int" value="24"/>
-		<constant name="GRL_METADATA_KEY_LAST_POSITION_DESC" type="char*" value="Time at which playback was interrupted"/>
-		<constant name="GRL_METADATA_KEY_LAST_POSITION_NAME" type="char*" value="playback interrupted time"/>
-		<constant name="GRL_METADATA_KEY_LYRICS" type="int" value="11"/>
-		<constant name="GRL_METADATA_KEY_LYRICS_DESC" type="char*" value="Song lyrics"/>
-		<constant name="GRL_METADATA_KEY_LYRICS_NAME" type="char*" value="lyrics"/>
-		<constant name="GRL_METADATA_KEY_MIME" type="int" value="16"/>
-		<constant name="GRL_METADATA_KEY_MIME_DESC" type="char*" value="Media mime type"/>
-		<constant name="GRL_METADATA_KEY_MIME_NAME" type="char*" value="mime-type"/>
-		<constant name="GRL_METADATA_KEY_PLAY_COUNT" type="int" value="22"/>
-		<constant name="GRL_METADATA_KEY_PLAY_COUNT_DESC" type="char*" value="Media play count"/>
-		<constant name="GRL_METADATA_KEY_PLAY_COUNT_NAME" type="char*" value="play count"/>
-		<constant name="GRL_METADATA_KEY_RATING" type="int" value="20"/>
-		<constant name="GRL_METADATA_KEY_RATING_DESC" type="char*" value="Media rating"/>
-		<constant name="GRL_METADATA_KEY_RATING_NAME" type="char*" value="rating"/>
-		<constant name="GRL_METADATA_KEY_SITE" type="int" value="12"/>
-		<constant name="GRL_METADATA_KEY_SITE_DESC" type="char*" value="Site"/>
-		<constant name="GRL_METADATA_KEY_SITE_NAME" type="char*" value="site"/>
-		<constant name="GRL_METADATA_KEY_SOURCE" type="int" value="10"/>
-		<constant name="GRL_METADATA_KEY_SOURCE_DESC" type="char*" value="Source ID providing the content"/>
-		<constant name="GRL_METADATA_KEY_SOURCE_NAME" type="char*" value="source"/>
-		<constant name="GRL_METADATA_KEY_THUMBNAIL" type="int" value="6"/>
-		<constant name="GRL_METADATA_KEY_THUMBNAIL_DESC" type="char*" value="Thumbnail image"/>
-		<constant name="GRL_METADATA_KEY_THUMBNAIL_NAME" type="char*" value="thumbnail"/>
-		<constant name="GRL_METADATA_KEY_TITLE" type="int" value="1"/>
-		<constant name="GRL_METADATA_KEY_TITLE_DESC" type="char*" value="Title of the media"/>
-		<constant name="GRL_METADATA_KEY_TITLE_NAME" type="char*" value="title"/>
-		<constant name="GRL_METADATA_KEY_URL" type="int" value="2"/>
-		<constant name="GRL_METADATA_KEY_URL_DESC" type="char*" value="Media URL"/>
-		<constant name="GRL_METADATA_KEY_URL_NAME" type="char*" value="url"/>
-		<constant name="GRL_METADATA_KEY_WIDTH" type="int" value="17"/>
-		<constant name="GRL_METADATA_KEY_WIDTH_DESC" type="char*" value="Width of media (&apos;x&apos; resolution)"/>
-		<constant name="GRL_METADATA_KEY_WIDTH_NAME" type="char*" value="width"/>
-		<constant name="GRL_PLUGIN_PATH_VAR" type="char*" value="GRL_PLUGIN_PATH"/>
-		<constant name="GRL_PLUGIN_RANKS_VAR" type="char*" value="GRL_PLUGIN_RANKS"/>
-	</namespace>
-</api>
diff --git a/bindings/vala/grilo-0.1/grilo-0.1.namespace b/bindings/vala/grilo-0.1/grilo-0.1.namespace
deleted file mode 100644
index a83f898..0000000
--- a/bindings/vala/grilo-0.1/grilo-0.1.namespace
+++ /dev/null
@@ -1 +0,0 @@
-Grl
diff --git a/bindings/vala/grilo-0.1/grilo-0.1.defines b/bindings/vala/grilo-uninstalled.defines
similarity index 100%
rename from bindings/vala/grilo-0.1/grilo-0.1.defines
rename to bindings/vala/grilo-uninstalled.defines
diff --git a/tools/vala/grilo-test.vala b/tools/vala/grilo-test.vala
index 59eb585..1627aca 100644
--- a/tools/vala/grilo-test.vala
+++ b/tools/vala/grilo-test.vala
@@ -64,7 +64,7 @@ public class SimplePlaylist : Object {
 	}
 
 	public void search (string q) {
-		unowned GLib.List keys = Grl.MetadataKey.list_new (Grl.METADATA_KEY_ID, Grl.METADATA_KEY_TITLE, Grl.METADATA_KEY_URL);
+		unowned GLib.List keys = Grl.MetadataKey.list_new (Grl.MetadataKey.ID, Grl.MetadataKey.TITLE, Grl.MetadataKey.URL);
 
 		foreach (MediaSource source in source_list) {
 			debug ("%s - %s", source.get_name (), q);
-- 
1.7.1



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