public void LinkMany(Element[] elements)
 {
     if (elements.Length < 1)
         return;
     this.Link (elements[0]);
     for (int i = 0; i < elements.Length - 1; i++) {
         elements[i].Link (elements[i + 1]);
     }
 }
 public void Unlink(Element dest)
 {
     gst_element_unlink (raw, dest.ToIntPtr ());
 }
 public bool Link(Element dest)
 {
     bool ret = gst_element_link (raw, dest.ToIntPtr ());
     return ret;
 }
 public bool Remove(Element element)
 {
     return gst_bin_remove (raw, element.ToIntPtr ());
 }
 public void AddMany(Element[] elements)
 {
     foreach (Element element in elements) {
         Add (element);
     }
 }
 public bool Add(Element element)
 {
     return gst_bin_add (raw, element.ToIntPtr ());
 }
 public void SetProperty(string name, Element value)
 {
     IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
     IntPtr native_value = value.ToIntPtr ();
     gst_util_set_object_arg (raw, native_name, native_value);
     GLib.Marshaller.Free (native_name);
 }