Changeset 7a7bfeb3 in mainline for uspace/app/virtusbkbd
- Timestamp:
- 2010-10-24T16:43:40Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 355f7c2
- Parents:
- b8a3cda
- Location:
- uspace/app/virtusbkbd
- Files:
-
- 2 edited
-
stdreq.c (modified) (1 diff)
-
virtusbkbd.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/virtusbkbd/stdreq.c
rb8a3cda r7a7bfeb3 65 65 * report descriptor. 66 66 */ 67 int rc = dev-> send_data(dev, 0,67 int rc = dev->control_transfer_reply(dev, 0, 68 68 report_descriptor, report_descriptor_size); 69 69 -
uspace/app/virtusbkbd/virtusbkbd.c
rb8a3cda r7a7bfeb3 67 67 (printf("%s: %s" fmt "\n", NAME, _QUOTEME(cmd), __VA_ARGS__), cmd(__VA_ARGS__)) 68 68 69 kb_status_t status; 70 69 71 static int on_incoming_data(struct usbvirt_device *dev, 70 72 usb_endpoint_t endpoint, void *buffer, size_t size) … … 83 85 } 84 86 87 static int on_request_for_data(struct usbvirt_device *dev, 88 usb_endpoint_t endpoint, void *buffer, size_t size, size_t *actual_size) 89 { 90 if (size < 2 + KB_MAX_KEYS_AT_ONCE) { 91 return EINVAL; 92 } 93 94 *actual_size = 2 + KB_MAX_KEYS_AT_ONCE; 95 96 uint8_t data[2 + KB_MAX_KEYS_AT_ONCE]; 97 data[0] = status.modifiers; 98 data[1] = 0; 99 100 size_t i; 101 for (i = 0; i < KB_MAX_KEYS_AT_ONCE; i++) { 102 data[2 + i] = status.pressed_keys[i]; 103 } 104 105 memcpy(buffer, &data, *actual_size); 106 107 return EOK; 108 } 109 110 85 111 /** Keyboard callbacks. 86 112 * We abuse the fact that static variables are zero-filled. … … 89 115 .standard_request_ops = &standard_request_ops, 90 116 .on_class_device_request = on_class_request, 91 .on_data = on_incoming_data 117 .on_data = on_incoming_data, 118 .on_data_request = on_request_for_data 92 119 }; 93 120 … … 151 178 } 152 179 printf("\n"); 153 154 uint8_t data[3 + KB_MAX_KEYS_AT_ONCE];155 data[0] = status->modifiers;156 data[1] = 0;157 data[2] = 0;158 for (i = 0; i < KB_MAX_KEYS_AT_ONCE; i++) {159 data[3 + i] = status->pressed_keys[i];160 }161 162 int rc = keyboard_dev.send_data(&keyboard_dev, 0, data, sizeof(data));163 printf("%s: Sent to VHCD (%s).\n", NAME, str_error(rc));164 180 165 181 fibril_sleep(1); … … 198 214 } 199 215 216 kb_init(&status); 217 200 218 201 219 int rc = usbvirt_connect(&keyboard_dev, DEV_HCD_NAME); … … 206 224 } 207 225 208 kb_status_t status;209 kb_init(&status);210 211 226 printf("%s: Simulating keyboard events...\n", NAME); 212 227 kb_process_events(&status, keyboard_events, keyboard_events_count,
Note:
See TracChangeset
for help on using the changeset viewer.
