use std::os::raw::{c_char, c_int, c_long, c_short, c_uchar, c_uint, c_ulong};
use super::xlib::{Atom, Display, Time, XEvent, XModifierKeymap, XID};
x11_link! { XInput, xi, ["libXi.so.6", "libXi.so"], 44,
pub fn XAllowDeviceEvents (_4: *mut Display, _3: *mut XDevice, _2: c_int, _1: c_ulong) -> c_int,
pub fn XChangeDeviceControl (_4: *mut Display, _3: *mut XDevice, _2: c_int, _1: *mut XDeviceControl) -> c_int,
pub fn XChangeDeviceDontPropagateList (_5: *mut Display, _4: c_ulong, _3: c_int, _2: *mut c_ulong, _1: c_int) -> c_int,
pub fn XChangeDeviceKeyMapping (_6: *mut Display, _5: *mut XDevice, _4: c_int, _3: c_int, _2: *mut c_ulong, _1: c_int) -> c_int,
pub fn XChangeDeviceProperty (_8: *mut Display, _7: *mut XDevice, _6: c_ulong, _5: c_ulong, _4: c_int, _3: c_int, _2: *const c_uchar, _1: c_int) -> (),
pub fn XChangeFeedbackControl (_4: *mut Display, _3: *mut XDevice, _2: c_ulong, _1: *mut XFeedbackControl) -> c_int,
pub fn XChangeKeyboardDevice (_2: *mut Display, _1: *mut XDevice) -> c_int,
pub fn XChangePointerDevice (_4: *mut Display, _3: *mut XDevice, _2: c_int, _1: c_int) -> c_int,
pub fn XCloseDevice (_2: *mut Display, _1: *mut XDevice) -> c_int,
pub fn XDeleteDeviceProperty (_3: *mut Display, _2: *mut XDevice, _1: c_ulong) -> (),
pub fn XDeviceBell (_5: *mut Display, _4: *mut XDevice, _3: c_ulong, _2: c_ulong, _1: c_int) -> c_int,
pub fn XFreeDeviceControl (_1: *mut XDeviceControl) -> (),
pub fn XFreeDeviceList (_1: *mut XDeviceInfo) -> (),
pub fn XFreeDeviceMotionEvents (_1: *mut XDeviceTimeCoord) -> (),
pub fn XFreeDeviceState (_1: *mut XDeviceState) -> (),
pub fn XFreeFeedbackList (_1: *mut XFeedbackState) -> (),
pub fn XGetDeviceButtonMapping (_4: *mut Display, _3: *mut XDevice, _2: *mut c_uchar, _1: c_uint) -> c_int,
pub fn XGetDeviceControl (_3: *mut Display, _2: *mut XDevice, _1: c_int) -> *mut XDeviceControl,
pub fn XGetDeviceDontPropagateList (_3: *mut Display, _2: c_ulong, _1: *mut c_int) -> *mut c_ulong,
pub fn XGetDeviceFocus (_5: *mut Display, _4: *mut XDevice, _3: *mut c_ulong, _2: *mut c_int, _1: *mut c_ulong) -> c_int,
pub fn XGetDeviceKeyMapping (_5: *mut Display, _4: *mut XDevice, _3: c_uchar, _2: c_int, _1: *mut c_int) -> *mut c_ulong,
pub fn XGetDeviceModifierMapping (_2: *mut Display, _1: *mut XDevice) -> *mut XModifierKeymap,
pub fn XGetDeviceMotionEvents (_7: *mut Display, _6: *mut XDevice, _5: c_ulong, _4: c_ulong, _3: *mut c_int, _2: *mut c_int, _1: *mut c_int) -> *mut XDeviceTimeCoord,
pub fn XGetDeviceProperty (_12: *mut Display, _11: *mut XDevice, _10: c_ulong, _9: c_long, _8: c_long, _7: c_int, _6: c_ulong, _5: *mut c_ulong, _4: *mut c_int, _3: *mut c_ulong, _2: *mut c_ulong, _1: *mut *mut c_uchar) -> c_int,
pub fn XGetExtensionVersion (_2: *mut Display, _1: *const c_char) -> *mut XExtensionVersion,
pub fn XGetFeedbackControl (_3: *mut Display, _2: *mut XDevice, _1: *mut c_int) -> *mut XFeedbackState,
pub fn XGetSelectedExtensionEvents (_6: *mut Display, _5: c_ulong, _4: *mut c_int, _3: *mut *mut c_ulong, _2: *mut c_int, _1: *mut *mut c_ulong) -> c_int,
pub fn XGrabDevice (_9: *mut Display, _8: *mut XDevice, _7: c_ulong, _6: c_int, _5: c_int, _4: *mut c_ulong, _3: c_int, _2: c_int, _1: c_ulong) -> c_int,
pub fn XGrabDeviceButton (_11: *mut Display, _10: *mut XDevice, _9: c_uint, _8: c_uint, _7: *mut XDevice, _6: c_ulong, _5: c_int, _4: c_uint, _3: *mut c_ulong, _2: c_int, _1: c_int) -> c_int,
pub fn XGrabDeviceKey (_11: *mut Display, _10: *mut XDevice, _9: c_uint, _8: c_uint, _7: *mut XDevice, _6: c_ulong, _5: c_int, _4: c_uint, _3: *mut c_ulong, _2: c_int, _1: c_int) -> c_int,
pub fn XListDeviceProperties (_3: *mut Display, _2: *mut XDevice, _1: *mut c_int) -> *mut c_ulong,
pub fn XListInputDevices (_2: *mut Display, _1: *mut c_int) -> *mut XDeviceInfo,
pub fn XOpenDevice (_2: *mut Display, _1: c_ulong) -> *mut XDevice,
pub fn XQueryDeviceState (_2: *mut Display, _1: *mut XDevice) -> *mut XDeviceState,
pub fn XSelectExtensionEvent (_4: *mut Display, _3: c_ulong, _2: *mut c_ulong, _1: c_int) -> c_int,
pub fn XSendExtensionEvent (_7: *mut Display, _6: *mut XDevice, _5: c_ulong, _4: c_int, _3: c_int, _2: *mut c_ulong, _1: *mut XEvent) -> c_int,
pub fn XSetDeviceButtonMapping (_4: *mut Display, _3: *mut XDevice, _2: *mut c_uchar, _1: c_int) -> c_int,
pub fn XSetDeviceFocus (_5: *mut Display, _4: *mut XDevice, _3: c_ulong, _2: c_int, _1: c_ulong) -> c_int,
pub fn XSetDeviceMode (_3: *mut Display, _2: *mut XDevice, _1: c_int) -> c_int,
pub fn XSetDeviceModifierMapping (_3: *mut Display, _2: *mut XDevice, _1: *mut XModifierKeymap) -> c_int,
pub fn XSetDeviceValuators (_5: *mut Display, _4: *mut XDevice, _3: *mut c_int, _2: c_int, _1: c_int) -> c_int,
pub fn XUngrabDevice (_3: *mut Display, _2: *mut XDevice, _1: c_ulong) -> c_int,
pub fn XUngrabDeviceButton (_6: *mut Display, _5: *mut XDevice, _4: c_uint, _3: c_uint, _2: *mut XDevice, _1: c_ulong) -> c_int,
pub fn XUngrabDeviceKey (_6: *mut Display, _5: *mut XDevice, _4: c_uint, _3: c_uint, _2: *mut XDevice, _1: c_ulong) -> c_int,
variadic:
globals:
}
pub enum _XAnyClassinfo {}
pub type XAnyClassPtr = *mut _XAnyClassinfo;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XDevice {
pub device_id: XID,
pub num_classes: c_int,
pub classes: *mut XInputClassInfo,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XDeviceControl {
pub control: XID,
pub length: c_int,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XDeviceInfo {
pub id: XID,
pub type_: Atom,
pub name: *mut c_char,
pub num_classes: c_int,
pub use_: c_int,
pub inputclassinfo: XAnyClassPtr,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XDeviceState {
pub device_id: XID,
pub num_classes: c_int,
pub data: *mut XInputClass,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XDeviceTimeCoord {
pub time: Time,
pub data: *mut c_int,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XExtensionVersion {
pub present: c_int,
pub major_version: c_short,
pub minor_version: c_short,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XFeedbackControl {
pub class: XID,
pub length: c_int,
pub id: XID,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XFeedbackState {
pub class: XID,
pub length: c_int,
pub id: XID,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XInputClass {
pub class: c_uchar,
pub length: c_uchar,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XInputClassInfo {
pub input_class: c_uchar,
pub event_type_base: c_uchar,
}