gstreamer/gstreamer-sharp/Query.custom
2009-09-20 10:22:16 +02:00

379 lines
13 KiB
Text

public Query (Gst.GLib.Value val) : base (val) { }
private Gst.Structure cached_structure = null;
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_get_structure (IntPtr raw);
public Gst.Structure Structure {
get {
if (cached_structure != null)
return cached_structure;
IntPtr raw_ret = gst_query_get_structure (Handle);
Gst.Structure ret = raw_ret == IntPtr.Zero ? null : (Gst.Structure) Gst.GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Structure), true);
if (ret != null)
ret.FreeNative = false;
cached_structure = ret;
return ret;
}
}
~Query () {
if (cached_structure != null)
cached_structure.CreateNativeCopy ();
cached_structure = null;
}
public new string TypeName {
get {
return GetTypeName (Type);
}
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_application (QueryType type, IntPtr structure);
public static Query NewApplication (Gst.QueryType type, Structure structure) {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_application (type, (structure != null) ? structure.Handle : IntPtr.Zero), true);
query.cached_structure = structure;
structure.FreeNative = false;
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_convert (Gst.Format src_format, long value, Gst.Format dest_format);
public static Query NewConvert (Gst.Format src_format, long value, Gst.Format dest_format) {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_convert (src_format, value, dest_format), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_convert (IntPtr query, Gst.Format src_format, long src_value, Gst.Format dest_format, long dest_value);
public void SetConvert (Gst.Format src_format, long src_value, Gst.Format dest_format, long dest_value) {
if (Type != QueryType.Convert)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_convert (Handle, src_format, src_value, dest_format, dest_value);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_convert (IntPtr query, out Gst.Format src_format, out long src_value, out Gst.Format dest_format, out long dest_value);
public void ParseConvert (out Gst.Format src_format, out long src_value, out Gst.Format dest_format, out long dest_value) {
if (Type != QueryType.Convert)
throw new ApplicationException ();
gst_query_parse_convert (Handle, out src_format, out src_value, out dest_format, out dest_value);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_position (Gst.Format format);
public static Query NewPosition (Gst.Format format) {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_position (format), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_position (IntPtr query, Gst.Format format, long cur);
public void SetPosition (Gst.Format format, long cur) {
if (Type != QueryType.Position)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_position (Handle, format, cur);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_position (IntPtr query, out Gst.Format format, out long cur);
public void ParsePosition (out Gst.Format format, out long cur) {
if (Type != QueryType.Position)
throw new ApplicationException ();
gst_query_parse_position (Handle, out format, out cur);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_duration (Gst.Format format);
public static Query NewDuration (Gst.Format format) {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_duration (format), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_duration (IntPtr query, Gst.Format format, long duration);
public void SetDuration (Gst.Format format, long duration) {
if (Type != QueryType.Duration)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_duration (Handle, format, duration);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_duration (IntPtr query, out Gst.Format format, out long duration);
public void ParseDuration (out Gst.Format format, out long duration) {
if (Type != QueryType.Duration)
throw new ApplicationException ();
gst_query_parse_duration (Handle, out format, out duration);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_latency ();
public static Query NewLatency() {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_latency (), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_latency (IntPtr query, bool live, ulong min, ulong max);
public void SetLatency (bool live, ulong min, ulong max) {
if (Type != QueryType.Latency)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_latency (Handle, live, min, max);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_latency (IntPtr query, out bool live, out ulong min, out ulong max);
public void ParseLatency (out bool live, out ulong min, out ulong max) {
if (Type != QueryType.Latency)
throw new ApplicationException ();
gst_query_parse_latency (Handle, out live, out min, out max);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_seeking (Gst.Format format);
public static Query NewSeeking (Gst.Format format) {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_seeking (format), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_seeking (IntPtr query, Gst.Format format, bool seekable, long segment_start, long segment_stop);
public void SetSeeking (Gst.Format format, bool seekable, long segment_start, long segment_stop) {
if (Type != QueryType.Seeking)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_seeking (Handle, format, seekable, segment_start, segment_stop);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_seeking (IntPtr query, out Gst.Format format, out bool seekable, out long segment_start, out long segment_stop);
public void ParseSeeking (out Gst.Format format, out bool seekable, out long segment_start, out long segment_stop) {
if (Type != QueryType.Seeking)
throw new ApplicationException ();
gst_query_parse_seeking (Handle, out format, out seekable, out segment_start, out segment_stop);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_formats ();
public static Query NewFormats() {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_formats (), true);
return query;
}
public void SetFormats (Gst.Format[] formats) {
if (Type != QueryType.Formats)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
Structure s = this.Structure;
Gst.List l = new Gst.List (formats);
s["formats"] = l;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_formats_length (IntPtr query, out uint n_formats);
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_formats_nth (IntPtr query, uint nth, out Gst.Format format);
public void ParseFormats (out Gst.Format[] formats) {
if (Type != QueryType.Formats)
throw new ApplicationException ();
uint length;
gst_query_parse_formats_length (Handle, out length);
formats = new Gst.Format[length];
for (uint i = 0; i < length; i++)
gst_query_parse_formats_nth (Handle, i, out formats[i]);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_segment (Gst.Format format);
public static Query NewSegment (Gst.Format format) {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_segment (format), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_segment (IntPtr query, double rate, Gst.Format format, long segment_start, long segment_stop);
public void SetSegment (double rate, Gst.Format format, long segment_start, long segment_stop) {
if (Type != QueryType.Segment)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_segment (Handle, rate, format, segment_start, segment_stop);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_segment (IntPtr query, out double rate, out Gst.Format format, out long segment_start, out long segment_stop);
public void ParseSegment (out double rate, out Gst.Format format, out long segment_start, out long segment_stop) {
if (Type != QueryType.Segment)
throw new ApplicationException ();
gst_query_parse_segment (Handle, out rate, out format, out segment_start, out segment_stop);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_buffering (Gst.Format format);
public static Query NewBuffering (Gst.Format format) {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_buffering (format), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_buffering_percent (IntPtr query, bool busy, int percent);
public void SetBufferingPercent (bool busy, int percent) {
if (Type != QueryType.Buffering)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_buffering_percent (Handle, busy, percent);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_buffering_percent (IntPtr query, out bool busy, out int percent);
public void ParseBufferingPercent (out bool busy, out int percent) {
if (Type != QueryType.Buffering)
throw new ApplicationException ();
gst_query_parse_buffering_percent (Handle, out busy, out percent);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_buffering_stats (IntPtr query, Gst.BufferingMode mode, int avg_in, int avg_out, long buffering_left);
public void SetBufferingStats (Gst.BufferingMode mode, int avg_in, int avg_out, long buffering_left) {
if (Type != QueryType.Buffering)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_buffering_stats (Handle, mode, avg_in, avg_out, buffering_left);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_buffering_stats (IntPtr query, out Gst.BufferingMode mode, out int avg_in, out int avg_out, out long buffering_left);
public void ParseBufferingStats (out Gst.BufferingMode mode, out int avg_in, out int avg_out, out long buffering_left) {
if (Type != QueryType.Buffering)
throw new ApplicationException ();
gst_query_parse_buffering_stats (Handle, out mode, out avg_in, out avg_out, out buffering_left);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_buffering_range (IntPtr query, Gst.Format format, long start, long stop, long estimated_total);
public void SetBufferingRange (Gst.Format format, long start, long stop, long estimated_total) {
if (Type != QueryType.Buffering)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
gst_query_set_buffering_range (Handle, format, start, stop, estimated_total);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_buffering_range (IntPtr query, out Gst.Format format, out long start, out long stop, out long estimated_total);
public void ParseBufferingRange (out Gst.Format format, out long start, out long stop, out long estimated_total) {
if (Type != QueryType.Buffering)
throw new ApplicationException ();
gst_query_parse_buffering_range (Handle, out format, out start, out stop, out estimated_total);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_query_new_uri ();
public static Query NewUri() {
Query query = (Query) Gst.MiniObject.GetObject (gst_query_new_uri (), true);
return query;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_set_uri (IntPtr query, IntPtr uri);
public void SetUri (string uri) {
if (Type != QueryType.Uri)
throw new ApplicationException ();
if (!IsWritable)
throw new ApplicationException ();
IntPtr raw_string = Gst.GLib.Marshaller.StringToPtrGStrdup (uri);
gst_query_set_uri (Handle, raw_string);
Gst.GLib.Marshaller.Free (raw_string);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_query_parse_uri (IntPtr query, out IntPtr uri);
public void ParseUri (out string uri) {
if (Type != QueryType.Uri)
throw new ApplicationException ();
IntPtr raw_string;
gst_query_parse_uri (Handle, out raw_string);
uri = Gst.GLib.Marshaller.Utf8PtrToString (raw_string);
}