static GstBufferClass GetClassStruct (Gst.GLib.GType gtype, bool use_cache) { if (class_structs == null) class_structs = new Hashtable (); if (use_cache && class_structs.Contains (gtype)) return (GstBufferClass) class_structs [gtype]; else { IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset); GstBufferClass class_struct = (GstBufferClass) Marshal.PtrToStructure (class_ptr, typeof (GstBufferClass)); if (use_cache) class_structs.Add (gtype, class_struct); return class_struct; } }
static void OverrideClassStruct (Gst.GLib.GType gtype, GstMixerTrackClass class_struct) { IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset); Marshal.StructureToPtr (class_struct, class_ptr, false); }
static void OverrideParentSet (Gst.GLib.GType gtype, ParentSetNativeDelegate callback) { gstsharp_object_override_parent_set (gtype.GetClassPtr (), callback); }
static void OverrideHandleMessage (Gst.GLib.GType gtype, HandleMessageNativeDelegate callback) { gstsharp_bin_override_handle_message (gtype.GetClassPtr (), callback); }
static void OverrideDoLatency (Gst.GLib.GType gtype, DoLatencyNativeDelegate callback) { gstsharp_bin_override_do_latency (gtype.GetClassPtr (), callback); }
static void OverrideAddElement (Gst.GLib.GType gtype, AddElementNativeDelegate callback) { gstsharp_bin_override_add_element (gtype.GetClassPtr (), callback); }
static void OverrideRemoveElement (Gst.GLib.GType gtype, RemoveElementNativeDelegate callback) { gstsharp_bin_override_remove_element (gtype.GetClassPtr (), callback); }
static void OverrideElementAdded (Gst.GLib.GType gtype, ElementAddedNativeDelegate callback) { gstsharp_bin_override_element_added (gtype.GetClassPtr (), callback); }
static void OverrideClassStruct (Gst.GLib.GType gtype, GstInterpolationControlSourceClass class_struct) { IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset); Marshal.StructureToPtr (class_struct, class_ptr, false); }
static void OverrideClassStruct (Gst.GLib.GType gtype, GstMiniObjectClass class_struct) { IntPtr class_ptr = gtype.GetClassPtr (); Marshal.StructureToPtr (class_struct, class_ptr, false); }
protected static void SetDetails (Gst.GLib.GType gtype, string longname, string klass, string description, string author) { IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 ()); IntPtr native_longname = Gst.GLib.Marshaller.StringToPtrGStrdup (longname); IntPtr native_klass = Gst.GLib.Marshaller.StringToPtrGStrdup (klass); IntPtr native_desc = Gst.GLib.Marshaller.StringToPtrGStrdup (description); IntPtr native_author = Gst.GLib.Marshaller.StringToPtrGStrdup (author); gst_element_class_set_details_simple (class_ptr, native_longname, native_klass, native_desc, native_author); Gst.GLib.Marshaller.Free (native_longname); Gst.GLib.Marshaller.Free (native_klass); Gst.GLib.Marshaller.Free (native_desc); Gst.GLib.Marshaller.Free (native_author); }
protected static void AddPadTemplate (Gst.GLib.GType gtype, Gst.PadTemplate templ) { IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 ()); gst_element_class_add_pad_template (class_ptr, templ.Handle); }