mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
input: Convert to new qapi union layout
We have two issues with our qapi union layout: 1) Even though the QMP wire format spells the tag 'type', the C code spells it 'kind', requiring some hacks in the generator. 2) The C struct uses an anonymous union, which places all tag values in the same namespace as all non-variant members. This leads to spurious collisions if a tag value matches a non-variant member's name. Make the conversion to the new layout for input-related code. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <1445898903-12082-20-git-send-email-eblake@redhat.com> [Commit message tweaked slightly] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
130257dc44
commit
568c73a478
9 changed files with 125 additions and 123 deletions
|
@ -113,8 +113,8 @@ static void legacy_kbd_event(DeviceState *dev, QemuConsole *src,
|
|||
if (!entry || !entry->put_kbd) {
|
||||
return;
|
||||
}
|
||||
count = qemu_input_key_value_to_scancode(evt->key->key,
|
||||
evt->key->down,
|
||||
count = qemu_input_key_value_to_scancode(evt->u.key->key,
|
||||
evt->u.key->down,
|
||||
scancodes);
|
||||
for (i = 0; i < count; i++) {
|
||||
entry->put_kbd(entry->opaque, scancodes[i]);
|
||||
|
@ -150,21 +150,22 @@ static void legacy_mouse_event(DeviceState *dev, QemuConsole *src,
|
|||
};
|
||||
QEMUPutMouseEntry *s = (QEMUPutMouseEntry *)dev;
|
||||
|
||||
switch (evt->kind) {
|
||||
switch (evt->type) {
|
||||
case INPUT_EVENT_KIND_BTN:
|
||||
if (evt->btn->down) {
|
||||
s->buttons |= bmap[evt->btn->button];
|
||||
if (evt->u.btn->down) {
|
||||
s->buttons |= bmap[evt->u.btn->button];
|
||||
} else {
|
||||
s->buttons &= ~bmap[evt->btn->button];
|
||||
s->buttons &= ~bmap[evt->u.btn->button];
|
||||
}
|
||||
if (evt->btn->down && evt->btn->button == INPUT_BUTTON_WHEEL_UP) {
|
||||
if (evt->u.btn->down && evt->u.btn->button == INPUT_BUTTON_WHEEL_UP) {
|
||||
s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque,
|
||||
s->axis[INPUT_AXIS_X],
|
||||
s->axis[INPUT_AXIS_Y],
|
||||
-1,
|
||||
s->buttons);
|
||||
}
|
||||
if (evt->btn->down && evt->btn->button == INPUT_BUTTON_WHEEL_DOWN) {
|
||||
if (evt->u.btn->down &&
|
||||
evt->u.btn->button == INPUT_BUTTON_WHEEL_DOWN) {
|
||||
s->qemu_put_mouse_event(s->qemu_put_mouse_event_opaque,
|
||||
s->axis[INPUT_AXIS_X],
|
||||
s->axis[INPUT_AXIS_Y],
|
||||
|
@ -173,10 +174,10 @@ static void legacy_mouse_event(DeviceState *dev, QemuConsole *src,
|
|||
}
|
||||
break;
|
||||
case INPUT_EVENT_KIND_ABS:
|
||||
s->axis[evt->abs->axis] = evt->abs->value;
|
||||
s->axis[evt->u.abs->axis] = evt->u.abs->value;
|
||||
break;
|
||||
case INPUT_EVENT_KIND_REL:
|
||||
s->axis[evt->rel->axis] += evt->rel->value;
|
||||
s->axis[evt->u.rel->axis] += evt->u.rel->value;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue