Changes in uspace/lib/usb/src/hidparser.c [2f60e57d:e7726a4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/usb/src/hidparser.c
r2f60e57d re7726a4 40 40 * @param parser Opaque HID report parser structure. 41 41 * @param data Data describing the report. 42 * @param size Size of the descriptor in bytes. 42 43 * @return Error code. 43 44 */ … … 54 55 * @param parser Opaque HID report parser structure. 55 56 * @param data Data for the report. 57 * @param size Size of the data in bytes. 56 58 * @param callbacks Callbacks for report actions. 57 59 * @param arg Custom argument (passed through to the callbacks). … … 64 66 int i; 65 67 66 /* main parsing loop */ 67 while(0){ 68 } 68 // TODO: parse report 69 69 70 71 uint8_t keys[6]; 70 uint16_t keys[6]; 72 71 73 72 for (i = 0; i < 6; ++i) { … … 75 74 } 76 75 77 callbacks->keyboard(keys, 6, 0, arg); 78 79 return EOK; 80 } 81 82 /** Free the HID report parser structure 83 * 84 * @param parser Opaque HID report parser structure 85 * @return Error code 86 */ 87 int usb_hid_free_report_parser(usb_hid_report_parser_t *parser) 88 { 89 76 callbacks->keyboard(keys, 6, arg); 77 90 78 return EOK; 91 79 } … … 93 81 94 82 /** 95 * Parse input report.96 *97 * @param data Data for report98 * @param size Size of report99 * @param callbacks Callbacks for report actions100 * @param arg Custom arguments101 *102 * @return Error code103 */104 int usb_hid_boot_keyboard_input_report(const uint8_t *data, size_t size,105 const usb_hid_report_in_callbacks_t *callbacks, void *arg)106 {107 int i;108 usb_hid_report_item_t item;109 110 /* fill item due to the boot protocol report descriptor */111 // modifier keys are in the first byte112 uint8_t modifiers = data[0];113 114 item.offset = 2; /* second byte is reserved */115 item.size = 8;116 item.count = 6;117 item.usage_min = 0;118 item.usage_max = 255;119 item.logical_min = 0;120 item.logical_max = 255;121 122 if(size != 8){123 return -1;124 }125 126 uint8_t keys[6];127 for(i=item.offset; i<item.count; i++) {128 keys[i-2] = data[i];129 }130 131 callbacks->keyboard(keys, 6, modifiers, arg);132 return EOK;133 }134 135 /**136 * Makes output report for keyboard boot protocol137 *138 * @param leds139 * @param output Output report data buffer140 * @param size Size of the output buffer141 * @return Error code142 */143 int usb_hid_boot_keyboard_output_report(uint8_t leds, uint8_t *data, size_t size)144 {145 if(size != 1){146 return -1;147 }148 149 /* used only first five bits, others are only padding*/150 *data = leds;151 return EOK;152 }153 154 /**155 83 * @} 156 84 */
Note:
See TracChangeset
for help on using the changeset viewer.