gstreamer/gstreamer-sharp/Element.custom

100 lines
2.5 KiB
Text
Raw Normal View History

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 bool AddPad(Pad p)
{
bool ret = gst_element_add_pad(this.Handle, p == null ? IntPtr.Zero : p.Handle);
if(ret)
Gst.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);