Add bindings for memindex and fileindex
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 30 May 2009 12:05:13 +0000 (14:05 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 30 May 2009 12:05:13 +0000 (14:05 +0200)
gstreamer-sharp/coreplugins/Makefile.am
gstreamer-sharp/coreplugins/fileindex.cs [new file with mode: 0644]
gstreamer-sharp/coreplugins/memindex.cs [new file with mode: 0644]

index cf3bb49..d168166 100644 (file)
@@ -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 (file)
index 0000000..0442c37
--- /dev/null
@@ -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 (file)
index 0000000..4fe842d
--- /dev/null
@@ -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;
+               } 
+       }
+
+}