Fix/complete the Caps bindings

Also make sure in Gst.Structure that we're having a mutable structure
before changing any content.
This commit is contained in:
Sebastian Dröge 2009-04-14 13:31:06 +02:00
parent 4b72aea9d5
commit ffa5406b48
12 changed files with 403 additions and 134 deletions

View file

@ -1,5 +1,5 @@
<Type Name="Caps" FullName="Gst.Caps"> <Type Name="Caps" FullName="Gst.Caps">
<TypeSignature Language="C#" Value="public class Caps : GLib.Opaque" /> <TypeSignature Language="C#" Value="public class Caps : GLib.Opaque, System.Collections.IEnumerable" />
<AssemblyInfo> <AssemblyInfo>
<AssemblyName>gstreamer-sharp</AssemblyName> <AssemblyName>gstreamer-sharp</AssemblyName>
<AssemblyVersion>0.9.5.99</AssemblyVersion> <AssemblyVersion>0.9.5.99</AssemblyVersion>
@ -7,7 +7,11 @@
<Base> <Base>
<BaseTypeName>GLib.Opaque</BaseTypeName> <BaseTypeName>GLib.Opaque</BaseTypeName>
</Base> </Base>
<Interfaces /> <Interfaces>
<Interface>
<InterfaceName>System.Collections.IEnumerable</InterfaceName>
</Interface>
</Interfaces>
<Docs> <Docs>
<summary>To be added.</summary> <summary>To be added.</summary>
<remarks>To be added.</remarks> <remarks>To be added.</remarks>
@ -31,29 +35,12 @@
<MemberType>Constructor</MemberType> <MemberType>Constructor</MemberType>
<Parameters /> <Parameters />
<Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs> <Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName=".ctor"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Caps (Gst.Structure s);" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><Parameters><Parameter Name="s" Type="Gst.Structure" /></Parameters><Docs><param name="s">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Caps (Gst.Structure[] s);" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><Parameters><Parameter Name="s" Type="Gst.Structure[]" /></Parameters><Docs><param name="s">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public Caps (IntPtr raw);" /> <MemberSignature Language="C#" Value="public Caps (IntPtr raw);" />
<MemberType>Constructor</MemberType> <MemberType>Constructor</MemberType>
<Parameters><Parameter Name="raw" Type="System.IntPtr" /></Parameters> <Parameters><Parameter Name="raw" Type="System.IntPtr" /></Parameters>
<Docs><param name="raw">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs> <Docs><param name="raw">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName=".ctor"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Append"><MemberSignature Language="C#" Value="public void Append (Gst.Caps caps);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="caps" Type="Gst.Caps" /></Parameters><Docs><param name="caps">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Append"><MemberSignature Language="C#" Value="public void Append (Gst.Structure s);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="s" Type="Gst.Structure" /></Parameters><Docs><param name="s">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Copy">
<MemberSignature Language="C#" Value="public Caps (Gst.Structure structure, IntPtr var_args);" />
<MemberType>Constructor</MemberType>
<Parameters><Parameter Name="structure" Type="Gst.Structure" /><Parameter Name="var_args" Type="System.IntPtr" /></Parameters>
<Docs><param name="structure">To be added.</param><param name="var_args">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Append">
<MemberSignature Language="C#" Value="public void Append (Gst.Caps caps2);" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue>
<Parameters><Parameter Name="caps2" Type="Gst.Caps" /></Parameters>
<Docs><param name="caps2">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="AppendStructure">
<MemberSignature Language="C#" Value="public void AppendStructure (Gst.Structure structure);" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue>
<Parameters><Parameter Name="structure" Type="Gst.Structure" /></Parameters>
<Docs><param name="structure">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Copy">
<MemberSignature Language="C#" Value="public Gst.Caps Copy ();" /> <MemberSignature Language="C#" Value="public Gst.Caps Copy ();" />
<MemberType>Method</MemberType> <MemberType>Method</MemberType>
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue> <ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
@ -65,30 +52,7 @@
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue> <ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
<Parameters><Parameter Name="nth" Type="System.UInt32" /></Parameters> <Parameters><Parameter Name="nth" Type="System.UInt32" /></Parameters>
<Docs><param name="nth">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs> <Docs><param name="nth">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="DoSimplify"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="DoSimplify"><MemberSignature Language="C#" Value="public bool DoSimplify ();" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="GetEnumerator"><MemberSignature Language="C#" Value="public System.Collections.IEnumerator GetEnumerator ();" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Collections.IEnumerator</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="GType">
<MemberSignature Language="C#" Value="public bool DoSimplify ();" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue>
<Parameters />
<Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Flags">
<MemberSignature Language="C#" Value="public Gst.CapsFlags Flags { set; get; }" />
<MemberType>Property</MemberType>
<ReturnValue><ReturnType>Gst.CapsFlags</ReturnType></ReturnValue>
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="FromString">
<MemberSignature Language="C#" Value="public static Gst.Caps FromString (string str1ng);" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
<Parameters><Parameter Name="str1ng" Type="System.String" /></Parameters>
<Docs><param name="str1ng">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="GetStructure">
<MemberSignature Language="C#" Value="public Gst.Structure GetStructure (uint index);" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>Gst.Structure</ReturnType></ReturnValue>
<Parameters><Parameter Name="index" Type="System.UInt32" /></Parameters>
<Docs><param name="index">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="GType">
<MemberSignature Language="C#" Value="public static GLib.GType GType { get; }" /> <MemberSignature Language="C#" Value="public static GLib.GType GType { get; }" />
<MemberType>Property</MemberType> <MemberType>Property</MemberType>
<ReturnValue><ReturnType>GLib.GType</ReturnType></ReturnValue> <ReturnValue><ReturnType>GLib.GType</ReturnType></ReturnValue>
@ -138,42 +102,19 @@
<ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue> <ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue>
<Parameters><Parameter Name="superset" Type="Gst.Caps" /></Parameters> <Parameters><Parameter Name="superset" Type="Gst.Caps" /></Parameters>
<Docs><param name="superset">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs> <Docs><param name="superset">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="MakeWritable"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="IsWritable"><MemberSignature Language="C#" Value="public bool IsWritable { get; }" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="Item"><MemberSignature Language="C#" Value="public Gst.Structure this[uint index] { get; }" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gst.Structure</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.UInt32" /></Parameters><Docs><param name="index">To be added.</param><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="MakeWritable"><MemberSignature Language="C#" Value="public void MakeWritable ();" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Merge"><MemberSignature Language="C#" Value="public void Merge (Gst.Caps caps);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="caps" Type="Gst.Caps" /></Parameters><Docs><param name="caps">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Merge"><MemberSignature Language="C#" Value="public void Merge (Gst.Structure s);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="s" Type="Gst.Structure" /></Parameters><Docs><param name="s">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="NewAny"><MemberSignature Language="C#" Value="public static Gst.Caps NewAny ();" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="NewEmpty">
<MemberSignature Language="C#" Value="public Gst.Caps MakeWritable ();" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
<Parameters />
<Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Merge"><MemberSignature Language="C#" Value="public void Merge (Gst.Caps caps2);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="caps2" Type="Gst.Caps" /></Parameters><Docs><param name="caps2">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="MergeStructure"><MemberSignature Language="C#" Value="public void MergeStructure (Gst.Structure structure);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="structure" Type="Gst.Structure" /></Parameters><Docs><param name="structure">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="NewEmpty">
<MemberSignature Language="C#" Value="public static Gst.Caps NewEmpty ();" /> <MemberSignature Language="C#" Value="public static Gst.Caps NewEmpty ();" />
<MemberType>Method</MemberType> <MemberType>Method</MemberType>
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue> <ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
<Parameters /> <Parameters />
<Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs> <Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Normalize"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="NewFromString"><MemberSignature Language="C#" Value="public static Gst.Caps NewFromString (string str1ng);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue><Parameters><Parameter Name="str1ng" Type="System.String" /></Parameters><Docs><param name="str1ng">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="Normalize">
<MemberSignature Language="C#" Value="public Gst.Caps Normalize ();" /> <MemberSignature Language="C#" Value="public Gst.Caps Normalize ();" />
<MemberType>Method</MemberType> <MemberType>Method</MemberType>
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue> <ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
<Parameters /> <Parameters />
<Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs> <Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Refcount"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="RemoveStructure"><MemberSignature Language="C#" Value="public void RemoveStructure (uint index);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.UInt32" /></Parameters><Docs><param name="index">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Size">
<MemberSignature Language="C#" Value="public int Refcount { set; get; }" />
<MemberType>Property</MemberType>
<ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue>
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="RemoveStructure"><MemberSignature Language="C#" Value="public void RemoveStructure (uint idx);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="idx" Type="System.UInt32" /></Parameters><Docs><param name="idx">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Replace">
<MemberSignature Language="C#" Value="public void Replace (Gst.Caps newcaps);" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue>
<Parameters><Parameter Name="newcaps" Type="Gst.Caps" /></Parameters>
<Docs><param name="newcaps">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="SetSimpleValist">
<MemberSignature Language="C#" Value="public void SetSimpleValist (string field, IntPtr varargs);" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue>
<Parameters><Parameter Name="field" Type="System.String" /><Parameter Name="varargs" Type="System.IntPtr" /></Parameters>
<Docs><param name="field">To be added.</param><param name="varargs">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Size">
<MemberSignature Language="C#" Value="public uint Size { get; }" /> <MemberSignature Language="C#" Value="public uint Size { get; }" />
<MemberType>Property</MemberType> <MemberType>Property</MemberType>
<ReturnValue><ReturnType>System.UInt32</ReturnType></ReturnValue> <ReturnValue><ReturnType>System.UInt32</ReturnType></ReturnValue>
@ -184,18 +125,7 @@
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue> <ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
<Parameters><Parameter Name="subtrahend" Type="Gst.Caps" /></Parameters> <Parameters><Parameter Name="subtrahend" Type="Gst.Caps" /></Parameters>
<Docs><param name="subtrahend">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs> <Docs><param name="subtrahend">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Truncate"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Truncate"><MemberSignature Language="C#" Value="public void Truncate ();" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member><Member MemberName="Union">
<MemberSignature Language="C#" Value="public void Truncate ();" />
<MemberType>Method</MemberType>
<ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue>
<Parameters />
<Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Type">
<MemberSignature Language="C#" Value="public GLib.GType Type { set; get; }" />
<MemberType>Property</MemberType>
<ReturnValue><ReturnType>GLib.GType</ReturnType></ReturnValue>
<Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Union">
<MemberSignature Language="C#" Value="public Gst.Caps Union (Gst.Caps caps2);" /> <MemberSignature Language="C#" Value="public Gst.Caps Union (Gst.Caps caps2);" />
<MemberType>Method</MemberType> <MemberType>Method</MemberType>
<ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue> <ReturnValue><ReturnType>Gst.Caps</ReturnType></ReturnValue>
@ -220,4 +150,9 @@
</Members> </Members>
<Attributes>
<Attribute>
<AttributeName>System.Reflection.DefaultMember("Item")</AttributeName>
</Attribute>
</Attributes>
</Type> </Type>

View file

@ -1,27 +0,0 @@
<Type Name="CapsFlags" FullName="Gst.CapsFlags">
<TypeSignature Language="C#" Value="public enum CapsFlags" />
<AssemblyInfo>
<AssemblyName>gstreamer-sharp</AssemblyName>
<AssemblyVersion>0.9.5.99</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Enum</BaseTypeName>
</Base>
<Attributes>
<Attribute>
<AttributeName>System.Flags</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>To be added.</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName="Any">
<MemberSignature Language="C#" Value="Any" />
<MemberType>Field</MemberType>
<ReturnValue><ReturnType>Gst.CapsFlags</ReturnType></ReturnValue>
<Docs><summary>To be added.</summary></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member>
</Members>
</Type>

View file

@ -74,7 +74,7 @@
<ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue> <ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue>
<Parameters><Parameter Name="field_name" Type="System.String" /><Parameter Name="target" Type="System.Double" /></Parameters> <Parameters><Parameter Name="field_name" Type="System.String" /><Parameter Name="target" Type="System.Double" /></Parameters>
<Docs><param name="field_name">To be added.</param><param name="target">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs> <Docs><param name="field_name">To be added.</param><param name="target">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="FixateFieldNearestFraction"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="FixateFieldNearestFraction"><MemberSignature Language="C#" Value="public bool FixateFieldNearestFraction (string field_name, Gst.Fraction target);" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="field_name" Type="System.String" /><Parameter Name="target" Type="Gst.Fraction" /></Parameters><Docs><param name="field_name">To be added.</param><param name="target">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs></Member><Member MemberName="FixateFieldNearestFraction">
<MemberSignature Language="C#" Value="public bool FixateFieldNearestFraction (string field_name, int target_numerator, int target_denominator);" /> <MemberSignature Language="C#" Value="public bool FixateFieldNearestFraction (string field_name, int target_numerator, int target_denominator);" />
<MemberType>Method</MemberType> <MemberType>Method</MemberType>
<ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue> <ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue>
@ -97,7 +97,7 @@
<ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue> <ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue>
<Parameters><Parameter Name="fieldname" Type="System.String" /><Parameter Name="type" Type="GLib.GType" /></Parameters> <Parameters><Parameter Name="fieldname" Type="System.String" /><Parameter Name="type" Type="GLib.GType" /></Parameters>
<Docs><param name="fieldname">To be added.</param><param name="type">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs> <Docs><param name="fieldname">To be added.</param><param name="type">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks></Docs>
<AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="Item"><MemberSignature Language="C#" Value="public object this[string field] { set; get; }" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Parameters><Parameter Name="field" Type="System.String" /></Parameters><Docs><param name="field">To be added.</param><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="Name"> <AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo></Member><Member MemberName="IsMutable"><MemberSignature Language="C#" Value="public bool IsMutable { get; }" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="Item"><MemberSignature Language="C#" Value="public object this[string field] { set; get; }" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>0.9.5.99</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Parameters><Parameter Name="field" Type="System.String" /></Parameters><Docs><param name="field">To be added.</param><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="Name">
<MemberSignature Language="C#" Value="public string Name { set; get; }" /> <MemberSignature Language="C#" Value="public string Name { set; get; }" />
<MemberType>Property</MemberType> <MemberType>Property</MemberType>
<ReturnValue><ReturnType>System.String</ReturnType></ReturnValue> <ReturnValue><ReturnType>System.String</ReturnType></ReturnValue>

View file

@ -23,7 +23,6 @@
<Type Name="BusSyncHandler" Kind="Delegate" /> <Type Name="BusSyncHandler" Kind="Delegate" />
<Type Name="BusSyncReply" Kind="Enumeration" /> <Type Name="BusSyncReply" Kind="Enumeration" />
<Type Name="Caps" Kind="Class" /> <Type Name="Caps" Kind="Class" />
<Type Name="CapsFlags" Kind="Enumeration" />
<Type Name="ChildAddedArgs" Kind="Class" /> <Type Name="ChildAddedArgs" Kind="Class" />
<Type Name="ChildAddedHandler" Kind="Delegate" /> <Type Name="ChildAddedHandler" Kind="Delegate" />
<Type Name="ChildProxy" Kind="Interface" /> <Type Name="ChildProxy" Kind="Interface" />

View file

@ -0,0 +1,164 @@
public static Gst.Caps NewEmpty () {
return new Gst.Caps ();
}
public Caps (Structure s) : this () {
Append (s);
}
public Caps (Structure[] s) : this () {
foreach (Structure o in s)
Append (o);
}
[DllImport ("gstreamersharpglue-0.10") ]
extern static uint gstsharp_gst_caps_get_refcount_offset ();
static uint refcount_offset = gstsharp_gst_caps_get_refcount_offset ();
private int Refcount {
get {
unsafe {
int* raw_ptr = (int*) ( ( (byte*) Handle) + refcount_offset);
return (*raw_ptr);
}
}
}
public bool IsWritable {
get {
return (Refcount == 1);
}
}
/* FIXME: This is not optimal! */
public void MakeWritable() {
if (IsWritable)
return;
IntPtr copy = gst_caps_copy (Raw);
Raw = copy;
/* ^--- Takes a second ref, not good */
Unref (Raw);
/* ^--- Sets Owned = false, wrong! */
Owned = true;
}
[DllImport ("gstreamer-0.10.dll") ]
private static extern IntPtr gst_caps_get_structure (IntPtr handle, uint index);
public Structure this [uint index] {
get {
if (index >= Size)
throw new ArgumentOutOfRangeException ();
IntPtr raw_ptr = gst_caps_get_structure (Handle, (uint) index);
return (Gst.Structure) new Gst.Structure (raw_ptr);
}
}
private class StructureEnumerator : IEnumerator {
Gst.Caps caps;
long index;
public StructureEnumerator (Gst.Caps caps) {
this.caps = caps;
index = -1;
}
public object Current {
get {
if (index >= caps.Size)
throw new ArgumentOutOfRangeException ();
if (index == -1)
throw new ArgumentException ();
return caps[ (uint) index];
}
}
public bool MoveNext () {
index += 1;
return (index < caps.Size);
}
public void Reset () {
index = -1;
}
}
public IEnumerator GetEnumerator() {
return new StructureEnumerator (this);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_caps_append_structure (IntPtr caps, IntPtr structure);
public void Append (Structure s) {
if (!IsWritable)
throw new ApplicationException ();
gst_caps_append_structure (Handle, s.Copy().Handle);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_caps_append (IntPtr caps, IntPtr caps2);
public void Append (Caps caps) {
if (!IsWritable)
throw new ApplicationException ();
gst_caps_append (Handle, caps.Copy().Handle);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_caps_merge_structure (IntPtr caps, IntPtr structure);
public void Merge (Structure s) {
if (!IsWritable)
throw new ApplicationException ();
gst_caps_merge_structure (Handle, s.Copy().Handle);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_caps_merge (IntPtr caps, IntPtr caps2);
public void Merge (Caps caps) {
if (!IsWritable)
throw new ApplicationException ();
gst_caps_merge (Handle, caps.Copy().Handle);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_caps_remove_structure (IntPtr caps, uint index);
public void RemoveStructure (uint index) {
if (!IsWritable)
throw new ApplicationException ();
if (index >= Size)
throw new ArgumentOutOfRangeException ();
gst_caps_remove_structure (Handle, index);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern bool gst_caps_do_simplify (IntPtr caps);
public bool DoSimplify () {
if (!IsWritable)
throw new ApplicationException ();
return gst_caps_do_simplify (Handle);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_caps_truncate (IntPtr caps);
public void Truncate () {
if (!IsWritable)
throw new ApplicationException ();
gst_caps_truncate (Handle);
}

View file

@ -130,9 +130,6 @@ namespace Gst {
} }
} }
[DllImport ("libgobject-2.0-0.dll") ]
static extern IntPtr g_value_peek_pointer (IntPtr ptr);
static void OnMarshal (IntPtr closure, ref GLib.Value retval, uint argc, IntPtr argsPtr, static void OnMarshal (IntPtr closure, ref GLib.Value retval, uint argc, IntPtr argsPtr,
IntPtr ihint, IntPtr data) { IntPtr ihint, IntPtr data) {
object [] args = new object[argc - 1]; object [] args = new object[argc - 1];

View file

@ -1,18 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<metadata> <metadata>
<attr path="/api/namespace/boxed[@name='Caps']/method[@name='FromString']/return-type" name="owned">true</attr>
<attr path="/api/namespace/interface[@name='ChildProxy']/method[@name='ChildAdded']" name="name">EmitChildAdded</attr>
<attr path="/api/namespace/interface[@name='ChildProxy']/method[@name='ChildRemoved']" name="name">EmitChildRemoved</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 0</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 1</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 2</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 3</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_SET_RESOLUTION']" name="value">MiniObjectFlags.Last &lt;&lt; 4</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_SET_MASTER']" name="value">MiniObjectFlags.Last &lt;&lt; 5</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_LAST']" name="value">MiniObjectFlags.Last &lt;&lt; 8</attr>
<attr path="/api/namespace/object[@name='Bin']" name="disable_gtype_ctor">1</attr> <attr path="/api/namespace/object[@name='Bin']" name="disable_gtype_ctor">1</attr>
<attr path="/api/namespace/object[@name='Bin']/method[@name='AddMany']" name="hidden">1</attr> <attr path="/api/namespace/object[@name='Bin']/method[@name='AddMany']" name="hidden">1</attr>
<attr path="/api/namespace/object[@name='Bin']/method[@name='RemoveMany']" name="hidden">1</attr> <attr path="/api/namespace/object[@name='Bin']/method[@name='RemoveMany']" name="hidden">1</attr>
@ -59,6 +46,54 @@
<attr path="/api/namespace/enum[@name='BusFlags']/member[@cname='GST_BUS_FLUSHING']" name="value">MiniObjectFlags.Last &lt;&lt; 0</attr> <attr path="/api/namespace/enum[@name='BusFlags']/member[@cname='GST_BUS_FLUSHING']" name="value">MiniObjectFlags.Last &lt;&lt; 0</attr>
<attr path="/api/namespace/enum[@name='BusFlags']/member[@cname='GST_BUS_FLAG_LAST']" name="value">MiniObjectFlags.Last &lt;&lt; 1</attr> <attr path="/api/namespace/enum[@name='BusFlags']/member[@cname='GST_BUS_FLAG_LAST']" name="value">MiniObjectFlags.Last &lt;&lt; 1</attr>
<add-node path="/api/namespace/boxed[@name='Caps']">
<implements>
<interface name="IEnumerable" />
</implements>
</add-node>
<attr path="/api/namespace/boxed[@name='Caps']/field[@name='Refcount']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/field[@name='Type']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/field[@name='Flags']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_from_string']/return-type" name="owned">true</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_from_string']" name="name">NewFromString</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_copy_nth']/return-type" name="owned">true</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_replace']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_make_writable']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_truncate']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_do_simplify']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_set_simple_valist']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_set_simple']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_get_structure']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_merge_structure']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_remove_structure']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_append_structure']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_append']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_merge']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_intersect']/return-type" name="owned">true</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_union']/return-type" name="owned">true</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_normalize']/return-type" name="owned">true</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_subtract']/return-type" name="owned">true</attr>
<attr path="/api/namespace/boxed[@name='Caps']/constructor[@cname='gst_caps_new_full_valist']" name="hidden">1</attr>
<change-node-type path="/api/namespace/boxed[@name='Caps']/constructor[@cname='gst_caps_new_any']">method</change-node-type>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_new_any']" name="name">NewAny</attr>
<attr path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_new_any']" name="shared">true</attr>
<add-node path="/api/namespace/boxed[@name='Caps']/method[@cname='gst_caps_new_any']">
<return-type type="GstCaps*" owned="true" />
</add-node>
<attr path="/api/namespace/enum[@name='CapsFlags']" name="hidden">1</attr>
<attr path="/api/namespace/interface[@name='ChildProxy']/method[@name='ChildAdded']" name="name">EmitChildAdded</attr>
<attr path="/api/namespace/interface[@name='ChildProxy']/method[@name='ChildRemoved']" name="name">EmitChildRemoved</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 0</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 1</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 2</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC']" name="value">MiniObjectFlags.Last &lt;&lt; 3</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_SET_RESOLUTION']" name="value">MiniObjectFlags.Last &lt;&lt; 4</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_CAN_SET_MASTER']" name="value">MiniObjectFlags.Last &lt;&lt; 5</attr>
<attr path="/api/namespace/enum[@name='ClockFlags']/member[@cname='GST_CLOCK_FLAG_LAST']" name="value">MiniObjectFlags.Last &lt;&lt; 8</attr>
<attr path="/api/namespace/object[@name='Element']/method[@name='LinkMany']" name="hidden">1</attr> <attr path="/api/namespace/object[@name='Element']/method[@name='LinkMany']" name="hidden">1</attr>
<attr path="/api/namespace/object[@name='Element']/method[@name='UnlinkMany']" name="hidden">1</attr> <attr path="/api/namespace/object[@name='Element']/method[@name='UnlinkMany']" name="hidden">1</attr>
<attr path="/api/namespace/object[@name='Element']/method[@cname='gst_element_add_pad']" name="hidden">1</attr> <attr path="/api/namespace/object[@name='Element']/method[@cname='gst_element_add_pad']" name="hidden">1</attr>
@ -324,6 +359,16 @@
<attr path="/api/namespace/boxed[@name='Structure']" name="opaque">true</attr> <attr path="/api/namespace/boxed[@name='Structure']" name="opaque">true</attr>
<attr path="/api/namespace/boxed[@name='Structure']/field[@name='ParentRefcount']" name="hidden">1</attr> <attr path="/api/namespace/boxed[@name='Structure']/field[@name='ParentRefcount']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@name='SetParentRefcount']" name="hidden">1</attr> <attr path="/api/namespace/boxed[@name='Structure']/method[@name='SetParentRefcount']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_get_name']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_set_name']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_set_value']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_fixate_field_boolean']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_fixate_field_boolean']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_remove_all_fields']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_remove_field']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_fixate_field_nearest_double']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_fixate_field_nearest_int']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_fixate_field_nearest_fraction']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_set_valist']" name="hidden">1</attr> <attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_set_valist']" name="hidden">1</attr>
<attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_get_name_id']" name="hidden">1</attr> <attr path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_get_name_id']" name="hidden">1</attr>
<change-node-type path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_empty_new']">constructor</change-node-type> <change-node-type path="/api/namespace/boxed[@name='Structure']/method[@cname='gst_structure_empty_new']">constructor</change-node-type>

View file

@ -1,5 +1,120 @@
public Structure (string name, params object[] fields) : this (name) [DllImport ("gstreamer-0.10.dll") ]
{ static extern IntPtr gst_structure_get_name (IntPtr raw);
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_structure_set_name (IntPtr raw, IntPtr name);
public string Name {
get {
IntPtr raw_ret = gst_structure_get_name (Handle);
string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
return ret;
}
set {
if (!IsMutable)
throw new ApplicationException ();
IntPtr native_value = GLib.Marshaller.StringToPtrGStrdup (value);
gst_structure_set_name (Handle, native_value);
GLib.Marshaller.Free (native_value);
}
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_structure_set_value (IntPtr raw, IntPtr fieldname, IntPtr value);
public void SetValue (string fieldname, GLib.Value value) {
if (!IsMutable)
throw new ApplicationException ();
IntPtr native_fieldname = GLib.Marshaller.StringToPtrGStrdup (fieldname);
IntPtr native_value = GLib.Marshaller.StructureToPtrAlloc (value);
gst_structure_set_value (Handle, native_fieldname, native_value);
GLib.Marshaller.Free (native_fieldname);
value = (GLib.Value) Marshal.PtrToStructure (native_value, typeof (GLib.Value));
Marshal.FreeHGlobal (native_value);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern bool gst_structure_fixate_field_boolean (IntPtr raw, IntPtr field_name, bool target);
public bool FixateFieldBoolean (string field_name, bool target) {
if (!IsMutable)
throw new ApplicationException ();
IntPtr native_field_name = GLib.Marshaller.StringToPtrGStrdup (field_name);
bool raw_ret = gst_structure_fixate_field_boolean (Handle, native_field_name, target);
bool ret = raw_ret;
GLib.Marshaller.Free (native_field_name);
return ret;
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_structure_remove_all_fields (IntPtr raw);
public void RemoveAllFields() {
if (!IsMutable)
throw new ApplicationException ();
gst_structure_remove_all_fields (Handle);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern void gst_structure_remove_field (IntPtr raw, IntPtr fieldname);
public void RemoveField (string fieldname) {
if (!IsMutable)
throw new ApplicationException ();
IntPtr native_fieldname = GLib.Marshaller.StringToPtrGStrdup (fieldname);
gst_structure_remove_field (Handle, native_fieldname);
GLib.Marshaller.Free (native_fieldname);
}
[DllImport ("gstreamer-0.10.dll") ]
static extern bool gst_structure_fixate_field_nearest_double (IntPtr raw, IntPtr field_name, double target);
public bool FixateFieldNearestDouble (string field_name, double target) {
if (!IsMutable)
throw new ApplicationException ();
IntPtr native_field_name = GLib.Marshaller.StringToPtrGStrdup (field_name);
bool raw_ret = gst_structure_fixate_field_nearest_double (Handle, native_field_name, target);
bool ret = raw_ret;
GLib.Marshaller.Free (native_field_name);
return ret;
}
[DllImport ("gstreamer-0.10.dll") ]
static extern bool gst_structure_fixate_field_nearest_int (IntPtr raw, IntPtr field_name, int target);
public bool FixateFieldNearestInt (string field_name, int target) {
if (!IsMutable)
throw new ApplicationException ();
IntPtr native_field_name = GLib.Marshaller.StringToPtrGStrdup (field_name);
bool raw_ret = gst_structure_fixate_field_nearest_int (Handle, native_field_name, target);
bool ret = raw_ret;
GLib.Marshaller.Free (native_field_name);
return ret;
}
[DllImport ("gstreamer-0.10.dll") ]
static extern bool gst_structure_fixate_field_nearest_fraction (IntPtr raw, IntPtr field_name, int target_numerator, int target_denominator);
public bool FixateFieldNearestFraction (string field_name, int target_numerator, int target_denominator) {
if (!IsMutable)
throw new ApplicationException ();
IntPtr native_field_name = GLib.Marshaller.StringToPtrGStrdup (field_name);
bool raw_ret = gst_structure_fixate_field_nearest_fraction (Handle, native_field_name, target_numerator, target_denominator);
bool ret = raw_ret;
GLib.Marshaller.Free (native_field_name);
return ret;
}
public Structure (string name, params object[] fields) : this (name) {
Set (fields); Set (fields);
} }
@ -34,7 +149,7 @@ public object this [string field] {
v = Gst.Value.CreateValue (value); v = Gst.Value.CreateValue (value);
Set (field, value); Set (field, v);
} }
get { get {
if (field == null) if (field == null)
@ -63,3 +178,28 @@ public static Structure NewFromString (string structure) {
[DllImport ("gstreamer-0.10.dll") ] [DllImport ("gstreamer-0.10.dll") ]
private static extern IntPtr gst_structure_from_string (string structure, IntPtr end); private static extern IntPtr gst_structure_from_string (string structure, IntPtr end);
public bool FixateFieldNearestFraction (string field_name, Fraction target) {
return FixateFieldNearestFraction (field_name, target.Numerator, target.Denominator);
}
[DllImport ("gstreamersharpglue-0.10") ]
extern static uint gstsharp_gst_structure_get_parent_refcount_offset ();
static uint parent_refcount_offset = gstsharp_gst_structure_get_parent_refcount_offset ();
public bool IsMutable {
get {
unsafe {
int **parent_refcount = (int **) ( ( (byte*) Handle) + parent_refcount_offset);
if (*parent_refcount == (int *) IntPtr.Zero)
return true;
if (**parent_refcount == 1)
return true;
return false;
}
}
}

View file

@ -2,9 +2,11 @@ lib_LTLIBRARIES = libgstreamersharpglue-0.10.la
libgstreamersharpglue_0_10_la_SOURCES = \ libgstreamersharpglue_0_10_la_SOURCES = \
buffer.c \ buffer.c \
caps.c \
clock.c \ clock.c \
message.c \ message.c \
bin.c \ bin.c \
structure.c \
gerror.c \ gerror.c \
gobject.c gobject.c

View file

@ -0,0 +1,7 @@
#include <gst/gst.h>
guint
gstsharp_gst_caps_get_refcount_offset (void)
{
return (guint) G_STRUCT_OFFSET (GstCaps, refcount);
}

View file

@ -13,7 +13,7 @@ gstsharp_g_type_from_instance (GTypeInstance * instance)
} }
GType GType
gstsharp_g_value_type (const GValue *val) { gstsharp_g_value_type (const GValue * val)
{
return G_VALUE_TYPE (val); return G_VALUE_TYPE (val);
} }

View file

@ -0,0 +1,7 @@
#include <gst/gst.h>
guint
gstsharp_gst_structure_get_parent_refcount_offset (void)
{
return (guint) G_STRUCT_OFFSET (GstStructure, parent_refcount);
}