Fix some more structure ownerships
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Sun, 19 Apr 2009 16:29:19 +0000 (18:29 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sun, 19 Apr 2009 16:29:19 +0000 (18:29 +0200)
gstreamer-sharp/Gstreamer.metadata
gstreamer-sharp/Message.custom
gstreamer-sharp/Structure.custom

index 724b3e7..f924218 100644 (file)
   <attr path="/api/namespace/boxed[@name='Message']/method[@cname='gst_message_get_type']" name="new_flag">1</attr>
   <attr path="/api/namespace/boxed[@name='Message']/field[@name='Timestamp']" name="hidden">1</attr>
   <attr path="/api/namespace/boxed[@name='Message']/field[@name='Src']" name="hidden">1</attr>
+  <attr path="/api/namespace/boxed[@name='Message']/field[@name='Structure']" name="hidden">1</attr>
   <attr path="/api/namespace/boxed[@name='Message']/method[@cname='gst_message_type_to_quark']" name="hidden">1</attr>
   <attr path="/api/namespace/boxed[@name='Message']/method[@cname='gst_message_type_get_name']" name="hidden">1</attr>
   <attr path="/api/namespace/boxed[@name='Message']/constructor" name="hidden">1</attr>
   <attr path="/api/namespace/boxed[@name='Message']/method" name="hidden">1</attr>
-  <remove-attr path="/api/namespace/boxed[@name='Message']/method[@cname='gst_message_get_structure']" name="hidden" />
   <remove-attr path="/api/namespace/boxed[@name='Message']/method[@cname='gst_message_get_type']" name="hidden" />
 
   <attr path="/api/namespace/enum[@name='MessageType']" name="parent">uint</attr>
index 953a87f..53a7331 100644 (file)
@@ -66,6 +66,18 @@ public uint Seqnum {
   }
 }
 
+
+[DllImport ("gstreamer-0.10.dll") ]
+static extern IntPtr gst_message_get_structure (IntPtr raw);
+
+public Gst.Structure Structure {
+  get  {
+    IntPtr raw_ret = gst_structure_copy (gst_message_get_structure (Handle));
+    Gst.Structure ret = raw_ret == IntPtr.Zero ? null : (Gst.Structure) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Structure), false);
+    return ret;
+  }
+}
+
 [DllImport ("gstreamer-0.10.dll") ]
 static extern IntPtr gst_message_new_eos (IntPtr src);
 
index 96fe7b6..a773b30 100644 (file)
@@ -199,7 +199,7 @@ public IEnumerable Fields {
 
 public static Structure NewFromString (string structure) {
   IntPtr raw_ret = gst_structure_from_string (structure, IntPtr.Zero);
-  Gst.Structure ret = raw_ret == IntPtr.Zero ? null : (Gst.Structure) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Structure), false);
+  Gst.Structure ret = raw_ret == IntPtr.Zero ? null : (Gst.Structure) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Structure), true);
   return ret;
 }