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

340 lines
11 KiB
Text

public Event (Gst.GLib.Value val) : base (val) { }
[DllImport ("gstreamersharpglue-0.10.dll") ]
extern static uint gstsharp_gst_event_get_timestamp_offset ();
static uint timestamp_offset = gstsharp_gst_event_get_timestamp_offset ();
public ulong Timestamp {
get {
unsafe {
ulong* raw_ptr = (ulong*) ( ( (byte*) Handle) + timestamp_offset);
return (*raw_ptr);
}
} set {
if (!IsWritable)
throw new ApplicationException ();
unsafe {
ulong* raw_ptr = (ulong*) ( ( (byte*) Handle) + timestamp_offset);
*raw_ptr = value;
}
}
}
[DllImport ("gstreamersharpglue-0.10.dll") ]
extern static uint gstsharp_gst_event_get_src_offset ();
[DllImport ("libgobject-2.0-0.dll") ]
extern static IntPtr g_object_ref (IntPtr handle);
[DllImport ("libgobject-2.0-0.dll") ]
extern static void g_object_unref (IntPtr handle);
static uint src_offset = gstsharp_gst_event_get_src_offset ();
public Gst.Object Src {
get {
unsafe {
IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + src_offset);
return Gst.GLib.Object.GetObject ( (*raw_ptr)) as Gst.Object;
}
} set {
if (!IsWritable)
throw new ApplicationException ();
if (Src != null)
g_object_unref (Src.Handle);
unsafe {
IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + src_offset);
*raw_ptr = value == null ? IntPtr.Zero : g_object_ref (value.Handle);
}
}
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern uint gst_event_get_seqnum (IntPtr raw);
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_set_seqnum (IntPtr raw, uint seqnum);
public uint Seqnum {
get {
uint raw_ret = gst_event_get_seqnum (Handle);
uint ret = raw_ret;
return ret;
} set {
if (!IsWritable)
throw new ApplicationException ();
gst_event_set_seqnum (Handle, value);
}
}
private Gst.Structure cached_structure = null;
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_get_structure (IntPtr raw);
public Gst.Structure Structure {
get {
if (cached_structure != null)
return cached_structure;
IntPtr raw_ret = gst_event_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;
}
}
~Event () {
if (cached_structure != null)
cached_structure.CreateNativeCopy ();
cached_structure = null;
}
public new string TypeName {
get {
return GetTypeName (Type);
}
}
public bool IsUpstream {
get {
return ( (uint) Type & (uint) EventTypeFlags.Upstream) != 0;
}
}
public bool IsDownstream {
get {
return ( (uint) Type & (uint) EventTypeFlags.Downstream) != 0;
}
}
public bool IsSerialized {
get {
return ( (uint) Type & (uint) EventTypeFlags.Serialized) != 0;
}
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern Gst.EventTypeFlags gst_event_type_get_flags (Gst.EventType type);
public static Gst.EventTypeFlags GetTypeFlags (Gst.EventType type) {
return gst_event_type_get_flags (type);
}
public static Gst.EventType MakeType (uint num, Gst.EventTypeFlags flags) {
return (Gst.EventType) ( (num << 4) | (uint) flags);
}
public static uint GetTypeNumber (Gst.EventType type) {
return ( (uint) type) >> 4;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_custom (Gst.EventType type, IntPtr structure);
public static Gst.Event NewCustom (Gst.EventType type, Gst.Structure structure) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_custom (type, (structure != null) ? structure.Handle : IntPtr.Zero), true);
ev.cached_structure = structure;
structure.FreeNative = false;
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_flush_start ();
public static Gst.Event NewFlushStart () {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_flush_start (), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_flush_stop ();
public static Gst.Event NewFlushStop () {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_flush_stop (), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_eos ();
public static Gst.Event NewEos () {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_eos (), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_new_segment_full (bool update, double rate, double applied_rate, Gst.Format format, long start, long stop, long position);
public static Gst.Event NewNewSegment (bool update, double rate, double applied_rate, Gst.Format format, long start, long stop, long position) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_new_segment_full (update, rate, applied_rate, format, start, stop, position), true);
return ev;
}
public static Gst.Event NewNewSegment (bool update, double rate, Gst.Format format, long start, long stop, long position) {
return NewNewSegment (update, rate, 1.0, format, start, stop, position);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_parse_new_segment_full (IntPtr raw, out bool update, out double rate, out double applied_rate, out Gst.Format format, out long start, out long stop, out long position);
public void ParseNewSegment (out bool update, out double rate, out double applied_rate, out Gst.Format format, out long start, out long stop, out long position) {
if (Type != Gst.EventType.NewSegment)
throw new ApplicationException ();
gst_event_parse_new_segment_full (Handle, out update, out rate, out applied_rate, out format, out start, out stop, out position);
}
public void ParseNewSegment (out bool update, out double rate, Gst.Format format, out long start, out long stop, out long position) {
double applied_rate;
ParseNewSegment (out update, out rate, out applied_rate, out format, out start, out stop, out position);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_tag (IntPtr tags);
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_tag_list_copy (IntPtr raw);
public static Gst.Event NewTag (Gst.TagList tags) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_tag ( (tags != null) ? gst_tag_list_copy (tags.Handle) : IntPtr.Zero), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_parse_tag (IntPtr ev, out IntPtr tags);
public void ParseTag (out TagList tags) {
if (Type != EventType.Tag)
throw new ArgumentException ();
IntPtr raw_ptr;
gst_event_parse_tag (Handle, out raw_ptr);
if (raw_ptr == IntPtr.Zero)
tags = null;
else
tags = (TagList) Gst.GLib.Opaque.GetOpaque (raw_ptr, typeof (TagList), true);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_buffer_size (Gst.Format format, long min, long max, bool async);
public static Gst.Event NewBufferSize (Gst.Format format, long min, long max, bool async) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_buffer_size (format, min, max, async), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_parse_buffer_size (IntPtr ev, out Gst.Format format, out long min, out long max, out bool async);
public void ParseBufferSize (out Gst.Format format, out long min, out long max, out bool async) {
if (Type != EventType.BufferSize)
throw new ArgumentException ();
gst_event_parse_buffer_size (Handle, out format, out min, out max, out async);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_qos (double proportion, long diff, ulong timestamp);
public static Gst.Event NewQos (double proportion, long diff, ulong timestamp) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_qos (proportion, diff, timestamp), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_parse_qos (IntPtr ev, out double proportion, out long diff, out ulong timestamp);
public void ParseQos (out double proportion, out long diff, out ulong timestamp) {
if (Type != EventType.Qos)
throw new ArgumentException ();
gst_event_parse_qos (Handle, out proportion, out diff, out timestamp);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_seek (double rate, Gst.Format format, Gst.SeekFlags flags, Gst.SeekType start_type, long start, Gst.SeekType stop_type, long stop);
public static Gst.Event NewSeek (double rate, Gst.Format format, Gst.SeekFlags flags, Gst.SeekType start_type, long start, Gst.SeekType stop_type, long stop) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_seek (rate, format, flags, start_type, start, stop_type, stop), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_parse_seek (IntPtr ev, out double rate, out Gst.Format format, out Gst.SeekFlags flags, out Gst.SeekType start_type, out long start, out Gst.SeekType stop_type, out long stop);
public void ParseSeek (out double rate, out Gst.Format format, out Gst.SeekFlags flags, out Gst.SeekType start_type, out long start, out Gst.SeekType stop_type, out long stop) {
if (Type != EventType.Seek)
throw new ArgumentException ();
gst_event_parse_seek (Handle, out rate, out format, out flags, out start_type, out start, out stop_type, out stop);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_navigation (IntPtr structure);
public static Gst.Event NewNavigation (Gst.Structure structure) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_navigation (structure.Handle), true);
ev.cached_structure = structure;
structure.FreeNative = false;
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_latency (ulong latency);
public static Gst.Event NewLatency (ulong latency) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_latency (latency), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_parse_latency (IntPtr ev, out ulong latency);
public void ParseLatency (out ulong latency) {
if (Type != EventType.Latency)
throw new ArgumentException ();
gst_event_parse_latency (Handle, out latency);
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern IntPtr gst_event_new_step (Gst.Format format, ulong amount, double rate, bool flush, bool intermediate);
public static Gst.Event NewStep (Gst.Format format, ulong amount, double rate, bool flush, bool intermediate) {
Gst.Event ev = (Gst.Event) Gst.MiniObject.GetObject (gst_event_new_step (format, amount, rate, flush, intermediate), true);
return ev;
}
[DllImport ("libgstreamer-0.10.dll") ]
static extern void gst_event_parse_step (IntPtr ev, out Gst.Format format, out ulong amount, out double rate, out bool flush, out bool intermediate);
public void ParseStep (out Gst.Format format, out ulong amount, out double rate, out bool flush, out bool intermediate) {
if (Type != EventType.Step)
throw new ArgumentException ();
gst_event_parse_step (Handle, out format, out amount, out rate, out flush, out intermediate);
}