blob: fd547222a3f87426769b3c53ee1531a8efb36ac0 [file] [log] [blame]
// Copyright 2014 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef PERMISSION_BROKER_HID_BASICTYPES_H_
#define PERMISSION_BROKER_HID_BASICTYPES_H_
#include <stdint.h>
namespace permission_broker {
static const int kHidMaxDescriptorSize = 4096;
struct HidReportDescriptor {
int size;
uint8_t data[kHidMaxDescriptorSize];
};
struct HidUsage {
enum Page {
PAGE_UNDEFINED = 0x00,
PAGE_GENERIC_DESKTOP = 0x01,
PAGE_SIMULATION = 0x02,
PAGE_VIRTUAL_REALITY = 0x03,
PAGE_SPORT = 0x04,
PAGE_GAME = 0x05,
PAGE_KEYBOARD = 0x07,
PAGE_LED = 0x08,
PAGE_BUTTON = 0x09,
PAGE_ORDINAL = 0x0a,
PAGE_TELEPHONY = 0x0b,
PAGE_CONSUMER = 0x0c,
PAGE_DIGITIZER = 0x0d,
PAGE_PID_PAGE = 0x0f,
PAGE_UNICODE = 0x10,
PAGE_ALPHANUMERIC_DISPLAY = 0x14,
PAGE_MEDICAL_INSTRUMENTS = 0x40,
PAGE_MONITOR_0 = 0x80,
PAGE_MONITOR_1 = 0x81,
PAGE_MONITOR_2 = 0x82,
PAGE_MONITOR_3 = 0x83,
PAGE_POWER_0 = 0x84,
PAGE_POWER_1 = 0x85,
PAGE_POWER_2 = 0x86,
PAGE_POWER_3 = 0x87,
PAGE_BAR_CODE_SCANNER = 0x8c,
PAGE_SCALE = 0x8d,
PAGE_MAGNETIC_STRIPE_READER = 0x8e,
PAGE_RESERVED_POINT_OF_SALE = 0x8f,
PAGE_CAMERA_CONTROL = 0x90,
PAGE_ARCADE = 0x91,
PAGE_VENDOR = 0xff00,
PAGE_MEDIA_CENTER = 0xffbc,
};
// These usage enumerations are derived from the HID Usage Tables v1.11 spec.
enum GenericDesktopUsage {
GENERIC_DESKTOP_USAGE_UNDEFINED = 0x00,
GENERIC_DESKTOP_USAGE_POINTER = 0x01,
GENERIC_DESKTOP_USAGE_MOUSE = 0x02,
GENERIC_DESKTOP_USAGE_JOYSTICK = 0x04,
GENERIC_DESKTOP_USAGE_GAME_PAD = 0x05,
GENERIC_DESKTOP_USAGE_KEYBOARD = 0x06,
GENERIC_DESKTOP_USAGE_KEYPAD = 0x07,
GENERIC_DESKTOP_USAGE_MULTI_AXIS_CONTROLLER = 0x08,
GENERIC_DESKTOP_USAGE_X = 0x30,
GENERIC_DESKTOP_USAGE_Y = 0x31,
GENERIC_DESKTOP_USAGE_Z = 0x32,
GENERIC_DESKTOP_USAGE_RX = 0x33,
GENERIC_DESKTOP_USAGE_RY = 0x34,
GENERIC_DESKTOP_USAGE_RZ = 0x35,
GENERIC_DESKTOP_USAGE_SLIDER = 0x36,
GENERIC_DESKTOP_USAGE_DIAL = 0x37,
GENERIC_DESKTOP_USAGE_WHEEL = 0x38,
GENERIC_DESKTOP_USAGE_HAT_SWITCH = 0x39,
GENERIC_DESKTOP_USAGE_COUNTED_BUFFER = 0x3a,
GENERIC_DESKTOP_USAGE_BYTE_COUNT = 0x3b,
GENERIC_DESKTOP_USAGE_MOTION_WAKEUP = 0x3c,
GENERIC_DESKTOP_USAGE_START = 0x3d,
GENERIC_DESKTOP_USAGE_SELECT = 0x3e,
GENERIC_DESKTOP_USAGE_VX = 0x40,
GENERIC_DESKTOP_USAGE_VY = 0x41,
GENERIC_DESKTOP_USAGE_VZ = 0x42,
GENERIC_DESKTOP_USAGE_VBRX = 0x43,
GENERIC_DESKTOP_USAGE_VBRY = 0x44,
GENERIC_DESKTOP_USAGE_VBRZ = 0x45,
GENERIC_DESKTOP_USAGE_VNO = 0x46,
GENERIC_DESKTOP_USAGE_SYSTEM_CONTROL = 0x80,
GENERIC_DESKTOP_USAGE_SYSTEM_POWER_DOWN = 0x81,
GENERIC_DESKTOP_USAGE_SYSTEM_SLEEP = 0x82,
GENERIC_DESKTOP_USAGE_SYSTEM_WAKEUP = 0x83,
GENERIC_DESKTOP_USAGE_SYSTEM_CONTEXT_MENU = 0x84,
GENERIC_DESKTOP_USAGE_SYSTEM_MAIN_MENU = 0x85,
GENERIC_DESKTOP_USAGE_SYSTEM_APP_MENU = 0x86,
GENERIC_DESKTOP_USAGE_SYSTEM_MENU_HELP = 0x87,
GENERIC_DESKTOP_USAGE_SYSTEM_MENU_EXIT = 0x88,
GENERIC_DESKTOP_USAGE_SYSTEM_MENU_SELECT = 0x89,
GENERIC_DESKTOP_USAGE_SYSTEM_MENU_RIGHT = 0x8a,
GENERIC_DESKTOP_USAGE_SYSTEM_MENU_LEFT = 0x8b,
GENERIC_DESKTOP_USAGE_SYSTEM_MENU_UP = 0x8c,
GENERIC_DESKTOP_USAGE_SYSTEM_MENU_DOWN = 0x8d,
GENERIC_DESKTOP_USAGE_SYSTEM_COLD_RESTART = 0x8e,
GENERIC_DESKTOP_USAGE_SYSTEM_WARM_RESTART = 0x8f,
GENERIC_DESKTOP_USAGE_DPAD_UP = 0x90,
GENERIC_DESKTOP_USAGE_DPAD_DOWN = 0x91,
GENERIC_DESKTOP_USAGE_DPAD_LEFT = 0x92,
GENERIC_DESKTOP_USAGE_DPAD_RIGHT = 0x93,
GENERIC_DESKTOP_USAGE_SYSTEM_DOCK = 0xa0,
GENERIC_DESKTOP_USAGE_SYSTEM_UNDOCK = 0xa1,
GENERIC_DESKTOP_USAGE_SYSTEM_SETUP = 0xa2,
GENERIC_DESKTOP_USAGE_SYSTEM_BREAK = 0xa3,
GENERIC_DESKTOP_USAGE_SYSTEM_DEBUGGER_BREAK = 0xa4,
GENERIC_DESKTOP_USAGE_APPLICATION_BREAK = 0xa5,
GENERIC_DESKTOP_USAGE_APPLICATION_DEBUGGER_BREAK = 0xA6,
GENERIC_DESKTOP_USAGE_SYSTEM_SPEAKER_MUTE = 0xa7,
GENERIC_DESKTOP_USAGE_SYSTEM_HIBERNATE = 0xa8,
GENERIC_DESKTOP_USAGE_SYSTEM_DISPLAY_INVERT = 0xb0,
GENERIC_DESKTOP_USAGE_SYSTEM_DISPLAY_INTERNAL = 0xb1,
GENERIC_DESKTOP_USAGE_SYSTEM_DISPLAY_EXTERNAL = 0xb2,
GENERIC_DESKTOP_USAGE_SYSTEM_DISPLAY_BOTH = 0xb3,
GENERIC_DESKTOP_USAGE_SYSTEM_DISPLAY_DUAL = 0xb4,
GENERIC_DESKTOP_USAGE_SYSTEM_DISPLAY_TOGGLE = 0xb5,
GENERIC_DESKTOP_USAGE_SYSTEM_DISPLAY_SWAP = 0xb6,
};
HidUsage(Page page, uint16_t usage) : page(page), usage(usage) {}
~HidUsage() = default;
Page page;
uint16_t usage;
};
} // namespace permission_broker
#endif // PERMISSION_BROKER_HID_BASICTYPES_H_