Revision e7e73892 hw/usb-hid.c
b/hw/usb-hid.c | ||
---|---|---|
531 | 531 |
case 0xe0: |
532 | 532 |
if (s->modifiers & (1 << 9)) { |
533 | 533 |
s->modifiers ^= 3 << 8; |
534 |
usb_hid_changed(hs); |
|
535 | 534 |
return; |
536 | 535 |
} |
537 | 536 |
case 0xe1 ... 0xe7: |
538 | 537 |
if (keycode & (1 << 7)) { |
539 | 538 |
s->modifiers &= ~(1 << (hid_code & 0x0f)); |
540 |
usb_hid_changed(hs); |
|
541 | 539 |
return; |
542 | 540 |
} |
543 | 541 |
case 0xe8 ... 0xef: |
544 | 542 |
s->modifiers |= 1 << (hid_code & 0x0f); |
545 |
usb_hid_changed(hs); |
|
546 | 543 |
return; |
547 | 544 |
} |
548 | 545 |
|
... | ... | |
769 | 766 |
} |
770 | 767 |
break; |
771 | 768 |
case GET_REPORT: |
772 |
if (s->kind == USB_MOUSE || s->kind == USB_TABLET) |
|
769 |
if (s->kind == USB_MOUSE || s->kind == USB_TABLET) {
|
|
773 | 770 |
ret = usb_pointer_poll(s, data, length); |
774 |
else if (s->kind == USB_KEYBOARD)
|
|
771 |
} else if (s->kind == USB_KEYBOARD) {
|
|
775 | 772 |
ret = usb_keyboard_poll(s, data, length); |
773 |
} |
|
774 |
s->changed = s->n > 0; |
|
776 | 775 |
break; |
777 | 776 |
case SET_REPORT: |
778 | 777 |
if (s->kind == USB_KEYBOARD) |
Also available in: Unified diff