mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
add input-send-event command
Which allows specification of absolute/relative, up/down and console parameters. Suggested by Gerd Hoffman. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
e37f202450
commit
50c6617fcb
3 changed files with 117 additions and 0 deletions
37
ui/input.c
37
ui/input.c
|
@ -122,6 +122,43 @@ qemu_input_find_handler(uint32_t mask, QemuConsole *con)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
void qmp_input_send_event(int64_t console, InputEventList *events,
|
||||
Error **errp)
|
||||
{
|
||||
InputEventList *e;
|
||||
QemuConsole *con;
|
||||
|
||||
con = qemu_console_lookup_by_index(console);
|
||||
if (!con) {
|
||||
error_setg(errp, "console %" PRId64 " not found", console);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!runstate_is_running() && !runstate_check(RUN_STATE_SUSPENDED)) {
|
||||
error_setg(errp, "VM not running");
|
||||
return;
|
||||
}
|
||||
|
||||
for (e = events; e != NULL; e = e->next) {
|
||||
InputEvent *event = e->value;
|
||||
|
||||
if (!qemu_input_find_handler(1 << event->kind, con)) {
|
||||
error_setg(errp, "Input handler not found for "
|
||||
"event type %s",
|
||||
InputEventKind_lookup[event->kind]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (e = events; e != NULL; e = e->next) {
|
||||
InputEvent *event = e->value;
|
||||
|
||||
qemu_input_event_send(con, event);
|
||||
}
|
||||
|
||||
qemu_input_event_sync();
|
||||
}
|
||||
|
||||
static void qemu_input_transform_abs_rotate(InputEvent *evt)
|
||||
{
|
||||
switch (graphic_rotate) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue