#![allow(dead_code)]

cenum! {
    LogPriority, LIBINPUT_LOG_PRIORITY;

    LIBINPUT_LOG_PRIORITY_DEBUG = 10,
    LIBINPUT_LOG_PRIORITY_INFO = 20,
    LIBINPUT_LOG_PRIORITY_ERROR = 30,
}

cenum! {
    DeviceCapability, LIBINPUT_DEVICE_CAPABILITY;

    LIBINPUT_DEVICE_CAP_KEYBOARD = 0,
    LIBINPUT_DEVICE_CAP_POINTER = 1,
    LIBINPUT_DEVICE_CAP_TOUCH = 2,
    LIBINPUT_DEVICE_CAP_TABLET_TOOL = 3,
    LIBINPUT_DEVICE_CAP_TABLET_PAD = 4,
    LIBINPUT_DEVICE_CAP_GESTURE = 5,
    LIBINPUT_DEVICE_CAP_SWITCH = 6,
}

cenum! {
    KeyState, LIBINPUT_KEY_STATE;

    LIBINPUT_KEY_STATE_RELEASED = 0,
    LIBINPUT_KEY_STATE_PRESSED = 1,
}

cenum! {
    Led, LIBINPUT_LED;

    LIBINPUT_LED_NUM_LOCK = 1 << 0,
    LIBINPUT_LED_CAPS_LOCK = 1 << 1,
    LIBINPUT_LED_SCROLL_LOCK = 1 << 2,
    LIBINPUT_LED_COMPOSE = 1 << 3,
    LIBINPUT_LED_KANA = 1 << 4,
}

cenum! {
    ButtonState, LIBINPUT_BUTTON_STATE;

    LIBINPUT_BUTTON_STATE_RELEASED = 0,
    LIBINPUT_BUTTON_STATE_PRESSED = 1,
}

cenum! {
    PointerAxis, LIBINPUT_POINTER_AXIS;

    LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL = 0,
    LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL = 1,
}

cenum! {
    PointerAxisSource, LIBINPUT_POINTER_AXIS_SOURCE;

    LIBINPUT_POINTER_AXIS_SOURCE_WHEEL = 1,
    LIBINPUT_POINTER_AXIS_SOURCE_FINGER = 2,
    LIBINPUT_POINTER_AXIS_SOURCE_CONTINUOUS = 3,
    LIBINPUT_POINTER_AXIS_SOURCE_WHEEL_TILT = 4,
}

cenum! {
    TabletPadRingAxisSource, LIBINPUT_TABLET_PAD_RING_AXIS_SOURCE;

    LIBINPUT_TABLET_PAD_RING_SOURCE_UNKNOWN = 1,
    LIBINPUT_TABLET_PAD_RING_SOURCE_FINGER = 2,
}

cenum! {
    TabletPadStripAxisSource, LIBINPUT_TABLET_PAD_STRIP_AXIS_SOURCE;

    LIBINPUT_TABLET_PAD_STRIP_SOURCE_UNKNOWN = 1,
    LIBINPUT_TABLET_PAD_STRIP_SOURCE_FINGER = 2,
}

cenum! {
    TabletToolType, LIBINPUT_TABLET_TOOL_TYPE;

    LIBINPUT_TABLET_TOOL_TYPE_PEN = 1,
    LIBINPUT_TABLET_TOOL_TYPE_ERASER = 2,
    LIBINPUT_TABLET_TOOL_TYPE_BRUSH = 3,
    LIBINPUT_TABLET_TOOL_TYPE_PENCIL = 4,
    LIBINPUT_TABLET_TOOL_TYPE_AIRBRUSH = 5,
    LIBINPUT_TABLET_TOOL_TYPE_MOUSE = 6,
    LIBINPUT_TABLET_TOOL_TYPE_LENS = 7,
    LIBINPUT_TABLET_TOOL_TYPE_TOTEM = 8,
}

cenum! {
    TabletToolProximityState, LIBINPUT_TABLET_TOOL_PROXIMITY_STATE;

    LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_OUT = 0,
    LIBINPUT_TABLET_TOOL_PROXIMITY_STATE_IN = 1,
}

cenum! {
    TabletToolTipState, LIBINPUT_TABLET_TOOL_TIP_STATE;

    LIBINPUT_TABLET_TOOL_TIP_UP = 0,
    LIBINPUT_TABLET_TOOL_TIP_DOWN = 1,
}

cenum! {
    SwitchState, LIBINPUT_SWITCH_STATE;

    LIBINPUT_SWITCH_STATE_OFF = 0,
    LIBINPUT_SWITCH_STATE_ON = 1,
}

cenum! {
    Switch, LIBINPUT_SWITCH;

    LIBINPUT_SWITCH_LID = 1,
    LIBINPUT_SWITCH_TABLET_MODE = 2,
}

cenum! {
    EventType, LIBINPUT_EVENT_TYPE;

    LIBINPUT_EVENT_NONE                      = 0,
    LIBINPUT_EVENT_DEVICE_ADDED              = 1,
    LIBINPUT_EVENT_DEVICE_REMOVED            = 2,
    LIBINPUT_EVENT_KEYBOARD_KEY              = 300,
    LIBINPUT_EVENT_POINTER_MOTION            = 400,
    LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE   = 401,
    LIBINPUT_EVENT_POINTER_BUTTON            = 402,
    LIBINPUT_EVENT_POINTER_AXIS              = 403,
    LIBINPUT_EVENT_POINTER_SCROLL_WHEEL      = 404,
    LIBINPUT_EVENT_POINTER_SCROLL_FINGER     = 405,
    LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS = 406,
    LIBINPUT_EVENT_TOUCH_DOWN                = 500,
    LIBINPUT_EVENT_TOUCH_UP                  = 501,
    LIBINPUT_EVENT_TOUCH_MOTION              = 502,
    LIBINPUT_EVENT_TOUCH_CANCEL              = 503,
    LIBINPUT_EVENT_TOUCH_FRAME               = 504,
    LIBINPUT_EVENT_TABLET_TOOL_AXIS          = 600,
    LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY     = 601,
    LIBINPUT_EVENT_TABLET_TOOL_TIP           = 602,
    LIBINPUT_EVENT_TABLET_TOOL_BUTTON        = 603,
    LIBINPUT_EVENT_TABLET_PAD_BUTTON         = 700,
    LIBINPUT_EVENT_TABLET_PAD_RING           = 701,
    LIBINPUT_EVENT_TABLET_PAD_STRIP          = 702,
    LIBINPUT_EVENT_TABLET_PAD_KEY            = 703,
    LIBINPUT_EVENT_TABLET_PAD_DIAL           = 704,
    LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN       = 800,
    LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE      = 801,
    LIBINPUT_EVENT_GESTURE_SWIPE_END         = 802,
    LIBINPUT_EVENT_GESTURE_PINCH_BEGIN       = 803,
    LIBINPUT_EVENT_GESTURE_PINCH_UPDATE      = 804,
    LIBINPUT_EVENT_GESTURE_PINCH_END         = 805,
    LIBINPUT_EVENT_GESTURE_HOLD_BEGIN        = 806,
    LIBINPUT_EVENT_GESTURE_HOLD_END          = 807,
    LIBINPUT_EVENT_SWITCH_TOGGLE             = 900,
}

cenum! {
    ConfigStatus, LIBINPUT_CONFIG_STATUS;

    LIBINPUT_CONFIG_STATUS_SUCCESS = 0,
    LIBINPUT_CONFIG_STATUS_UNSUPPORTED = 1,
    LIBINPUT_CONFIG_STATUS_INVALID = 2,
}

cenum! {
    AccelProfile, LIBINPUT_CONFIG_ACCEL_PROFILE;

    LIBINPUT_CONFIG_ACCEL_PROFILE_NONE = 0,
    LIBINPUT_CONFIG_ACCEL_PROFILE_FLAT = 1 << 0,
    LIBINPUT_CONFIG_ACCEL_PROFILE_ADAPTIVE = 1 << 1,
}

cenum! {
    ConfigTapState, LIBINPUT_CONFIG_TAP_STATE;

    LIBINPUT_CONFIG_TAP_DISABLED = 0,
    LIBINPUT_CONFIG_TAP_ENABLED = 1,
}

cenum! {
    ConfigDragState, LIBINPUT_CONFIG_DRAG_STATE;

    LIBINPUT_CONFIG_DRAG_DISABLED = 0,
    LIBINPUT_CONFIG_DRAG_ENABLED = 1,
}

cenum! {
    ConfigDragLockState, LIBINPUT_CONFIG_DRAG_LOCK_STATE;

    LIBINPUT_CONFIG_DRAG_LOCK_DISABLED = 0,
    LIBINPUT_CONFIG_DRAG_LOCK_ENABLED = 1,
}

cenum! {
    ConfigClickMethod, LIBINPUT_CONFIG_CLICK_METHOD;

    LIBINPUT_CONFIG_CLICK_METHOD_NONE = 0,
    LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS = 1 << 0,
    LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER = 1 << 1,
}

cenum! {
    ConfigMiddleEmulationState, LIBINPUT_CONFIG_MIDDLE_EMULATION_STATE;

    LIBINPUT_CONFIG_MIDDLE_EMULATION_DISABLED = 0,
    LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED = 1,
}
