diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2013-12-10 17:09:36 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2014-03-05 09:52:04 +0100 |
commit | e842c68d449a51ec51a0442aa0fe237d4a4b736d (patch) | |
tree | 5f9a6c3dea8e891401f36cb5b463c62660b39762 /ui/input.c | |
parent | a8dfb1c34ffc17d16eebd46442be93d5e8fad44f (diff) |
input: move qmp_query_mice to new core
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui/input.c')
-rw-r--r-- | ui/input.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/ui/input.c b/ui/input.c index afc037c3e9..162e8d8a5a 100644 --- a/ui/input.c +++ b/ui/input.c @@ -1,5 +1,6 @@ #include "sysemu/sysemu.h" #include "qapi-types.h" +#include "qmp-commands.h" #include "trace.h" #include "ui/input.h" #include "ui/console.h" @@ -305,3 +306,31 @@ void qemu_remove_mouse_mode_change_notifier(Notifier *notify) { notifier_remove(notify); } + +MouseInfoList *qmp_query_mice(Error **errp) +{ + MouseInfoList *mice_list = NULL; + MouseInfoList *info; + QemuInputHandlerState *s; + bool current = true; + + QTAILQ_FOREACH(s, &handlers, node) { + if (!(s->handler->mask & + (INPUT_EVENT_MASK_REL | INPUT_EVENT_MASK_ABS))) { + continue; + } + + info = g_new0(MouseInfoList, 1); + info->value = g_new0(MouseInfo, 1); + info->value->index = s->id; + info->value->name = g_strdup(s->handler->name); + info->value->absolute = s->handler->mask & INPUT_EVENT_MASK_ABS; + info->value->current = current; + + current = false; + info->next = mice_list; + mice_list = info; + } + + return mice_list; +} |