context: // This file was generated by the Gtk# code generator.
  // Any changes made will be lost if regenerated.
  
  namespace Gst.Base {
  
  	using System;
  	using System.Collections;
  	using System.Collections.Generic;
  	using System.Runtime.InteropServices;
  
  #region Autogenerated code
  	public partial class CollectPads : Gst.Object {
  
  		public CollectPads (IntPtr raw) : base(raw) {}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_collect_pads_new();
  
  		public CollectPads () : base (IntPtr.Zero)
  		{
  			if (GetType () != typeof (CollectPads)) {
  				CreateNativeObject (new string [0], new GLib.Value[0]);
  				return;
  			}
  			Raw = gst_collect_pads_new();
  		}
  
  		public GLib.SList Data {
  			get {
  				unsafe {
  					IntPtr* raw_ptr = (IntPtr*)(((byte*)Handle) + abi_info.GetFieldOffset("data"));
  					return new GLib.SList((*raw_ptr));
  				}
  			}
  		}
  
  
  		// Internal representation of the wrapped structure ABI.
  		static GLib.AbiStruct _class_abi = null;
  		static public new GLib.AbiStruct class_abi {
  			get {
  				if (_class_abi == null)
  					_class_abi = new GLib.AbiStruct (new List<GLib.AbiField>{ 
  						new GLib.AbiField("_gst_reserved"
  							, Gst.Object.class_abi.Fields
  							, (uint) Marshal.SizeOf(typeof(IntPtr)) * 4 // _gst_reserved
  							, null
  							, null
  							, (uint) Marshal.SizeOf(typeof(IntPtr))
  							, 0
  							),
  					});
  
  				return _class_abi;
  			}
  		}
  
  
  		// End of the ABI representation.
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_collect_pads_get_type();
  
  		public static new GLib.GType GType { 
  			get {
  				IntPtr raw_ret = gst_collect_pads_get_type();
  				GLib.GType ret = new GLib.GType(raw_ret);
  				return ret;
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_collect_pads_add_pad(IntPtr raw, IntPtr pad, uint size, Gst.BaseSharp.CollectDataDestroyNotifyNative destroy_notify, bool _lock);
  
  		public Gst.Base.CollectData AddPad(Gst.Pad pad, uint size, Gst.Base.CollectDataDestroyNotify destroy_notify, bool _lock) {
  			Gst.BaseSharp.CollectDataDestroyNotifyWrapper destroy_notify_wrapper = new Gst.BaseSharp.CollectDataDestroyNotifyWrapper (destroy_notify);
  			destroy_notify_wrapper.PersistUntilCalled ();
  			IntPtr raw_ret = gst_collect_pads_add_pad(Handle, pad == null ? IntPtr.Zero : pad.Handle, size, destroy_notify_wrapper.NativeDelegate, _lock);
  			Gst.Base.CollectData ret = Gst.Base.CollectData.New (raw_ret);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern uint gst_collect_pads_available(IntPtr raw);
  
  		public uint Available() {
  			uint raw_ret = gst_collect_pads_available(Handle);
  			uint ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern int gst_collect_pads_clip_running_time(IntPtr raw, IntPtr cdata, IntPtr buf, out IntPtr outbuf, IntPtr user_data);
  
  		public Gst.FlowReturn ClipRunningTime(Gst.Base.CollectData cdata, Gst.Buffer buf, out Gst.Buffer outbuf, IntPtr user_data) {
  			IntPtr native_cdata = GLib.Marshaller.StructureToPtrAlloc (cdata);
  			IntPtr native_outbuf;
  			int raw_ret = gst_collect_pads_clip_running_time(Handle, native_cdata, buf == null ? IntPtr.Zero : buf.Handle, out native_outbuf, user_data);
  			Gst.FlowReturn ret = (Gst.FlowReturn) raw_ret;
  			Marshal.FreeHGlobal (native_cdata);
  			outbuf = native_outbuf == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (native_outbuf, typeof (Gst.Buffer), true);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_collect_pads_event_default(IntPtr raw, IntPtr data, IntPtr evnt, bool discard);
  
  		public bool EventDefault(Gst.Base.CollectData data, Gst.Event evnt, bool discard) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			bool raw_ret = gst_collect_pads_event_default(Handle, native_data, evnt == null ? IntPtr.Zero : evnt.Handle, discard);
  			bool ret = raw_ret;
  			Marshal.FreeHGlobal (native_data);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern uint gst_collect_pads_flush(IntPtr raw, IntPtr data, uint size);
  
  		public uint Flush(Gst.Base.CollectData data, uint size) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			uint raw_ret = gst_collect_pads_flush(Handle, native_data, size);
  			uint ret = raw_ret;
  			Marshal.FreeHGlobal (native_data);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_collect_pads_peek(IntPtr raw, IntPtr data);
  
  		public Gst.Buffer Peek(Gst.Base.CollectData data) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			IntPtr raw_ret = gst_collect_pads_peek(Handle, native_data);
  			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
  			Marshal.FreeHGlobal (native_data);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_collect_pads_pop(IntPtr raw, IntPtr data);
  
  		public Gst.Buffer Pop(Gst.Base.CollectData data) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			IntPtr raw_ret = gst_collect_pads_pop(Handle, native_data);
  			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
  			Marshal.FreeHGlobal (native_data);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_collect_pads_query_default(IntPtr raw, IntPtr data, IntPtr query, bool discard);
  
  		public bool QueryDefault(Gst.Base.CollectData data, Gst.Query query, bool discard) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			bool raw_ret = gst_collect_pads_query_default(Handle, native_data, query == null ? IntPtr.Zero : query.Handle, discard);
  			bool ret = raw_ret;
  			Marshal.FreeHGlobal (native_data);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_collect_pads_read_buffer(IntPtr raw, IntPtr data, uint size);
  
  		public Gst.Buffer ReadBuffer(Gst.Base.CollectData data, uint size) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			IntPtr raw_ret = gst_collect_pads_read_buffer(Handle, native_data, size);
  			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
  			Marshal.FreeHGlobal (native_data);
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_collect_pads_remove_pad(IntPtr raw, IntPtr pad);
  
  		public bool RemovePad(Gst.Pad pad) {
  			bool raw_ret = gst_collect_pads_remove_pad(Handle, pad == null ? IntPtr.Zero : pad.Handle);
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_buffer_function(IntPtr raw, Gst.BaseSharp.CollectPadsBufferFunctionNative func, IntPtr user_data);
  
  		public Gst.Base.CollectPadsBufferFunction BufferFunction { 
  			set {
  				Gst.BaseSharp.CollectPadsBufferFunctionWrapper value_wrapper = new Gst.BaseSharp.CollectPadsBufferFunctionWrapper (value);
  				gst_collect_pads_set_buffer_function(Handle, value_wrapper.NativeDelegate, IntPtr.Zero);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_clip_function(IntPtr raw, Gst.BaseSharp.CollectPadsClipFunctionNative clipfunc, IntPtr user_data);
  
  		public Gst.Base.CollectPadsClipFunction ClipFunction { 
  			set {
  				Gst.BaseSharp.CollectPadsClipFunctionWrapper value_wrapper = new Gst.BaseSharp.CollectPadsClipFunctionWrapper (value);
  				gst_collect_pads_set_clip_function(Handle, value_wrapper.NativeDelegate, IntPtr.Zero);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_compare_function(IntPtr raw, Gst.BaseSharp.CollectPadsCompareFunctionNative func, IntPtr user_data);
  
  		public Gst.Base.CollectPadsCompareFunction CompareFunction { 
  			set {
  				Gst.BaseSharp.CollectPadsCompareFunctionWrapper value_wrapper = new Gst.BaseSharp.CollectPadsCompareFunctionWrapper (value);
  				gst_collect_pads_set_compare_function(Handle, value_wrapper.NativeDelegate, IntPtr.Zero);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_event_function(IntPtr raw, Gst.BaseSharp.CollectPadsEventFunctionNative func, IntPtr user_data);
  
  		public Gst.Base.CollectPadsEventFunction EventFunction { 
  			set {
  				Gst.BaseSharp.CollectPadsEventFunctionWrapper value_wrapper = new Gst.BaseSharp.CollectPadsEventFunctionWrapper (value);
  				gst_collect_pads_set_event_function(Handle, value_wrapper.NativeDelegate, IntPtr.Zero);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_flush_function(IntPtr raw, Gst.BaseSharp.CollectPadsFlushFunctionNative func, IntPtr user_data);
  
  		public Gst.Base.CollectPadsFlushFunction FlushFunction { 
  			set {
  				Gst.BaseSharp.CollectPadsFlushFunctionWrapper value_wrapper = new Gst.BaseSharp.CollectPadsFlushFunctionWrapper (value);
  				gst_collect_pads_set_flush_function(Handle, value_wrapper.NativeDelegate, IntPtr.Zero);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_flushing(IntPtr raw, bool flushing);
  
  		public bool Flushing { 
  			set {
  				gst_collect_pads_set_flushing(Handle, value);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_function(IntPtr raw, Gst.BaseSharp.CollectPadsFunctionNative func, IntPtr user_data);
  
  		public Gst.Base.CollectPadsFunction Function { 
  			set {
  				Gst.BaseSharp.CollectPadsFunctionWrapper value_wrapper = new Gst.BaseSharp.CollectPadsFunctionWrapper (value);
  				gst_collect_pads_set_function(Handle, value_wrapper.NativeDelegate, IntPtr.Zero);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_query_function(IntPtr raw, Gst.BaseSharp.CollectPadsQueryFunctionNative func, IntPtr user_data);
  
  		public Gst.Base.CollectPadsQueryFunction QueryFunction { 
  			set {
  				Gst.BaseSharp.CollectPadsQueryFunctionWrapper value_wrapper = new Gst.BaseSharp.CollectPadsQueryFunctionWrapper (value);
  				gst_collect_pads_set_query_function(Handle, value_wrapper.NativeDelegate, IntPtr.Zero);
  			}
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_set_waiting(IntPtr raw, IntPtr data, bool waiting);
  
  		public void SetWaiting(Gst.Base.CollectData data, bool waiting) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			gst_collect_pads_set_waiting(Handle, native_data, waiting);
  			Marshal.FreeHGlobal (native_data);
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern bool gst_collect_pads_src_event_default(IntPtr raw, IntPtr pad, IntPtr evnt);
  
  		public bool SrcEventDefault(Gst.Pad pad, Gst.Event evnt) {
  			bool raw_ret = gst_collect_pads_src_event_default(Handle, pad == null ? IntPtr.Zero : pad.Handle, evnt == null ? IntPtr.Zero : evnt.Handle);
  			bool ret = raw_ret;
  			return ret;
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_start(IntPtr raw);
  
  		public void Start() {
  			gst_collect_pads_start(Handle);
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gst_collect_pads_stop(IntPtr raw);
  
  		public void Stop() {
  			gst_collect_pads_stop(Handle);
  		}
  
  		[DllImport("libgstbase-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gst_collect_pads_take_buffer(IntPtr raw, IntPtr data, uint size);
  
  		public Gst.Buffer TakeBuffer(Gst.Base.CollectData data, uint size) {
  			IntPtr native_data = GLib.Marshaller.StructureToPtrAlloc (data);
  			IntPtr raw_ret = gst_collect_pads_take_buffer(Handle, native_data, size);
  			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), true);
  			Marshal.FreeHGlobal (native_data);
  			return ret;
  		}
  
  
  		static CollectPads ()
  		{
  			GtkSharp.GstreamerSharp.ObjectManager.Initialize ();
  		}
  
  		// Internal representation of the wrapped structure ABI.
  		static GLib.AbiStruct _abi_info = null;
  		static public new GLib.AbiStruct abi_info {
  			get {
  				if (_abi_info == null)
  					_abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{ 
  						new GLib.AbiField("data"
  							, Gst.Object.abi_info.Fields
  
gt: 							, (uint) Marshal.SizeOf(typeof(IntPtr)) // data