Also fix indention everywhere and change code to use Gst.MiniObject.GetObject() instead of GLib.Opaque.GetOpaque(). It's currently not possible to implement or use GInterfaces on mini objects but apart from that this should be a great improvement, especially new mini object classes can be defined in C# now.
29 lines
1002 B
Plaintext
29 lines
1002 B
Plaintext
[DllImport ("gstreamersharpglue-0.10") ]
|
|
extern static uint gst__interfacessharp_gst__interfaces_tunernorm_get_framerate_offset ();
|
|
|
|
static uint framerate_offset = gst__interfacessharp_gst__interfaces_tunernorm_get_framerate_offset ();
|
|
public Gst.Fraction Framerate {
|
|
get {
|
|
unsafe {
|
|
IntPtr raw_ptr = (IntPtr) ( ( (byte*) Handle) + framerate_offset);
|
|
GLib.Value v = (GLib.Value) Marshal.PtrToStructure (raw_ptr, typeof (GLib.Value));
|
|
return (Gst.Fraction) v.Val;
|
|
}
|
|
}
|
|
}
|
|
|
|
[DllImport ("gstreamer-0.10.dll") ]
|
|
private static extern void gst_value_set_fraction (IntPtr v, int numerator, int denominator);
|
|
|
|
public TunerNorm (string label, Gst.Fraction framerate) {
|
|
unsafe {
|
|
IntPtr* raw_ptr = (IntPtr*) ( ( (byte*) Handle) + label_offset);
|
|
*raw_ptr = GLib.Marshaller.StringToPtrGStrdup (label);
|
|
|
|
}
|
|
unsafe {
|
|
IntPtr raw_ptr = (IntPtr) ( ( (byte*) Handle) + framerate_offset);
|
|
gst_value_set_fraction (raw_ptr, framerate.Numerator, framerate.Denominator);
|
|
}
|
|
}
|