public object this[string property] { get { return GetProperty (property).Val; } set { SetProperty (property, value); } } public new GLib.Value GetProperty (string propertyName) { return base.GetProperty (propertyName); } public new void SetProperty (string propertyName, GLib.Value value) { base.SetProperty (propertyName, value); } public void SetProperty (string propertyName, object value) { base.SetProperty (propertyName, new GLib.Value (value)); } public void SetProperty (string propertyName, string value) { base.SetProperty (propertyName, new GLib.Value (value)); } public void SetProperty (string propertyName, int value) { base.SetProperty (propertyName, new GLib.Value (value)); } public void SetProperty (string propertyName, double value) { base.SetProperty (propertyName, new GLib.Value (value)); } public void SetProperty (string propertyName, bool value) { base.SetProperty (propertyName, new GLib.Value (value)); } public bool QueryPosition (Gst.Format format, out long current) { return gst_element_query_position (Handle, ref format, out current); } public bool QueryDuration (Gst.Format format, out long duration) { return gst_element_query_duration (Handle, ref format, out duration); } public void Connect (string signal, DynamicSignalHandler handler) { DynamicSignal.Connect (this, signal, handler); } public void Disconnect (string signal, DynamicSignalHandler handler) { DynamicSignal.Disconnect (this, signal, handler); } public object Emit (string signal, params object[] parameters) { return DynamicSignal.Emit (this, signal, parameters); } [DllImport ("gobject-2.0-0.dll") ] static extern IntPtr g_object_ref (IntPtr raw); public bool AddPad (Pad p) { bool ret = gst_element_add_pad (this.Handle, p == null ? IntPtr.Zero : p.Handle); if (ret) g_object_ref (p.Handle); return ret; } public static bool LinkMany (params Element [] elements) { for (int i = 0; i < elements.Length - 1; i++) { if (!elements[i].Link (elements[i+1])) return false; } return true; } public static void UnlinkMany (params Element [] elements) { for (int i = 0; i < elements.Length - 1; i++) { elements[i].Unlink (elements[i+1]); } } [DllImport ("gstreamer-0.10.dll") ] private static extern bool gst_element_query_position (IntPtr raw, ref Format format, out long cur); [DllImport ("gstreamer-0.10.dll") ] private static extern bool gst_element_query_duration (IntPtr raw, ref Format format, out long duration); [DllImport ("gstreamer-0.10.dll") ] static extern bool gst_element_add_pad (IntPtr raw, IntPtr pad);