qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 40/42] input: move qmp_query_mice to new core


From: Gerd Hoffmann
Subject: [Qemu-devel] [PATCH 40/42] input: move qmp_query_mice to new core
Date: Tue, 28 Jan 2014 10:57:33 +0100

Signed-off-by: Gerd Hoffmann <address@hidden>
---
 ui/input-legacy.c | 23 -----------------------
 ui/input.c        | 29 +++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/ui/input-legacy.c b/ui/input-legacy.c
index 7f8e72b..7843482 100644
--- a/ui/input-legacy.c
+++ b/ui/input-legacy.c
@@ -483,29 +483,6 @@ void kbd_put_ledstate(int ledstate)
     }
 }
 
-MouseInfoList *qmp_query_mice(Error **errp)
-{
-    MouseInfoList *mice_list = NULL;
-    QEMUPutMouseEntry *cursor;
-    bool current = true;
-
-    QTAILQ_FOREACH(cursor, &mouse_handlers, node) {
-        MouseInfoList *info = g_malloc0(sizeof(*info));
-        info->value = g_malloc0(sizeof(*info->value));
-        info->value->name = g_strdup(cursor->qemu_put_mouse_event_name);
-        info->value->index = cursor->index;
-        info->value->absolute = !!cursor->qemu_put_mouse_event_absolute;
-        info->value->current = current;
-
-        current = false;
-
-        info->next = mice_list;
-        mice_list = info;
-    }
-
-    return mice_list;
-}
-
 void do_mouse_set(Monitor *mon, const QDict *qdict)
 {
     QEMUPutMouseEntry *cursor;
diff --git a/ui/input.c b/ui/input.c
index 55449dc..2945a3c 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"
@@ -307,3 +308,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;
+}
-- 
1.8.3.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]