From b8d3082a96b1d77756f4248d6e7b3f8c255d633b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 30 May 2009 14:05:13 +0200 Subject: [PATCH] Add bindings for memindex and fileindex --- gstreamer-sharp/coreplugins/Makefile.am | 6 +++-- gstreamer-sharp/coreplugins/fileindex.cs | 44 ++++++++++++++++++++++++++++++++ gstreamer-sharp/coreplugins/memindex.cs | 28 ++++++++++++++++++++ 3 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 gstreamer-sharp/coreplugins/fileindex.cs create mode 100644 gstreamer-sharp/coreplugins/memindex.cs diff --git a/gstreamer-sharp/coreplugins/Makefile.am b/gstreamer-sharp/coreplugins/Makefile.am index cf3bb49..d168166 100644 --- a/gstreamer-sharp/coreplugins/Makefile.am +++ b/gstreamer-sharp/coreplugins/Makefile.am @@ -7,10 +7,12 @@ METADATA_FILES = typefind.metadata \ fakesrc.metadata \ fakesink.metadata \ identity.metadata -CS_FILES = $(patsubst %,%.cs,$(ELEMENTS)) +CS_FILES = $(patsubst %,%.cs,$(ELEMENTS)) \ + memindex.cs \ + fileindex.cs XML_FILES = $(patsubst %,%.xml,$(ELEMENTS)) -EXTRA_DIST = $(CUSTOM_FILES) $(INSPECT_FILES) +EXTRA_DIST = $(CUSTOM_FILES) $(INSPECT_FILES) memindex.cs fileindex.cs CLEANFILES = $(XML_FILES) $(CS_FILES) plugins-update: $(patsubst inspect/%.raw, inspect-%, $(INSPECT_FILES)) diff --git a/gstreamer-sharp/coreplugins/fileindex.cs b/gstreamer-sharp/coreplugins/fileindex.cs new file mode 100644 index 0000000..0442c37 --- /dev/null +++ b/gstreamer-sharp/coreplugins/fileindex.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections; +using System.Runtime.InteropServices; +using GLib; +using Gst; + +namespace Gst.CorePlugins { + [GTypeName ("GstFileIndex")] + public class FileIndex : Gst.Index { + public FileIndex (IntPtr raw) : base (raw) { } + + [DllImport("libgstreamer-0.10.dll") ] + static extern IntPtr gst_index_factory_make (IntPtr index); + + public FileIndex () : base (IntPtr.Zero) { + IntPtr native_index = GLib.Marshaller.StringToPtrGStrdup ("fileindex"); + Raw = gst_index_factory_make (native_index); + GLib.Marshaller.Free (native_index); + if (Raw == IntPtr.Zero) + throw new Exception ("Failed to instantiate index \"fileindex\""); + } + + public static FileIndex Make () { + return Gst.IndexFactory.Make ("fileindex") as FileIndex; + } + + [GLib.Property ("location")] + public string Location { + get { + GLib.Value val = GetProperty ("location"); + string ret = (string) val.Val; + val.Dispose (); + return ret; + } + set { + GLib.Value val = new GLib.Value (this, "location"); + val.Val = value; + SetProperty ("location", val); + val.Dispose (); + } + } + } + +} diff --git a/gstreamer-sharp/coreplugins/memindex.cs b/gstreamer-sharp/coreplugins/memindex.cs new file mode 100644 index 0000000..4fe842d --- /dev/null +++ b/gstreamer-sharp/coreplugins/memindex.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections; +using System.Runtime.InteropServices; +using GLib; +using Gst; + +namespace Gst.CorePlugins { + [GTypeName ("GstMemIndex")] + public class MemIndex : Gst.Index { + public MemIndex (IntPtr raw) : base (raw) { } + + [DllImport("libgstreamer-0.10.dll") ] + static extern IntPtr gst_index_factory_make (IntPtr index); + + public MemIndex () : base (IntPtr.Zero) { + IntPtr native_index = GLib.Marshaller.StringToPtrGStrdup ("memindex"); + Raw = gst_index_factory_make (native_index); + GLib.Marshaller.Free (native_index); + if (Raw == IntPtr.Zero) + throw new Exception ("Failed to instantiate index \"memindex\""); + } + + public static MemIndex Make () { + return Gst.IndexFactory.Make ("memindex") as MemIndex; + } + } + +} -- 2.7.4