// Copyright 2017 jem@seethis.link
// Licensed under the MIT license (http://opensource.org/licenses/MIT)

#pragma once

// Generic Desktop Page (0x01)
// See: http://www.usb.org/developers/hidpage/Hut1_12v2.pdf

typedef enum hut_desktop_t {
    HID_DESKTOP_Undefined = 0x00,
    HID_DESKTOP_Pointer = 0x01,
    HID_DESKTOP_Mouse = 0x02,
    /* 03 Reserved */
    HID_DESKTOP_Joystick = 0x04,
    HID_DESKTOP_Game_Pad = 0x05,
    HID_DESKTOP_Keyboard = 0x06,
    HID_DESKTOP_Keypad = 0x07,
    HID_DESKTOP_Multi_axis_Controller = 0x08,
    HID_DESKTOP_Tablet_PC_System_Controls = 0x09,
    /* 0A-2F Reserved */
    HID_DESKTOP_X = 0x30,
    HID_DESKTOP_Y = 0x31,
    HID_DESKTOP_Z = 0x32,
    HID_DESKTOP_Rx = 0x33,
    HID_DESKTOP_Ry = 0x34,
    HID_DESKTOP_Rz = 0x35,
    HID_DESKTOP_Slider = 0x36,
    HID_DESKTOP_Dial = 0x37,
    HID_DESKTOP_Wheel = 0x38,
    HID_DESKTOP_Hat_switch = 0x39,
    HID_DESKTOP_Counted_Buffer = 0x3A,
    HID_DESKTOP_Byte_Count = 0x3B,
    HID_DESKTOP_Motion_Wakeup = 0x3C,
    HID_DESKTOP_Start = 0x3D,
    HID_DESKTOP_Select = 0x3E,
    /* 3F Reserved */
    HID_DESKTOP_Vx = 0x40,
    HID_DESKTOP_Vy = 0x41,
    HID_DESKTOP_Vz = 0x42,
    HID_DESKTOP_Vbrx = 0x43,
    HID_DESKTOP_Vbry = 0x44,
    HID_DESKTOP_Vbrz = 0x45,
    HID_DESKTOP_Vno = 0x46,
    HID_DESKTOP_Resolution_Multiplier = 0x48,
    /* 49-7F Reserved */
    HID_DESKTOP_SYSTEM_CONTROL = 0x80,
    HID_DESKTOP_SYSTEM_POWER_DOWN = 0x81,
    HID_DESKTOP_SYSTEM_SLEEP = 0x82,
    HID_DESKTOP_SYSTEM_WAKE_UP = 0x83,
    HID_DESKTOP_SYSTEM_CONTEXT_MENU = 0x84,
    HID_DESKTOP_SYSTEM_MAIN_MENU = 0x85,
    HID_DESKTOP_SYSTEM_APP_MENU = 0x86,
    HID_DESKTOP_SYSTEM_MENU_HELP = 0x87,
    HID_DESKTOP_SYSTEM_MENU_EXIT = 0x88,
    HID_DESKTOP_SYSTEM_MENU_SELECT = 0x89,
    HID_DESKTOP_SYSTEM_MENU_RIGHT = 0x8A,
    HID_DESKTOP_SYSTEM_MENU_LEFT = 0x8B,
    HID_DESKTOP_SYSTEM_MENU_UP = 0x8C,
    HID_DESKTOP_SYSTEM_MENU_DOWN = 0x8D,
    HID_DESKTOP_SYSTEM_COLD_RESTART = 0x8E,
    HID_DESKTOP_SYSTEM_WARM_RESTART = 0x8F,
    HID_DESKTOP_D_PAD_UP = 0x90,
    HID_DESKTOP_D_PAD_DOWN = 0x91,
    HID_DESKTOP_D_PAD_RIGHT = 0x92,
    HID_DESKTOP_D_PAD_LEFT = 0x93,
    /* 94-9F Reserved */
    HID_DESKTOP_SYSTEM_DOCK = 0xA0,
    HID_DESKTOP_SYSTEM_UNDOCK = 0xA1,
    HID_DESKTOP_SYSTEM_SETUP = 0xA2,
    HID_DESKTOP_SYSTEM_BREAK = 0xA3,
    HID_DESKTOP_SYSTEM_DEBUGGER_BREAK = 0xA4,
    HID_DESKTOP_APPLICATION_BREAK = 0xA5,
    HID_DESKTOP_APPLICATION_DEBUGGER_BREAK = 0xA6,
    HID_DESKTOP_SYSTEM_SPEAKER_MUTE = 0xA7,
    HID_DESKTOP_SYSTEM_HIBERNATE = 0xA8,
    /* A9-AF Reserved */
    HID_DESKTOP_SYSTEM_DISPLAY_INVERT = 0xB0,
    HID_DESKTOP_SYSTEM_DISPLAY_INTERNAL = 0xB1,
    HID_DESKTOP_SYSTEM_DISPLAY_EXTERNAL = 0xB2,
    HID_DESKTOP_SYSTEM_DISPLAY_BOTH = 0xB3,
    HID_DESKTOP_SYSTEM_DISPLAY_DUAL = 0xB4,
    HID_DESKTOP_SYSTEM_DISPLAY_TOGGLE_INT_EXT = 0xB5,
    HID_DESKTOP_SYSTEM_DISPLAY_SWAP_PRIMARY_SECONDARY = 0xB6,
    HID_DESKTOP_SYSTEM_DISPLAY_LCD_AUTOSCALE = 0xB7,
    /* B8-FFFF Reserved */
} hut_desktop_t;
