# requests

request destroy = 0 {

}

request get_all = 1 {

}

request set_repeat_rate = 2 {
    seat: str,
    repeat_rate: i32,
    repeat_delay: i32,
}

request set_keymap = 3 {
    seat: str,
    keymap: fd,
    keymap_len: u32,
}

request use_hardware_cursor = 4 {
    seat: str,
    use_hardware_cursor: u32,
}

request get_keymap = 5 {
    seat: str,
}

request set_accel_profile = 6 {
    id: u32,
    profile: i32,
}

request set_accel_speed = 7 {
    id: u32,
    speed: pod(f64),
}

request set_tap_enabled = 8 {
    id: u32,
    enabled: u32,
}

request set_tap_drag_enabled = 9 {
    id: u32,
    enabled: u32,
}

request set_tap_drag_lock_enabled = 10 {
    id: u32,
    enabled: u32,
}

request set_left_handed = 11 {
    id: u32,
    enabled: u32,
}

request set_natural_scrolling = 12 {
    id: u32,
    enabled: u32,
}

request set_px_per_wheel_scroll = 13 {
    id: u32,
    px: pod(f64),
}

request set_transform_matrix = 14 {
    id: u32,
    m11: pod(f64),
    m12: pod(f64),
    m21: pod(f64),
    m22: pod(f64),
}

request set_cursor_size = 15 {
    seat: str,
    size: u32,
}

request attach = 16 {
    id: u32,
    seat: str,
}

request detach = 17 {
    id: u32,
}

request get_seat = 18 {
    name: str,
}

request get_device = 19 {
    id: u32,
}

# events

event seat = 0 {
    name: str,
    repeat_rate: i32,
    repeat_delay: i32,
    hardware_cursor: u32,
}

event input_device = 1 {
    id: u32,
    name: str,
    seat: str,
    syspath: str,
    devnode: str,
    capabilities: array(pod(i32)),
    accel_available: u32,
    accel_profile: i32,
    accel_speed: pod(f64),
    tap_available: u32,
    tap_enabled: u32,
    tap_drag_enabled: u32,
    tap_drag_lock_enabled: u32,
    left_handed_available: u32,
    left_handed: u32,
    natural_scrolling_available: u32,
    natural_scrolling_enabled: u32,
    px_per_wheel_scroll: pod(f64),
    transform_matrix: array(pod(u8)),
}

event error = 2 {
    msg: str,
}

event keymap = 3 {
    keymap: fd,
    keymap_len: u32,
}
