diff options
Diffstat (limited to 'sources/generated/Gst/GstSharp.CustomMetaTransformFunctionNative.cs')
-rw-r--r-- | sources/generated/Gst/GstSharp.CustomMetaTransformFunctionNative.cs | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/sources/generated/Gst/GstSharp.CustomMetaTransformFunctionNative.cs b/sources/generated/Gst/GstSharp.CustomMetaTransformFunctionNative.cs new file mode 100644 index 0000000..cccad55 --- /dev/null +++ b/sources/generated/Gst/GstSharp.CustomMetaTransformFunctionNative.cs @@ -0,0 +1,97 @@ +// This file was generated by the Gtk# code generator. +// Any changes made will be lost if regenerated. + +namespace GstSharp { + + using System; + using System.Runtime.InteropServices; + +#region Autogenerated code + [UnmanagedFunctionPointer (CallingConvention.Cdecl)] + internal delegate bool CustomMetaTransformFunctionNative(IntPtr transbuf, IntPtr meta, IntPtr buffer, uint type, IntPtr data, IntPtr user_data); + + internal class CustomMetaTransformFunctionInvoker { + + CustomMetaTransformFunctionNative native_cb; + IntPtr __data; + GLib.DestroyNotify __notify; + + ~CustomMetaTransformFunctionInvoker () + { + if (__notify == null) + return; + __notify (__data); + } + + internal CustomMetaTransformFunctionInvoker (CustomMetaTransformFunctionNative native_cb) : this (native_cb, IntPtr.Zero, null) {} + + internal CustomMetaTransformFunctionInvoker (CustomMetaTransformFunctionNative native_cb, IntPtr data) : this (native_cb, data, null) {} + + internal CustomMetaTransformFunctionInvoker (CustomMetaTransformFunctionNative native_cb, IntPtr data, GLib.DestroyNotify notify) + { + this.native_cb = native_cb; + __data = data; + __notify = notify; + } + + internal Gst.CustomMetaTransformFunction Handler { + get { + return new Gst.CustomMetaTransformFunction(InvokeNative); + } + } + + bool InvokeNative (Gst.Buffer transbuf, Gst.CustomMeta meta, Gst.Buffer buffer, uint type, IntPtr data) + { + IntPtr native_meta = GLib.Marshaller.StructureToPtrAlloc (meta); + bool __result = native_cb (transbuf == null ? IntPtr.Zero : transbuf.Handle, native_meta, buffer == null ? IntPtr.Zero : buffer.Handle, type, __data, __data); + Marshal.FreeHGlobal (native_meta); + return __result; + } + } + + internal class CustomMetaTransformFunctionWrapper { + + public bool NativeCallback (IntPtr transbuf, IntPtr meta, IntPtr buffer, uint type, IntPtr data, IntPtr user_data) + { + try { + bool __ret = managed (transbuf == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (transbuf, typeof (Gst.Buffer), false), Gst.CustomMeta.New (meta), buffer == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (buffer, typeof (Gst.Buffer), false), type, data); + if (release_on_call) + gch.Free (); + return __ret; + } catch (Exception e) { + GLib.ExceptionManager.RaiseUnhandledException (e, false); + return false; + } + } + + bool release_on_call = false; + GCHandle gch; + + public void PersistUntilCalled () + { + release_on_call = true; + gch = GCHandle.Alloc (this); + } + + internal CustomMetaTransformFunctionNative NativeDelegate; + Gst.CustomMetaTransformFunction managed; + + public CustomMetaTransformFunctionWrapper (Gst.CustomMetaTransformFunction managed) + { + this.managed = managed; + if (managed != null) + NativeDelegate = new CustomMetaTransformFunctionNative (NativeCallback); + } + + public static Gst.CustomMetaTransformFunction GetManagedDelegate (CustomMetaTransformFunctionNative native) + { + if (native == null) + return null; + CustomMetaTransformFunctionWrapper wrapper = (CustomMetaTransformFunctionWrapper) native.Target; + if (wrapper == null) + return null; + return wrapper.managed; + } + } +#endregion +} |