USB Host Shield 2.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Macros
hid.h File Reference
#include <inttypes.h>
#include <avr/pgmspace.h>
#include "avrpins.h"
#include "max3421e.h"
#include "usbhost.h"
#include "usb_ch9.h"
#include "Usb.h"
#include "Arduino.h"
#include "printhex.h"
#include "hexdump.h"
#include "message.h"
#include "confdescparser.h"
#include "hidusagestr.h"
Include dependency graph for hid.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  HidItemPrefix
 
struct  MainItemIOFeature
 
class  HIDReportParser
 
class  HID
 

Macros

#define DATA_SIZE_MASK   0x03
 
#define TYPE_MASK   0x0C
 
#define TAG_MASK   0xF0
 
#define DATA_SIZE_0   0x00
 
#define DATA_SIZE_1   0x01
 
#define DATA_SIZE_2   0x02
 
#define DATA_SIZE_4   0x03
 
#define TYPE_MAIN   0x00
 
#define TYPE_GLOBAL   0x04
 
#define TYPE_LOCAL   0x08
 
#define TAG_MAIN_INPUT   0x80
 
#define TAG_MAIN_OUTPUT   0x90
 
#define TAG_MAIN_COLLECTION   0xA0
 
#define TAG_MAIN_FEATURE   0xB0
 
#define TAG_MAIN_ENDCOLLECTION   0xC0
 
#define TAG_GLOBAL_USAGEPAGE   0x00
 
#define TAG_GLOBAL_LOGICALMIN   0x10
 
#define TAG_GLOBAL_LOGICALMAX   0x20
 
#define TAG_GLOBAL_PHYSMIN   0x30
 
#define TAG_GLOBAL_PHYSMAX   0x40
 
#define TAG_GLOBAL_UNITEXP   0x50
 
#define TAG_GLOBAL_UNIT   0x60
 
#define TAG_GLOBAL_REPORTSIZE   0x70
 
#define TAG_GLOBAL_REPORTID   0x80
 
#define TAG_GLOBAL_REPORTCOUNT   0x90
 
#define TAG_GLOBAL_PUSH   0xA0
 
#define TAG_GLOBAL_POP   0xB0
 
#define TAG_LOCAL_USAGE   0x00
 
#define TAG_LOCAL_USAGEMIN   0x10
 
#define TAG_LOCAL_USAGEMAX   0x20
 
#define bmREQ_HIDOUT   USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
 
#define bmREQ_HIDIN   USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
 
#define bmREQ_HIDREPORT   USB_SETUP_DEVICE_TO_HOST|USB_SETUP_TYPE_STANDARD|USB_SETUP_RECIPIENT_INTERFACE
 
#define HID_REQUEST_GET_REPORT   0x01
 
#define HID_REQUEST_GET_IDLE   0x02
 
#define HID_REQUEST_GET_PROTOCOL   0x03
 
#define HID_REQUEST_SET_REPORT   0x09
 
#define HID_REQUEST_SET_IDLE   0x0A
 
#define HID_REQUEST_SET_PROTOCOL   0x0B
 
#define HID_DESCRIPTOR_HID   0x21
 
#define HID_DESCRIPTOR_REPORT   0x22
 
#define HID_DESRIPTOR_PHY   0x23
 
#define HID_BOOT_PROTOCOL   0x00
 
#define HID_RPT_PROTOCOL   0x01
 
#define HID_INTF   0x03
 
#define HID_BOOT_INTF_SUBCLASS   0x01
 
#define HID_PROTOCOL_NONE   0x00
 
#define HID_PROTOCOL_KEYBOARD   0x01
 
#define HID_PROTOCOL_MOUSE   0x02
 
#define HID_ITEM_TYPE_MAIN   0
 
#define HID_ITEM_TYPE_GLOBAL   1
 
#define HID_ITEM_TYPE_LOCAL   2
 
#define HID_ITEM_TYPE_RESERVED   3
 
#define HID_LONG_ITEM_PREFIX   0xfe
 
#define bmHID_MAIN_ITEM_TAG   0xfc
 
#define bmHID_MAIN_ITEM_INPUT   0x80
 
#define bmHID_MAIN_ITEM_OUTPUT   0x90
 
#define bmHID_MAIN_ITEM_FEATURE   0xb0
 
#define bmHID_MAIN_ITEM_COLLECTION   0xa0
 
#define bmHID_MAIN_ITEM_END_COLLECTION   0xce
 
#define HID_MAIN_ITEM_COLLECTION_PHYSICAL   0
 
#define HID_MAIN_ITEM_COLLECTION_APPLICATION   1
 
#define HID_MAIN_ITEM_COLLECTION_LOGICAL   2
 
#define HID_MAIN_ITEM_COLLECTION_REPORT   3
 
#define HID_MAIN_ITEM_COLLECTION_NAMED_ARRAY   4
 
#define HID_MAIN_ITEM_COLLECTION_USAGE_SWITCH   5
 
#define HID_MAIN_ITEM_COLLECTION_USAGE_MODIFIER   6
 
#define MAX_REPORT_PARSERS   2
 
#define HID_MAX_HID_CLASS_DESCRIPTORS   5
 

Macro Definition Documentation

#define DATA_SIZE_MASK   0x03

Definition at line 41 of file hid.h.

#define TYPE_MASK   0x0C

Definition at line 42 of file hid.h.

#define TAG_MASK   0xF0

Definition at line 43 of file hid.h.

#define DATA_SIZE_0   0x00

Definition at line 45 of file hid.h.

#define DATA_SIZE_1   0x01

Definition at line 46 of file hid.h.

#define DATA_SIZE_2   0x02

Definition at line 47 of file hid.h.

#define DATA_SIZE_4   0x03

Definition at line 48 of file hid.h.

#define TYPE_MAIN   0x00

Definition at line 50 of file hid.h.

#define TYPE_GLOBAL   0x04

Definition at line 51 of file hid.h.

#define TYPE_LOCAL   0x08

Definition at line 52 of file hid.h.

#define TAG_MAIN_INPUT   0x80

Definition at line 54 of file hid.h.

#define TAG_MAIN_OUTPUT   0x90

Definition at line 55 of file hid.h.

#define TAG_MAIN_COLLECTION   0xA0

Definition at line 56 of file hid.h.

#define TAG_MAIN_FEATURE   0xB0

Definition at line 57 of file hid.h.

#define TAG_MAIN_ENDCOLLECTION   0xC0

Definition at line 58 of file hid.h.

#define TAG_GLOBAL_USAGEPAGE   0x00

Definition at line 60 of file hid.h.

#define TAG_GLOBAL_LOGICALMIN   0x10

Definition at line 61 of file hid.h.

#define TAG_GLOBAL_LOGICALMAX   0x20

Definition at line 62 of file hid.h.

#define TAG_GLOBAL_PHYSMIN   0x30

Definition at line 63 of file hid.h.

#define TAG_GLOBAL_PHYSMAX   0x40

Definition at line 64 of file hid.h.

#define TAG_GLOBAL_UNITEXP   0x50

Definition at line 65 of file hid.h.

#define TAG_GLOBAL_UNIT   0x60

Definition at line 66 of file hid.h.

#define TAG_GLOBAL_REPORTSIZE   0x70

Definition at line 67 of file hid.h.

#define TAG_GLOBAL_REPORTID   0x80

Definition at line 68 of file hid.h.

#define TAG_GLOBAL_REPORTCOUNT   0x90

Definition at line 69 of file hid.h.

#define TAG_GLOBAL_PUSH   0xA0

Definition at line 70 of file hid.h.

#define TAG_GLOBAL_POP   0xB0

Definition at line 71 of file hid.h.

#define TAG_LOCAL_USAGE   0x00

Definition at line 73 of file hid.h.

#define TAG_LOCAL_USAGEMIN   0x10

Definition at line 74 of file hid.h.

#define TAG_LOCAL_USAGEMAX   0x20

Definition at line 75 of file hid.h.

Definition at line 78 of file hid.h.

Definition at line 79 of file hid.h.

Definition at line 80 of file hid.h.

#define HID_REQUEST_GET_REPORT   0x01

Definition at line 84 of file hid.h.

#define HID_REQUEST_GET_IDLE   0x02

Definition at line 85 of file hid.h.

#define HID_REQUEST_GET_PROTOCOL   0x03

Definition at line 86 of file hid.h.

#define HID_REQUEST_SET_REPORT   0x09

Definition at line 87 of file hid.h.

#define HID_REQUEST_SET_IDLE   0x0A

Definition at line 88 of file hid.h.

#define HID_REQUEST_SET_PROTOCOL   0x0B

Definition at line 89 of file hid.h.

#define HID_DESCRIPTOR_HID   0x21

Definition at line 92 of file hid.h.

#define HID_DESCRIPTOR_REPORT   0x22

Definition at line 93 of file hid.h.

#define HID_DESRIPTOR_PHY   0x23

Definition at line 94 of file hid.h.

#define HID_BOOT_PROTOCOL   0x00

Definition at line 97 of file hid.h.

#define HID_RPT_PROTOCOL   0x01

Definition at line 98 of file hid.h.

#define HID_INTF   0x03

Definition at line 101 of file hid.h.

#define HID_BOOT_INTF_SUBCLASS   0x01

Definition at line 104 of file hid.h.

#define HID_PROTOCOL_NONE   0x00

Definition at line 107 of file hid.h.

#define HID_PROTOCOL_KEYBOARD   0x01

Definition at line 108 of file hid.h.

#define HID_PROTOCOL_MOUSE   0x02

Definition at line 109 of file hid.h.

#define HID_ITEM_TYPE_MAIN   0

Definition at line 117 of file hid.h.

#define HID_ITEM_TYPE_GLOBAL   1

Definition at line 118 of file hid.h.

#define HID_ITEM_TYPE_LOCAL   2

Definition at line 119 of file hid.h.

#define HID_ITEM_TYPE_RESERVED   3

Definition at line 120 of file hid.h.

#define HID_LONG_ITEM_PREFIX   0xfe

Definition at line 122 of file hid.h.

#define bmHID_MAIN_ITEM_TAG   0xfc

Definition at line 124 of file hid.h.

#define bmHID_MAIN_ITEM_INPUT   0x80

Definition at line 126 of file hid.h.

#define bmHID_MAIN_ITEM_OUTPUT   0x90

Definition at line 127 of file hid.h.

#define bmHID_MAIN_ITEM_FEATURE   0xb0

Definition at line 128 of file hid.h.

#define bmHID_MAIN_ITEM_COLLECTION   0xa0

Definition at line 129 of file hid.h.

#define bmHID_MAIN_ITEM_END_COLLECTION   0xce

Definition at line 130 of file hid.h.

#define HID_MAIN_ITEM_COLLECTION_PHYSICAL   0

Definition at line 132 of file hid.h.

#define HID_MAIN_ITEM_COLLECTION_APPLICATION   1

Definition at line 133 of file hid.h.

#define HID_MAIN_ITEM_COLLECTION_LOGICAL   2

Definition at line 134 of file hid.h.

#define HID_MAIN_ITEM_COLLECTION_REPORT   3

Definition at line 135 of file hid.h.

#define HID_MAIN_ITEM_COLLECTION_NAMED_ARRAY   4

Definition at line 136 of file hid.h.

#define HID_MAIN_ITEM_COLLECTION_USAGE_SWITCH   5

Definition at line 137 of file hid.h.

#define HID_MAIN_ITEM_COLLECTION_USAGE_MODIFIER   6

Definition at line 138 of file hid.h.

#define MAX_REPORT_PARSERS   2

Definition at line 158 of file hid.h.

#define HID_MAX_HID_CLASS_DESCRIPTORS   5

Definition at line 159 of file hid.h.