Changes in uspace/lib/usbhid/include/usb/hid/hidpath.h [160b75e:f3b39b4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usbhid/include/usb/hid/hidpath.h
r160b75e rf3b39b4 27 27 */ 28 28 29 /** @addtogroup libusb hid29 /** @addtogroup libusb 30 30 * @{ 31 31 */ … … 33 33 * USB HID report descriptor and report data parser 34 34 */ 35 #ifndef LIBUSB HID_HIDPATH_H_36 #define LIBUSB HID_HIDPATH_H_35 #ifndef LIBUSB_HIDPATH_H_ 36 #define LIBUSB_HIDPATH_H_ 37 37 38 38 #include <usb/hid/hidparser.h> … … 40 40 #include <adt/list.h> 41 41 42 43 /*---------------------------------------------------------------------------*/ 44 /* 45 * Flags of usage paths comparison modes. 46 * 47 */ 48 /** Wanted usage path must be exactly the same as the searched one. This 49 * option cannot be combined with the others. 50 */ 51 #define USB_HID_PATH_COMPARE_STRICT 0 52 42 53 /** 43 * Description of path of usage pages and usages in report descriptor54 * Wanted usage path must be the suffix in the searched one. 44 55 */ 45 /** Wanted usage path must be exactly the same as the searched one */46 #define USB_HID_PATH_COMPARE_STRICT 047 /** Wanted usage path must be the suffix in the searched one */48 56 #define USB_HID_PATH_COMPARE_END 1 49 /** */ 57 58 /** 59 * Only usage page are compared along the usage path. This option can be 60 * combined with others. 61 */ 50 62 #define USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY 2 51 /** Searched usage page must be prefix of the other one */ 63 64 /** 65 * Searched usage page must be prefix of the other one. 66 */ 52 67 #define USB_HID_PATH_COMPARE_BEGIN 4 53 /** Searched couple of usage page and usage can be anywhere in usage path */ 68 69 /** 70 * Searched couple of usage page and usage can be anywhere in usage path. 71 * This option is deprecated. 72 */ 54 73 #define USB_HID_PATH_COMPARE_ANYWHERE 8 55 74 56 57 /** Collection usage path structure */ 75 /*----------------------------------------------------------------------------*/ 76 /** 77 * Item of usage path structure. Last item of linked list describes one item 78 * in report, the others describe superior Collection tags. Usage and Usage 79 * page of report item can be changed due to data in report. 80 */ 58 81 typedef struct { 59 /** */82 /** Usage page of report item. Zero when usage page can be changed. */ 60 83 uint32_t usage_page; 61 /** */84 /** Usage of report item. Zero when usage can be changed. */ 62 85 uint32_t usage; 63 86 87 /** Attribute of Collection tag in report descriptor*/ 64 88 uint8_t flags; 65 /** */ 89 90 /** Linked list structure*/ 66 91 link_t link; 67 92 } usb_hid_report_usage_path_t; 68 93 69 /** */ 94 95 /*---------------------------------------------------------------------------*/ 96 /** 97 * USB HID usage path structure. 98 * */ 70 99 typedef struct { 71 /** */100 /** Length of usage path */ 72 101 int depth; 102 103 /** Report id. Zero is reserved and means that report id is not used. 104 * */ 73 105 uint8_t report_id; 74 106 75 /** */107 /** Linked list structure. */ 76 108 link_t link; /* list */ 77 109 78 link_t head; /* head of list of usage paths */ 110 /** Head of the list of usage path items. */ 111 link_t head; 79 112 80 113 } usb_hid_report_path_t; 81 114 82 /* **/115 /*---------------------------------------------------------------------------*/ 83 116 usb_hid_report_path_t *usb_hid_report_path(void); 84 117 85 /** */86 118 void usb_hid_report_path_free(usb_hid_report_path_t *path); 87 119 88 /** */ 89 int usb_hid_report_path_set_report_id(usb_hid_report_path_t *usage_path, 90 uint8_t report_id); 120 int usb_hid_report_path_set_report_id(usb_hid_report_path_t *usage_path, 121 uint8_t report_id); 91 122 92 /** */93 123 int usb_hid_report_path_append_item(usb_hid_report_path_t *usage_path, 94 124 int32_t usage_page, int32_t usage); 95 125 96 /** */97 126 void usb_hid_report_remove_last_item(usb_hid_report_path_t *usage_path); 98 127 99 /** */100 128 void usb_hid_report_null_last_item(usb_hid_report_path_t *usage_path); 101 129 102 /** */103 130 void usb_hid_report_set_last_item(usb_hid_report_path_t *usage_path, 104 131 int32_t tag, int32_t data); 105 132 106 /** */ 107 int usb_hid_report_compare_usage_path(usb_hid_report_path_t *report_path, 108 usb_hid_report_path_t *path, int flags); 133 int usb_hid_report_compare_usage_path(usb_hid_report_path_t *report_path, 134 usb_hid_report_path_t *path, int flags); 109 135 110 /** */ 111 usb_hid_report_path_t *usb_hid_report_path_clone(usb_hid_report_path_t *usage_path);136 usb_hid_report_path_t *usb_hid_report_path_clone( 137 usb_hid_report_path_t *usage_path); 112 138 113 139 void usb_hid_print_usage_path(usb_hid_report_path_t *path);
Note:
See TracChangeset
for help on using the changeset viewer.