x11_dl/
xf86vmode.rs

1// x11-rs: Rust bindings for X11 libraries
2// The X11 libraries are available under the MIT license.
3// These bindings are public domain.
4
5use std::os::raw::{c_char, c_float, c_int, c_uchar, c_uint, c_ulong, c_ushort};
6
7use super::xlib::{Bool, Display, Time, Window, XEvent};
8
9//
10// functions
11//
12
13x11_link! { Xf86vmode, xxf86vm, ["libXxf86vm.so.1", "libXxf86vm.so"], 22,
14  pub fn XF86VidModeAddModeLine (_4: *mut Display, _3: c_int, _2: *mut XF86VidModeModeInfo, _1: *mut XF86VidModeModeInfo) -> c_int,
15  pub fn XF86VidModeDeleteModeLine (_3: *mut Display, _2: c_int, _1: *mut XF86VidModeModeInfo) -> c_int,
16  pub fn XF86VidModeGetAllModeLines (_4: *mut Display, _3: c_int, _2: *mut c_int, _1: *mut *mut *mut XF86VidModeModeInfo) -> c_int,
17  pub fn XF86VidModeGetDotClocks (_6: *mut Display, _5: c_int, _4: *mut c_int, _3: *mut c_int, _2: *mut c_int, _1: *mut *mut c_int) -> c_int,
18  pub fn XF86VidModeGetGamma (_3: *mut Display, _2: c_int, _1: *mut XF86VidModeGamma) -> c_int,
19  pub fn XF86VidModeGetGammaRamp (_6: *mut Display, _5: c_int, _4: c_int, _3: *mut c_ushort, _2: *mut c_ushort, _1: *mut c_ushort) -> c_int,
20  pub fn XF86VidModeGetGammaRampSize (_3: *mut Display, _2: c_int, _1: *mut c_int) -> c_int,
21  pub fn XF86VidModeGetModeLine (_4: *mut Display, _3: c_int, _2: *mut c_int, _1: *mut XF86VidModeModeLine) -> c_int,
22  pub fn XF86VidModeGetMonitor (_3: *mut Display, _2: c_int, _1: *mut XF86VidModeMonitor) -> c_int,
23  pub fn XF86VidModeGetPermissions (_3: *mut Display, _2: c_int, _1: *mut c_int) -> c_int,
24  pub fn XF86VidModeGetViewPort (_4: *mut Display, _3: c_int, _2: *mut c_int, _1: *mut c_int) -> c_int,
25  pub fn XF86VidModeLockModeSwitch (_3: *mut Display, _2: c_int, _1: c_int) -> c_int,
26  pub fn XF86VidModeModModeLine (_3: *mut Display, _2: c_int, _1: *mut XF86VidModeModeLine) -> c_int,
27  pub fn XF86VidModeQueryExtension (_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> c_int,
28  pub fn XF86VidModeQueryVersion (_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> c_int,
29  pub fn XF86VidModeSetClientVersion (_1: *mut Display) -> c_int,
30  pub fn XF86VidModeSetGamma (_3: *mut Display, _2: c_int, _1: *mut XF86VidModeGamma) -> c_int,
31  pub fn XF86VidModeSetGammaRamp (_6: *mut Display, _5: c_int, _4: c_int, _3: *mut c_ushort, _2: *mut c_ushort, _1: *mut c_ushort) -> c_int,
32  pub fn XF86VidModeSetViewPort (_4: *mut Display, _3: c_int, _2: c_int, _1: c_int) -> c_int,
33  pub fn XF86VidModeSwitchMode (_3: *mut Display, _2: c_int, _1: c_int) -> c_int,
34  pub fn XF86VidModeSwitchToMode (_3: *mut Display, _2: c_int, _1: *mut XF86VidModeModeInfo) -> c_int,
35  pub fn XF86VidModeValidateModeLine (_3: *mut Display, _2: c_int, _1: *mut XF86VidModeModeInfo) -> c_int,
36variadic:
37globals:
38}
39
40//
41// types
42//
43
44#[derive(Debug, Clone, Copy)]
45#[repr(C)]
46pub struct XF86VidModeGamma {
47    pub red: c_float,
48    pub green: c_float,
49    pub blue: c_float,
50}
51
52#[derive(Debug, Clone, Copy, PartialEq)]
53#[repr(C)]
54pub struct XF86VidModeModeInfo {
55    pub dotclock: c_uint,
56    pub hdisplay: c_ushort,
57    pub hsyncstart: c_ushort,
58    pub hsyncend: c_ushort,
59    pub htotal: c_ushort,
60    pub hskew: c_ushort,
61    pub vdisplay: c_ushort,
62    pub vsyncstart: c_ushort,
63    pub vsyncend: c_ushort,
64    pub vtotal: c_ushort,
65    pub flags: c_uint,
66    pub privsize: c_int,
67    pub private: *mut i32,
68}
69
70#[derive(Debug, Clone, Copy)]
71#[repr(C)]
72pub struct XF86VidModeModeLine {
73    pub hdisplay: c_ushort,
74    pub hsyncstart: c_ushort,
75    pub hsyncend: c_ushort,
76    pub htotal: c_ushort,
77    pub hskew: c_ushort,
78    pub vdisplay: c_ushort,
79    pub vsyncstart: c_ushort,
80    pub vsyncend: c_ushort,
81    pub vtotal: c_ushort,
82    pub flags: c_uint,
83    pub privsize: c_int,
84    pub private: *mut i32,
85}
86
87#[derive(Debug, Clone, Copy)]
88#[repr(C)]
89pub struct XF86VidModeMonitor {
90    pub vendor: *mut c_char,
91    pub model: *mut c_char,
92    pub EMPTY: c_float,
93    pub nhsync: c_uchar,
94    pub hsync: *mut XF86VidModeSyncRange,
95    pub nvsync: c_uchar,
96    pub vsync: *mut XF86VidModeSyncRange,
97}
98
99#[derive(Debug, Clone, Copy)]
100#[repr(C)]
101pub struct XF86VidModeSyncRange {
102    pub hi: c_float,
103    pub lo: c_float,
104}
105
106//
107// event structures
108//
109
110#[derive(Debug, Clone, Copy)]
111#[repr(C)]
112pub struct XF86VidModeNotifyEvent {
113    pub type_: c_int,
114    pub serial: c_ulong,
115    pub send_event: Bool,
116    pub display: *mut Display,
117    pub root: Window,
118    pub state: c_int,
119    pub kind: c_int,
120    pub forced: Bool,
121    pub time: Time,
122}
123
124event_conversions_and_tests! {
125  xf86vm_notify: XF86VidModeNotifyEvent,
126}