* [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable
@ 2016-03-01 8:22 Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Gerd Hoffmann @ 2016-03-01 8:22 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann
Hi,
Time to get this finally merged. Posted & reviewed back in january,
then fell off my radar due to vacation week and backlog ...
please pull,
Gerd
The following changes since commit 071608b519adf62bc29c914343a21c5407ab1ac9:
Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-20160229-1' into staging (2016-02-29 12:24:26 +0000)
are available in the git repository at:
git://git.kraxel.org/qemu tags/pull-input-20160301-1
for you to fetch changes up to 6575ccddf4e7c2484bc14b10d5e89f57506c3953:
qapi: promote input-send-event to stable (2016-03-01 08:20:27 +0100)
----------------------------------------------------------------
qapi: fix input-send-event and promote to stable
----------------------------------------------------------------
Gerd Hoffmann (5):
console: add & use qemu_console_lookup_by_device_name
qapi: switch x-input-send-event from console to device+head
qapi: rename input buttons
qapi: rename InputAxis values.
qapi: promote input-send-event to stable
hw/input/hid.c | 4 ++--
hw/input/ps2.c | 4 ++--
hw/input/virtio-input-hid.c | 4 ++--
include/ui/console.h | 2 ++
monitor.c | 2 +-
qapi-schema.json | 52 ++++++++++++++++++---------------------------
qmp-commands.hx | 35 +++++++++++++++---------------
scripts/qapi.py | 2 --
ui/cocoa.m | 4 ++--
ui/console.c | 23 ++++++++++++++++++++
ui/gtk.c | 4 ++--
ui/input-legacy.c | 4 ++--
ui/input.c | 32 +++++++++++++---------------
ui/sdl.c | 4 ++--
ui/sdl2.c | 4 ++--
ui/spice-input.c | 4 ++--
ui/vnc.c | 19 ++++++-----------
17 files changed, 104 insertions(+), 99 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Qemu-devel] [PULL 1/5] console: add & use qemu_console_lookup_by_device_name
2016-03-01 8:22 [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable Gerd Hoffmann
@ 2016-03-01 8:22 ` Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Gerd Hoffmann @ 2016-03-01 8:22 UTC (permalink / raw)
To: qemu-devel; +Cc: 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>
Reviewed-by: Markus Armbruster <armbru@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 6631b96..f636971 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -378,6 +378,8 @@ void graphic_hw_gl_block(QemuConsole *con, bool block);
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 7db0fd2..ae61382 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1790,6 +1790,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 bdcb974..fce99ba 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -82,19 +82,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 b6bbea5..f27df6d 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] 7+ messages in thread
* [Qemu-devel] [PULL 2/5] qapi: switch x-input-send-event from console to device+head
2016-03-01 8:22 [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
@ 2016-03-01 8:22 ` Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 3/5] qapi: rename input buttons Gerd Hoffmann
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Gerd Hoffmann @ 2016-03-01 8:22 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann, Markus Armbruster
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>
Reviewed-by: Markus Armbruster <armbru@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 7b8f2a1..b632239 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3829,24 +3829,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
@@ -3856,7 +3856,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 13f158d..b1a2b97 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4671,8 +4671,9 @@ Send input event to guest.
Arguments:
-- "console": console index. (json-int, optional)
-- "events": list of input events.
+- "device": display device (json-string, 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
@@ -4685,15 +4686,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):
@@ -4701,7 +4702,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,
@@ -4715,7 +4716,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 fce99ba..0887bb5 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -119,17 +119,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] 7+ messages in thread
* [Qemu-devel] [PULL 3/5] qapi: rename input buttons
2016-03-01 8:22 [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
@ 2016-03-01 8:22 ` Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 4/5] qapi: rename InputAxis values Gerd Hoffmann
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Gerd Hoffmann @ 2016-03-01 8:22 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Maydell, Michael S. Tsirkin, Michael Roth,
Markus Armbruster, Andreas Färber, Gerd Hoffmann,
Luiz Capitulino
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: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@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 b41efbb..81a85fb 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -140,9 +140,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 b6f0e8d..1bd0dde 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -406,9 +406,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 c4af0be..9ca5395 100644
--- a/hw/input/virtio-input-hid.c
+++ b/hw/input/virtio-input-hid.c
@@ -143,8 +143,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 73eac17..e99ca8c 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 b632239..011fdb6 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3743,12 +3743,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 b1a2b97..cd4d142 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4688,13 +4688,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 8497777..941d7c9 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 3ee5549..7063a02 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -739,8 +739,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 3773826..38ef3fd 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -966,9 +966,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 c97eac1..703f0a6 100644
--- a/ui/input-legacy.c
+++ b/ui/input-legacy.c
@@ -158,7 +158,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],
@@ -166,7 +166,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 9804ee8..abeef33 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -475,8 +475,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 e0128ad..d042442 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -509,9 +509,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 72e4063..8eeebdb 100644
--- a/ui/spice-input.c
+++ b/ui/spice-input.c
@@ -108,8 +108,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 f27df6d..ce4c669 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] 7+ messages in thread
* [Qemu-devel] [PULL 4/5] qapi: rename InputAxis values.
2016-03-01 8:22 [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable Gerd Hoffmann
` (2 preceding siblings ...)
2016-03-01 8:22 ` [Qemu-devel] [PULL 3/5] qapi: rename input buttons Gerd Hoffmann
@ 2016-03-01 8:22 ` Gerd Hoffmann
2016-03-01 8:23 ` [Qemu-devel] [PULL 5/5] qapi: promote input-send-event to stable Gerd Hoffmann
2016-03-01 12:18 ` [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote " Peter Maydell
5 siblings, 0 replies; 7+ messages in thread
From: Gerd Hoffmann @ 2016-03-01 8:22 UTC (permalink / raw)
To: qemu-devel; +Cc: Michael Roth, Gerd Hoffmann, Markus Armbruster
Lowercase them.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@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 011fdb6..f3e080f 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3753,12 +3753,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 cd4d142..edfe772 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4717,8 +4717,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 941d7c9..18adca7 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] 7+ messages in thread
* [Qemu-devel] [PULL 5/5] qapi: promote input-send-event to stable
2016-03-01 8:22 [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable Gerd Hoffmann
` (3 preceding siblings ...)
2016-03-01 8:22 ` [Qemu-devel] [PULL 4/5] qapi: rename InputAxis values Gerd Hoffmann
@ 2016-03-01 8:23 ` Gerd Hoffmann
2016-03-01 12:18 ` [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote " Peter Maydell
5 siblings, 0 replies; 7+ messages in thread
From: Gerd Hoffmann @ 2016-03-01 8:23 UTC (permalink / raw)
To: qemu-devel; +Cc: Gerd Hoffmann, Markus Armbruster
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: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@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 f3e080f..42fd61b 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3819,7 +3819,7 @@
'abs' : 'InputMoveEvent' } }
##
-# @x-input-send-event
+# @input-send-event
#
# Send input event(s) to guest.
#
@@ -3840,16 +3840,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 edfe772..b629673 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -4658,13 +4658,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.
@@ -4685,13 +4685,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" } } ] } }
@@ -4701,7 +4701,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" } } },
@@ -4715,7 +4715,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 0887bb5..6fd48ef 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -119,9 +119,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] 7+ messages in thread
* Re: [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable
2016-03-01 8:22 [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable Gerd Hoffmann
` (4 preceding siblings ...)
2016-03-01 8:23 ` [Qemu-devel] [PULL 5/5] qapi: promote input-send-event to stable Gerd Hoffmann
@ 2016-03-01 12:18 ` Peter Maydell
5 siblings, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2016-03-01 12:18 UTC (permalink / raw)
To: Gerd Hoffmann; +Cc: QEMU Developers
On 1 March 2016 at 08:22, Gerd Hoffmann <kraxel@redhat.com> wrote:
> Hi,
>
> Time to get this finally merged. Posted & reviewed back in january,
> then fell off my radar due to vacation week and backlog ...
>
> please pull,
> Gerd
>
> The following changes since commit 071608b519adf62bc29c914343a21c5407ab1ac9:
>
> Merge remote-tracking branch 'remotes/kraxel/tags/pull-usb-20160229-1' into staging (2016-02-29 12:24:26 +0000)
>
> are available in the git repository at:
>
>
> git://git.kraxel.org/qemu tags/pull-input-20160301-1
>
> for you to fetch changes up to 6575ccddf4e7c2484bc14b10d5e89f57506c3953:
>
> qapi: promote input-send-event to stable (2016-03-01 08:20:27 +0100)
>
> ----------------------------------------------------------------
> qapi: fix input-send-event and promote to stable
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-03-01 12:18 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-01 8:22 [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote to stable Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 1/5] console: add & use qemu_console_lookup_by_device_name Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 2/5] qapi: switch x-input-send-event from console to device+head Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 3/5] qapi: rename input buttons Gerd Hoffmann
2016-03-01 8:22 ` [Qemu-devel] [PULL 4/5] qapi: rename InputAxis values Gerd Hoffmann
2016-03-01 8:23 ` [Qemu-devel] [PULL 5/5] qapi: promote input-send-event to stable Gerd Hoffmann
2016-03-01 12:18 ` [Qemu-devel] [PULL 0/5] qapi: fix input-send-event and promote " Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).