From 17ffaf0e40d6c2668b0041de19428f25d458aa36 Mon Sep 17 00:00:00 2001 From: Anthony Liguori Date: Tue, 9 Mar 2010 20:58:07 -0600 Subject: [PATCH] Expose whether a mouse is an absolute device via QMP and the human monitor. For QMP, we just add an attribute which is backwards compatible. For the human monitor, we add (absolute) to the end of the line. Signed-off-by: Anthony Liguori --- input.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/input.c b/input.c index c956e06..8f0941e 100644 --- a/input.c +++ b/input.c @@ -195,9 +195,10 @@ static void info_mice_iter(QObject *data, void *opaque) Monitor *mon = opaque; mouse = qobject_to_qdict(data); - monitor_printf(mon, "%c Mouse #%" PRId64 ": %s\n", + monitor_printf(mon, "%c Mouse #%" PRId64 ": %s%s\n", (qdict_get_bool(mouse, "current") ? '*' : ' '), - qdict_get_int(mouse, "index"), qdict_get_str(mouse, "name")); + qdict_get_int(mouse, "index"), qdict_get_str(mouse, "name"), + qdict_get_bool(mouse, "absolute") ? " (absolute)" : ""); } void do_info_mice_print(Monitor *mon, const QObject *data) @@ -224,11 +225,12 @@ void do_info_mice_print(Monitor *mon, const QObject *data) * - "name": mouse's name * - "index": mouse's index * - "current": true if this mouse is receiving events, false otherwise + * - "absolute": true if the mouse generates absolute input events * * Example: * - * [ { "name": "QEMU Microsoft Mouse", "index": 0, "current": false }, - * { "name": "QEMU PS/2 Mouse", "index": 1, "current": true } ] + * [ { "name": "QEMU Microsoft Mouse", "index": 0, "current": false, "absolute": false }, + * { "name": "QEMU PS/2 Mouse", "index": 1, "current": true, "absolute": true } ] */ void do_info_mice(Monitor *mon, QObject **ret_data) { @@ -246,10 +248,14 @@ void do_info_mice(Monitor *mon, QObject **ret_data) QTAILQ_FOREACH(cursor, &mouse_handlers, node) { QObject *obj; - obj = qobject_from_jsonf("{ 'name': %s, 'index': %d, 'current': %i }", + obj = qobject_from_jsonf("{ 'name': %s," + " 'index': %d," + " 'current': %i," + " 'absolute': %i }", cursor->qemu_put_mouse_event_name, cursor->index, - cursor->index == current); + cursor->index == current, + !!cursor->qemu_put_mouse_event_absolute); qlist_append_obj(mice_list, obj); } -- 2.7.4