public SignalClosure (IntPtr obj, string signal_name, Delegate custom_marshaler, Signal signal) { gch = GCHandle.Alloc (signal); raw_closure = g_cclosure_new (custom_marshaler, (IntPtr) gch, Notify); closures [raw_closure] = this; handle = obj; name = signal_name; this.custom_marshaler = custom_marshaler; }
public void Free () { Signal[] signals = new Signal [Signals.Count]; Signals.Values.CopyTo (signals, 0); foreach (Signal s in signals) s.Free (); if (hardened) g_object_unref (handle); else g_object_remove_toggle_ref (handle, ToggleNotifyCallback, (IntPtr) gch); reference = null; gch.Free (); }
public static Signal Lookup (Gst.GLib.Object obj, string name, Type args_type) { Signal result = obj.ToggleRef.Signals [name] as Signal; if (result == null) result = new Signal (obj, name, args_type); return result; }
public static Signal Lookup (Gst.GLib.Object obj, string name, Delegate marshaler) { Signal result = obj.ToggleRef.Signals [name] as Signal; if (result == null) result = new Signal (obj, name, marshaler); return result; }