All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name
@ 2016-01-26 14:07 Gerd Hoffmann
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Gerd Hoffmann @ 2016-01-26 14:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcelo Tosatti, Markus Armbruster, Gerd Hoffmann

We have two places needing this, and a third one will come shortly.
So factor things out into a helper function to reduce code duplication.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
---
 include/ui/console.h |  2 ++
 ui/console.c         | 23 +++++++++++++++++++++++
 ui/input.c           | 15 ++++-----------
 ui/vnc.c             | 15 ++++-----------
 4 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/include/ui/console.h b/include/ui/console.h
index adac36d..bbc3b7c 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -377,6 +377,8 @@ void graphic_hw_text_update(QemuConsole *con, console_ch_t *chardata);
 
 QemuConsole *qemu_console_lookup_by_index(unsigned int index);
 QemuConsole *qemu_console_lookup_by_device(DeviceState *dev, uint32_t head);
+QemuConsole *qemu_console_lookup_by_device_name(const char *device_id,
+                                                uint32_t head, Error **errp);
 bool qemu_console_is_visible(QemuConsole *con);
 bool qemu_console_is_graphic(QemuConsole *con);
 bool qemu_console_is_fixedsize(QemuConsole *con);
diff --git a/ui/console.c b/ui/console.c
index fe950c6..e883d53 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1779,6 +1779,29 @@ QemuConsole *qemu_console_lookup_by_device(DeviceState *dev, uint32_t head)
     return NULL;
 }
 
+QemuConsole *qemu_console_lookup_by_device_name(const char *device_id,
+                                                uint32_t head, Error **errp)
+{
+    DeviceState *dev;
+    QemuConsole *con;
+
+    dev = qdev_find_recursive(sysbus_get_default(), device_id);
+    if (dev == NULL) {
+        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
+                  "Device '%s' not found", device_id);
+        return NULL;
+    }
+
+    con = qemu_console_lookup_by_device(dev, head);
+    if (con == NULL) {
+        error_setg(errp, "Device %s (head %d) is not bound to a QemuConsole",
+                   device_id, head);
+        return NULL;
+    }
+
+    return con;
+}
+
 bool qemu_console_is_visible(QemuConsole *con)
 {
     return (con == active_console) || (con->dcls > 0);
diff --git a/ui/input.c b/ui/input.c
index 006667b..1409e01 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -81,19 +81,12 @@ void qemu_input_handler_bind(QemuInputHandlerState *s,
                              const char *device_id, int head,
                              Error **errp)
 {
-    DeviceState *dev;
     QemuConsole *con;
+    Error *err = NULL;
 
-    dev = qdev_find_recursive(sysbus_get_default(), device_id);
-    if (dev == NULL) {
-        error_set(errp, ERROR_CLASS_DEVICE_NOT_FOUND,
-                  "Device '%s' not found", device_id);
-        return;
-    }
-
-    con = qemu_console_lookup_by_device(dev, head);
-    if (con == NULL) {
-        error_setg(errp, "Device %s is not bound to a QemuConsole", device_id);
+    con = qemu_console_lookup_by_device_name(device_id, head, &err);
+    if (err) {
+        error_propagate(errp, err);
         return;
     }
 
diff --git a/ui/vnc.c b/ui/vnc.c
index 339f8c3..19dcfce 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -3732,19 +3732,12 @@ void vnc_display_open(const char *id, Error **errp)
 
     device_id = qemu_opt_get(opts, "display");
     if (device_id) {
-        DeviceState *dev;
         int head = qemu_opt_get_number(opts, "head", 0);
+        Error *err = NULL;
 
-        dev = qdev_find_recursive(sysbus_get_default(), device_id);
-        if (dev == NULL) {
-            error_setg(errp, "Device '%s' not found", device_id);
-            goto fail;
-        }
-
-        con = qemu_console_lookup_by_device(dev, head);
-        if (con == NULL) {
-            error_setg(errp, "Device %s is not bound to a QemuConsole",
-                       device_id);
+        con = qemu_console_lookup_by_device_name(device_id, head, &err);
+        if (err) {
+            error_propagate(errp, err);
             goto fail;
         }
     } else {
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head
  2016-01-26 14:07 [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
@ 2016-01-26 14:07 ` Gerd Hoffmann
  2016-01-26 16:07   ` Eric Blake
  2016-02-02 12:56   ` Markus Armbruster
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 3/5] qapi: rename input buttons Gerd Hoffmann
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 13+ messages in thread
From: Gerd Hoffmann @ 2016-01-26 14:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcelo Tosatti, Markus Armbruster, Gerd Hoffmann

Use display device qdev id and head number instead of console index to
specify the QemuConsole.  This makes things consistent with input
devices (for input routing) and vnc server configuration, which both use
display and head too.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
---
 qapi-schema.json | 32 +++++++++++++++++---------------
 qmp-commands.hx  | 17 +++++++++--------
 ui/input.c       | 15 ++++++++++-----
 3 files changed, 36 insertions(+), 28 deletions(-)

diff --git a/qapi-schema.json b/qapi-schema.json
index b3038b2..f87189b 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3775,24 +3775,24 @@
 #
 # Send input event(s) to guest.
 #
-# @console: #optional console to send event(s) to.
-#           This parameter can be used to send the input event to
-#           specific input devices in case (a) multiple input devices
-#           of the same kind are added to the virtual machine and (b)
-#           you have configured input routing (see docs/multiseat.txt)
-#           for those input devices.  If input routing is not
-#           configured this parameter has no effect.
-#           If @console is missing, only devices that aren't associated
-#           with a console are admissible.
-#           If @console is specified, it must exist, and both devices
-#           associated with that console and devices not associated with a
-#           console are admissible, but the former take precedence.
-
-#
+# @device: #optional display device to send event(s) to.
+# @head: #optional head to send event(s) to, in case the
+#        display device supports multiple scanouts.
 # @events: List of InputEvent union.
 #
 # Returns: Nothing on success.
 #
+# The @display and @head parameters can be used to send the input
+# event to specific input devices in case (a) multiple input devices
+# of the same kind are added to the virtual machine and (b) you have
+# configured input routing (see docs/multiseat.txt) for those input
+# devices.  The parameters work exactly like the device and head
+# properties of input devices.  If @device is missing, only devices
+# that have no input routing config are admissible.  If @device is
+# specified, both input devices with and without input routing config
+# are admissible, but devices with input routing config take
+# precedence.
+
 # Since: 2.2
 #
 # Note: this command is experimental, and not a stable API.  Things that
@@ -3802,7 +3802,9 @@
 #
 ##
 { 'command': 'x-input-send-event',
-  'data': { '*console':'int', 'events': [ 'InputEvent' ] } }
+  'data': { '*device': 'str',
+            '*head'  : 'int',
+            'events' : [ 'InputEvent' ] } }
 
 ##
 # @NumaOptions
diff --git a/qmp-commands.hx b/qmp-commands.hx
index db072a6..9925fc1 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4614,8 +4614,9 @@ Send input event to guest.
 
 Arguments:
 
-- "console": console index. (json-int, optional)
-- "events": list of input events.
+- "device": display device (json-str, optional)
+- "head": display head (json-int, optional)
+- "events": list of input events
 
 The consoles are visible in the qom tree, under
 /backend/console[$index]. They have a device link and head property, so
@@ -4628,15 +4629,15 @@ Example (1):
 Press left mouse button.
 
 -> { "execute": "x-input-send-event",
-    "arguments": { "console": 0,
+    "arguments": { "device": "video0",
                    "events": [ { "type": "btn",
-                    "data" : { "down": true, "button": "Left" } } ] } }
+                   "data" : { "down": true, "button": "Left" } } ] } }
 <- { "return": {} }
 
 -> { "execute": "x-input-send-event",
-    "arguments": { "console": 0,
+    "arguments": { "device": "video0",
                    "events": [ { "type": "btn",
-                    "data" : { "down": false, "button": "Left" } } ] } }
+                   "data" : { "down": false, "button": "Left" } } ] } }
 <- { "return": {} }
 
 Example (2):
@@ -4644,7 +4645,7 @@ Example (2):
 Press ctrl-alt-del.
 
 -> { "execute": "x-input-send-event",
-     "arguments": { "console": 0, "events": [
+     "arguments": { "events": [
         { "type": "key", "data" : { "down": true,
           "key": {"type": "qcode", "data": "ctrl" } } },
         { "type": "key", "data" : { "down": true,
@@ -4658,7 +4659,7 @@ Example (3):
 Move mouse pointer to absolute coordinates (20000, 400).
 
 -> { "execute": "x-input-send-event" ,
-  "arguments": { "console": 0, "events": [
+  "arguments": { "events": [
                { "type": "abs", "data" : { "axis": "X", "value" : 20000 } },
                { "type": "abs", "data" : { "axis": "Y", "value" : 400 } } ] } }
 <- { "return": {} }
diff --git a/ui/input.c b/ui/input.c
index 1409e01..755b90a 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -118,17 +118,22 @@ qemu_input_find_handler(uint32_t mask, QemuConsole *con)
     return NULL;
 }
 
-void qmp_x_input_send_event(bool has_console, int64_t console,
+void qmp_x_input_send_event(bool has_device, const char *device,
+                            bool has_head, int64_t head,
                             InputEventList *events, Error **errp)
 {
     InputEventList *e;
     QemuConsole *con;
+    Error *err = NULL;
 
     con = NULL;
-    if (has_console) {
-        con = qemu_console_lookup_by_index(console);
-        if (!con) {
-            error_setg(errp, "console %" PRId64 " not found", console);
+    if (has_device) {
+        if (!has_head) {
+            head = 0;
+        }
+        con = qemu_console_lookup_by_device_name(device, head, &err);
+        if (err) {
+            error_propagate(errp, err);
             return;
         }
     }
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH v2 3/5] qapi: rename input buttons
  2016-01-26 14:07 [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
@ 2016-01-26 14:07 ` Gerd Hoffmann
  2016-01-26 16:08   ` Eric Blake
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises Gerd Hoffmann
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Gerd Hoffmann @ 2016-01-26 14:07 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Maydell, Michael Roth, Michael S. Tsirkin, Marcelo Tosatti,
	Markus Armbruster, Luiz Capitulino, Andreas Färber,
	Gerd Hoffmann

All lowercase, use-dash instead of CamelCase.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
---
 hw/input/hid.c              | 4 ++--
 hw/input/ps2.c              | 4 ++--
 hw/input/virtio-input-hid.c | 4 ++--
 monitor.c                   | 2 +-
 qapi-schema.json            | 5 +----
 qmp-commands.hx             | 4 ++--
 scripts/qapi.py             | 1 -
 ui/cocoa.m                  | 4 ++--
 ui/gtk.c                    | 4 ++--
 ui/input-legacy.c           | 4 ++--
 ui/sdl.c                    | 4 ++--
 ui/sdl2.c                   | 4 ++--
 ui/spice-input.c            | 4 ++--
 ui/vnc.c                    | 4 ++--
 14 files changed, 24 insertions(+), 28 deletions(-)

diff --git a/hw/input/hid.c b/hw/input/hid.c
index 3221d29..12075c9 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -139,9 +139,9 @@ static void hid_pointer_event(DeviceState *dev, QemuConsole *src,
     case INPUT_EVENT_KIND_BTN:
         if (evt->u.btn->down) {
             e->buttons_state |= bmap[evt->u.btn->button];
-            if (evt->u.btn->button == INPUT_BUTTON_WHEELUP) {
+            if (evt->u.btn->button == INPUT_BUTTON_WHEEL_UP) {
                 e->dz--;
-            } else if (evt->u.btn->button == INPUT_BUTTON_WHEELDOWN) {
+            } else if (evt->u.btn->button == INPUT_BUTTON_WHEEL_DOWN) {
                 e->dz++;
             }
         } else {
diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index 79754cd..9096d21 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -405,9 +405,9 @@ static void ps2_mouse_event(DeviceState *dev, QemuConsole *src,
     case INPUT_EVENT_KIND_BTN:
         if (evt->u.btn->down) {
             s->mouse_buttons |= bmap[evt->u.btn->button];
-            if (evt->u.btn->button == INPUT_BUTTON_WHEELUP) {
+            if (evt->u.btn->button == INPUT_BUTTON_WHEEL_UP) {
                 s->mouse_dz--;
-            } else if (evt->u.btn->button == INPUT_BUTTON_WHEELDOWN) {
+            } else if (evt->u.btn->button == INPUT_BUTTON_WHEEL_DOWN) {
                 s->mouse_dz++;
             }
         } else {
diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c
index a78d11c..5d00a03 100644
--- a/hw/input/virtio-input-hid.c
+++ b/hw/input/virtio-input-hid.c
@@ -142,8 +142,8 @@ static const unsigned int keymap_button[INPUT_BUTTON__MAX] = {
     [INPUT_BUTTON_LEFT]              = BTN_LEFT,
     [INPUT_BUTTON_RIGHT]             = BTN_RIGHT,
     [INPUT_BUTTON_MIDDLE]            = BTN_MIDDLE,
-    [INPUT_BUTTON_WHEELUP]           = BTN_GEAR_UP,
-    [INPUT_BUTTON_WHEELDOWN]         = BTN_GEAR_DOWN,
+    [INPUT_BUTTON_WHEEL_UP]          = BTN_GEAR_UP,
+    [INPUT_BUTTON_WHEEL_DOWN]        = BTN_GEAR_DOWN,
 };
 
 static const unsigned int axismap_rel[INPUT_AXIS__MAX] = {
diff --git a/monitor.c b/monitor.c
index c53a453..e46adeb 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1375,7 +1375,7 @@ static void hmp_mouse_move(Monitor *mon, const QDict *qdict)
     if (dz_str) {
         dz = strtol(dz_str, NULL, 0);
         if (dz != 0) {
-            button = (dz > 0) ? INPUT_BUTTON_WHEELUP : INPUT_BUTTON_WHEELDOWN;
+            button = (dz > 0) ? INPUT_BUTTON_WHEEL_UP : INPUT_BUTTON_WHEEL_DOWN;
             qemu_input_queue_btn(NULL, button, true);
             qemu_input_event_sync();
             qemu_input_queue_btn(NULL, button, false);
diff --git a/qapi-schema.json b/qapi-schema.json
index f87189b..596d109 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3689,12 +3689,9 @@
 # Button of a pointer input device (mouse, tablet).
 #
 # Since: 2.0
-#
-# Note that the spelling of these values may change when the
-# x-input-send-event is promoted out of experimental status.
 ##
 { 'enum'  : 'InputButton',
-  'data'  : [ 'Left', 'Middle', 'Right', 'WheelUp', 'WheelDown' ] }
+  'data'  : [ 'left', 'middle', 'right', 'wheel-up', 'wheel-down' ] }
 
 ##
 # @InputAxis
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 9925fc1..8a39839 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4631,13 +4631,13 @@ Press left mouse button.
 -> { "execute": "x-input-send-event",
     "arguments": { "device": "video0",
                    "events": [ { "type": "btn",
-                   "data" : { "down": true, "button": "Left" } } ] } }
+                   "data" : { "down": true, "button": "left" } } ] } }
 <- { "return": {} }
 
 -> { "execute": "x-input-send-event",
     "arguments": { "device": "video0",
                    "events": [ { "type": "btn",
-                   "data" : { "down": false, "button": "Left" } } ] } }
+                   "data" : { "down": false, "button": "left" } } ] } }
 <- { "return": {} }
 
 Example (2):
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 7dec611..096fb24 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -67,7 +67,6 @@ case_whitelist = [
     'CpuInfoMIPS',          # PC, visible through query-cpu
     'CpuInfoTricore',       # PC, visible through query-cpu
     'InputAxis',            # TODO: drop when x-input-send-event is fixed
-    'InputButton',          # TODO: drop when x-input-send-event is fixed
     'QapiErrorClass',       # all members, visible through errors
     'UuidInfo',             # UUID, visible through query-uuid
     'X86CPURegister32',     # all members, visible indirectly through qom-get
diff --git a/ui/cocoa.m b/ui/cocoa.m
index d866f23..7477d58 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -737,8 +737,8 @@ QemuCocoaView *cocoaView;
                 [INPUT_BUTTON_LEFT]       = MOUSE_EVENT_LBUTTON,
                 [INPUT_BUTTON_MIDDLE]     = MOUSE_EVENT_MBUTTON,
                 [INPUT_BUTTON_RIGHT]      = MOUSE_EVENT_RBUTTON,
-                [INPUT_BUTTON_WHEELUP]    = MOUSE_EVENT_WHEELUP,
-                [INPUT_BUTTON_WHEELDOWN]  = MOUSE_EVENT_WHEELDN,
+                [INPUT_BUTTON_WHEEL_UP]   = MOUSE_EVENT_WHEELUP,
+                [INPUT_BUTTON_WHEEL_DOWN] = MOUSE_EVENT_WHEELDN,
             };
             qemu_input_update_buttons(dcl->con, bmap, last_buttons, buttons);
             last_buttons = buttons;
diff --git a/ui/gtk.c b/ui/gtk.c
index ce7018e..d9f85be 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -965,9 +965,9 @@ static gboolean gd_scroll_event(GtkWidget *widget, GdkEventScroll *scroll,
     InputButton btn;
 
     if (scroll->direction == GDK_SCROLL_UP) {
-        btn = INPUT_BUTTON_WHEELUP;
+        btn = INPUT_BUTTON_WHEEL_UP;
     } else if (scroll->direction == GDK_SCROLL_DOWN) {
-        btn = INPUT_BUTTON_WHEELDOWN;
+        btn = INPUT_BUTTON_WHEEL_DOWN;
     } else {
         return TRUE;
     }
diff --git a/ui/input-legacy.c b/ui/input-legacy.c
index 35dfc27..3bc29bd 100644
--- a/ui/input-legacy.c
+++ b/ui/input-legacy.c
@@ -157,7 +157,7 @@ static void legacy_mouse_event(DeviceState *dev, QemuConsole *src,
         } else {
             s->buttons &= ~bmap[evt->u.btn->button];
         }
-        if (evt->u.btn->down && evt->u.btn->button == INPUT_BUTTON_WHEELUP) {
+        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],
@@ -165,7 +165,7 @@ static void legacy_mouse_event(DeviceState *dev, QemuConsole *src,
                                     s->buttons);
         }
         if (evt->u.btn->down &&
-            evt->u.btn->button == INPUT_BUTTON_WHEELDOWN) {
+            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],
diff --git a/ui/sdl.c b/ui/sdl.c
index c837436..f4aa0f2 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -469,8 +469,8 @@ static void sdl_send_mouse_event(int dx, int dy, int x, int y, int state)
         [INPUT_BUTTON_LEFT]       = SDL_BUTTON(SDL_BUTTON_LEFT),
         [INPUT_BUTTON_MIDDLE]     = SDL_BUTTON(SDL_BUTTON_MIDDLE),
         [INPUT_BUTTON_RIGHT]      = SDL_BUTTON(SDL_BUTTON_RIGHT),
-        [INPUT_BUTTON_WHEELUP]    = SDL_BUTTON(SDL_BUTTON_WHEELUP),
-        [INPUT_BUTTON_WHEELDOWN]  = SDL_BUTTON(SDL_BUTTON_WHEELDOWN),
+        [INPUT_BUTTON_WHEEL_UP]   = SDL_BUTTON(SDL_BUTTON_WHEELUP),
+        [INPUT_BUTTON_WHEEL_DOWN] = SDL_BUTTON(SDL_BUTTON_WHEELDOWN),
     };
     static uint32_t prev_state;
 
diff --git a/ui/sdl2.c b/ui/sdl2.c
index 46270f4..dd47192 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -504,9 +504,9 @@ static void handle_mousewheel(SDL_Event *ev)
     InputButton btn;
 
     if (wev->y > 0) {
-        btn = INPUT_BUTTON_WHEELUP;
+        btn = INPUT_BUTTON_WHEEL_UP;
     } else if (wev->y < 0) {
-        btn = INPUT_BUTTON_WHEELDOWN;
+        btn = INPUT_BUTTON_WHEEL_DOWN;
     } else {
         return;
     }
diff --git a/ui/spice-input.c b/ui/spice-input.c
index 2b3b9ed..96f19aa 100644
--- a/ui/spice-input.c
+++ b/ui/spice-input.c
@@ -111,8 +111,8 @@ static void spice_update_buttons(QemuSpicePointer *pointer,
         [INPUT_BUTTON_LEFT]        = 0x01,
         [INPUT_BUTTON_MIDDLE]      = 0x04,
         [INPUT_BUTTON_RIGHT]       = 0x02,
-        [INPUT_BUTTON_WHEELUP]     = 0x10,
-        [INPUT_BUTTON_WHEELDOWN]   = 0x20,
+        [INPUT_BUTTON_WHEEL_UP]    = 0x10,
+        [INPUT_BUTTON_WHEEL_DOWN]  = 0x20,
     };
 
     if (wheel < 0) {
diff --git a/ui/vnc.c b/ui/vnc.c
index 19dcfce..138529b 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -1593,8 +1593,8 @@ static void pointer_event(VncState *vs, int button_mask, int x, int y)
         [INPUT_BUTTON_LEFT]       = 0x01,
         [INPUT_BUTTON_MIDDLE]     = 0x02,
         [INPUT_BUTTON_RIGHT]      = 0x04,
-        [INPUT_BUTTON_WHEELUP]    = 0x08,
-        [INPUT_BUTTON_WHEELDOWN]  = 0x10,
+        [INPUT_BUTTON_WHEEL_UP]   = 0x08,
+        [INPUT_BUTTON_WHEEL_DOWN] = 0x10,
     };
     QemuConsole *con = vs->vd->dcl.con;
     int width = pixman_image_get_width(vs->vd->server);
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises
  2016-01-26 14:07 [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 3/5] qapi: rename input buttons Gerd Hoffmann
@ 2016-01-26 14:07 ` Gerd Hoffmann
  2016-01-26 16:08   ` Eric Blake
  2016-01-26 16:10   ` Eric Blake
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 5/5] qapi: promote input-send-event to stable Gerd Hoffmann
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 13+ messages in thread
From: Gerd Hoffmann @ 2016-01-26 14:07 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael Roth, Marcelo Tosatti, Markus Armbruster, Gerd Hoffmann

Lowercase them.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
---
 qapi-schema.json | 5 +----
 qmp-commands.hx  | 4 ++--
 scripts/qapi.py  | 1 -
 3 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/qapi-schema.json b/qapi-schema.json
index 596d109..a269ea1 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3699,12 +3699,9 @@
 # Position axis of a pointer input device (mouse, tablet).
 #
 # Since: 2.0
-#
-# Note that the spelling of these values may change when the
-# x-input-send-event is promoted out of experimental status.
 ##
 { 'enum'  : 'InputAxis',
-  'data'  : [ 'X', 'Y' ] }
+  'data'  : [ 'x', 'y' ] }
 
 ##
 # @InputKeyEvent
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 8a39839..636c2e6 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4660,8 +4660,8 @@ Move mouse pointer to absolute coordinates (20000, 400).
 
 -> { "execute": "x-input-send-event" ,
   "arguments": { "events": [
-               { "type": "abs", "data" : { "axis": "X", "value" : 20000 } },
-               { "type": "abs", "data" : { "axis": "Y", "value" : 400 } } ] } }
+               { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
+               { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
 <- { "return": {} }
 
 EQMP
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 096fb24..4dcaf5a 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -66,7 +66,6 @@ case_whitelist = [
     'CpuInfoBase',          # CPU, visible through query-cpu
     'CpuInfoMIPS',          # PC, visible through query-cpu
     'CpuInfoTricore',       # PC, visible through query-cpu
-    'InputAxis',            # TODO: drop when x-input-send-event is fixed
     'QapiErrorClass',       # all members, visible through errors
     'UuidInfo',             # UUID, visible through query-uuid
     'X86CPURegister32',     # all members, visible indirectly through qom-get
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Qemu-devel] [PATCH v2 5/5] qapi: promote input-send-event to stable
  2016-01-26 14:07 [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
                   ` (2 preceding siblings ...)
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises Gerd Hoffmann
@ 2016-01-26 14:07 ` Gerd Hoffmann
  2016-01-26 16:11   ` Eric Blake
  2016-01-26 16:04 ` [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Eric Blake
  2016-02-02 12:56 ` Markus Armbruster
  5 siblings, 1 reply; 13+ messages in thread
From: Gerd Hoffmann @ 2016-01-26 14:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marcelo Tosatti, Markus Armbruster, Gerd Hoffmann

With all fixups being in place now, we can promote input-send-event
to stable abi by removing the x- prefix.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 qapi-schema.json | 12 +++---------
 qmp-commands.hx  | 14 +++++++-------
 ui/input.c       |  6 +++---
 3 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/qapi-schema.json b/qapi-schema.json
index a269ea1..dcddc71 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3765,7 +3765,7 @@
               'abs'     : 'InputMoveEvent' } }
 
 ##
-# @x-input-send-event
+# @input-send-event
 #
 # Send input event(s) to guest.
 #
@@ -3786,16 +3786,10 @@
 # specified, both input devices with and without input routing config
 # are admissible, but devices with input routing config take
 # precedence.
-
-# Since: 2.2
-#
-# Note: this command is experimental, and not a stable API.  Things that
-# might change before it becomes stable include the spelling of enum
-# values for InputButton and InputAxis, and the notion of how to designate
-# which console will receive the event.
 #
+# Since: 2.6
 ##
-{ 'command': 'x-input-send-event',
+{ 'command': 'input-send-event',
   'data': { '*device': 'str',
             '*head'  : 'int',
             'events' : [ 'InputEvent' ] } }
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 636c2e6..d56232a 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4601,13 +4601,13 @@ Example:
 EQMP
 
     {
-        .name       = "x-input-send-event",
+        .name       = "input-send-event",
         .args_type  = "console:i?,events:q",
-        .mhandler.cmd_new = qmp_marshal_x_input_send_event,
+        .mhandler.cmd_new = qmp_marshal_input_send_event,
     },
 
 SQMP
-@x-input-send-event
+@input-send-event
 -----------------
 
 Send input event to guest.
@@ -4628,13 +4628,13 @@ Example (1):
 
 Press left mouse button.
 
--> { "execute": "x-input-send-event",
+-> { "execute": "input-send-event",
     "arguments": { "device": "video0",
                    "events": [ { "type": "btn",
                    "data" : { "down": true, "button": "left" } } ] } }
 <- { "return": {} }
 
--> { "execute": "x-input-send-event",
+-> { "execute": "input-send-event",
     "arguments": { "device": "video0",
                    "events": [ { "type": "btn",
                    "data" : { "down": false, "button": "left" } } ] } }
@@ -4644,7 +4644,7 @@ Example (2):
 
 Press ctrl-alt-del.
 
--> { "execute": "x-input-send-event",
+-> { "execute": "input-send-event",
      "arguments": { "events": [
         { "type": "key", "data" : { "down": true,
           "key": {"type": "qcode", "data": "ctrl" } } },
@@ -4658,7 +4658,7 @@ Example (3):
 
 Move mouse pointer to absolute coordinates (20000, 400).
 
--> { "execute": "x-input-send-event" ,
+-> { "execute": "input-send-event" ,
   "arguments": { "events": [
                { "type": "abs", "data" : { "axis": "x", "value" : 20000 } },
                { "type": "abs", "data" : { "axis": "y", "value" : 400 } } ] } }
diff --git a/ui/input.c b/ui/input.c
index 755b90a..c630c46 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -118,9 +118,9 @@ qemu_input_find_handler(uint32_t mask, QemuConsole *con)
     return NULL;
 }
 
-void qmp_x_input_send_event(bool has_device, const char *device,
-                            bool has_head, int64_t head,
-                            InputEventList *events, Error **errp)
+void qmp_input_send_event(bool has_device, const char *device,
+                          bool has_head, int64_t head,
+                          InputEventList *events, Error **errp)
 {
     InputEventList *e;
     QemuConsole *con;
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name
  2016-01-26 14:07 [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
                   ` (3 preceding siblings ...)
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 5/5] qapi: promote input-send-event to stable Gerd Hoffmann
@ 2016-01-26 16:04 ` Eric Blake
  2016-02-02 12:56 ` Markus Armbruster
  5 siblings, 0 replies; 13+ messages in thread
From: Eric Blake @ 2016-01-26 16:04 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel; +Cc: Marcelo Tosatti, Markus Armbruster

[-- Attachment #1: Type: text/plain, Size: 1152 bytes --]

On 01/26/2016 07:07 AM, Gerd Hoffmann wrote:
> We have two places needing this, and a third one will come shortly.
> So factor things out into a helper function to reduce code duplication.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
> ---

No 0/5 cover letter?

>  include/ui/console.h |  2 ++
>  ui/console.c         | 23 +++++++++++++++++++++++
>  ui/input.c           | 15 ++++-----------
>  ui/vnc.c             | 15 ++++-----------
>  4 files changed, 33 insertions(+), 22 deletions(-)
> 

> +QemuConsole *qemu_console_lookup_by_device_name(const char *device_id,
> +                                                uint32_t head, Error **errp)
> +{
> +    DeviceState *dev;
> +    QemuConsole *con;
> +
> +    dev = qdev_find_recursive(sysbus_get_default(), device_id);
> +    if (dev == NULL) {

I probably would have shortened to 'if (dev) {', but that's cosmetic and
not mandated by HACKING.

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
@ 2016-01-26 16:07   ` Eric Blake
  2016-02-02 12:56   ` Markus Armbruster
  1 sibling, 0 replies; 13+ messages in thread
From: Eric Blake @ 2016-01-26 16:07 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel; +Cc: Marcelo Tosatti, Markus Armbruster

[-- Attachment #1: Type: text/plain, Size: 937 bytes --]

On 01/26/2016 07:07 AM, Gerd Hoffmann wrote:
> Use display device qdev id and head number instead of console index to
> specify the QemuConsole.  This makes things consistent with input
> devices (for input routing) and vnc server configuration, which both use
> display and head too.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  qapi-schema.json | 32 +++++++++++++++++---------------
>  qmp-commands.hx  | 17 +++++++++--------
>  ui/input.c       | 15 ++++++++++-----
>  3 files changed, 36 insertions(+), 28 deletions(-)
> 

Might be worth a mention in the commit message that the change is
acceptable because it is to an 'x-' command (and that a later patch will
rename the command).

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 3/5] qapi: rename input buttons
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 3/5] qapi: rename input buttons Gerd Hoffmann
@ 2016-01-26 16:08   ` Eric Blake
  0 siblings, 0 replies; 13+ messages in thread
From: Eric Blake @ 2016-01-26 16:08 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel
  Cc: Peter Maydell, Michael S. Tsirkin, Markus Armbruster,
	Marcelo Tosatti, Michael Roth, Luiz Capitulino,
	Andreas Färber

[-- Attachment #1: Type: text/plain, Size: 375 bytes --]

On 01/26/2016 07:07 AM, Gerd Hoffmann wrote:
> All lowercase, use-dash instead of CamelCase.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
> ---

Reviewed-by: Eric Blake <eblake@redhat.com>


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises Gerd Hoffmann
@ 2016-01-26 16:08   ` Eric Blake
  2016-01-26 16:10   ` Eric Blake
  1 sibling, 0 replies; 13+ messages in thread
From: Eric Blake @ 2016-01-26 16:08 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel
  Cc: Marcelo Tosatti, Markus Armbruster, Michael Roth

[-- Attachment #1: Type: text/plain, Size: 488 bytes --]

On 01/26/2016 07:07 AM, Gerd Hoffmann wrote:
> Lowercase them.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  qapi-schema.json | 5 +----
>  qmp-commands.hx  | 4 ++--
>  scripts/qapi.py  | 1 -
>  3 files changed, 3 insertions(+), 7 deletions(-)
> 

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises Gerd Hoffmann
  2016-01-26 16:08   ` Eric Blake
@ 2016-01-26 16:10   ` Eric Blake
  1 sibling, 0 replies; 13+ messages in thread
From: Eric Blake @ 2016-01-26 16:10 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel
  Cc: Marcelo Tosatti, Markus Armbruster, Michael Roth

[-- Attachment #1: Type: text/plain, Size: 447 bytes --]

On 01/26/2016 07:07 AM, Gerd Hoffmann wrote:
> Lowercase them.

In the subject, s/axises/axes/, or, since that can be confused with the
plural of a weapon, try this rewrite:

qapi: rename InputAxis values

> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
> ---


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 5/5] qapi: promote input-send-event to stable
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 5/5] qapi: promote input-send-event to stable Gerd Hoffmann
@ 2016-01-26 16:11   ` Eric Blake
  0 siblings, 0 replies; 13+ messages in thread
From: Eric Blake @ 2016-01-26 16:11 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel; +Cc: Marcelo Tosatti, Markus Armbruster

[-- Attachment #1: Type: text/plain, Size: 382 bytes --]

On 01/26/2016 07:07 AM, Gerd Hoffmann wrote:
> With all fixups being in place now, we can promote input-send-event
> to stable abi by removing the x- prefix.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head
  2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
  2016-01-26 16:07   ` Eric Blake
@ 2016-02-02 12:56   ` Markus Armbruster
  1 sibling, 0 replies; 13+ messages in thread
From: Markus Armbruster @ 2016-02-02 12:56 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Marcelo Tosatti, qemu-devel

Gerd Hoffmann <kraxel@redhat.com> writes:

> Use display device qdev id and head number instead of console index to
> specify the QemuConsole.  This makes things consistent with input
> devices (for input routing) and vnc server configuration, which both use
> display and head too.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  qapi-schema.json | 32 +++++++++++++++++---------------
>  qmp-commands.hx  | 17 +++++++++--------
>  ui/input.c       | 15 ++++++++++-----
>  3 files changed, 36 insertions(+), 28 deletions(-)
>
[...]
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index db072a6..9925fc1 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -4614,8 +4614,9 @@ Send input event to guest.
>  
>  Arguments:
>  
> -- "console": console index. (json-int, optional)
> -- "events": list of input events.
> +- "device": display device (json-str, optional)

Missed this in v1, sorry: json-string

> +- "head": display head (json-int, optional)
> +- "events": list of input events
>  
>  The consoles are visible in the qom tree, under
>  /backend/console[$index]. They have a device link and head property, so
[...]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name
  2016-01-26 14:07 [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
                   ` (4 preceding siblings ...)
  2016-01-26 16:04 ` [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Eric Blake
@ 2016-02-02 12:56 ` Markus Armbruster
  5 siblings, 0 replies; 13+ messages in thread
From: Markus Armbruster @ 2016-02-02 12:56 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Marcelo Tosatti, qemu-devel

With the trivial doc fix in PATCH 2, series
Reviewed-by: Markus Armbruster <armbru@redhat.com>

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-02-02 12:56 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-26 14:07 [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
2016-01-26 16:07   ` Eric Blake
2016-02-02 12:56   ` Markus Armbruster
2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 3/5] qapi: rename input buttons Gerd Hoffmann
2016-01-26 16:08   ` Eric Blake
2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 4/5] qapi: rename input axises Gerd Hoffmann
2016-01-26 16:08   ` Eric Blake
2016-01-26 16:10   ` Eric Blake
2016-01-26 14:07 ` [Qemu-devel] [PATCH v2 5/5] qapi: promote input-send-event to stable Gerd Hoffmann
2016-01-26 16:11   ` Eric Blake
2016-01-26 16:04 ` [Qemu-devel] [PATCH v2 1/5] console: add & use qemu_console_lookup_by_device_name Eric Blake
2016-02-02 12:56 ` Markus Armbruster

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.