summaryrefslogtreecommitdiff
path: root/gstreamer-sharp/TunerNorm.custom
blob: dc7be60dc5ecd6cdc73b4343451a4b5e1213cd95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[DllImport ("gstreamersharpglue-0.10.dll") ]
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("libgstreamer-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);
  }
}