summaryrefslogtreecommitdiffstats
path: root/qmp-commands.hx
diff options
context:
space:
mode:
authorMarcelo Tosatti <mtosatti@redhat.com>2014-09-30 18:10:17 -0300
committerGerd Hoffmann <kraxel@redhat.com>2014-10-02 09:58:14 +0200
commit50c6617fcbef649674b59f686b12dccfc455ffa3 (patch)
treed6e0907719850ff9a5e8d8cffba470f3738dd2ec /qmp-commands.hx
parente37f20245080b4fa77aa312b01853dab42be85a9 (diff)
downloadhqemu-50c6617fcbef649674b59f686b12dccfc455ffa3.zip
hqemu-50c6617fcbef649674b59f686b12dccfc455ffa3.tar.gz
add input-send-event command
Which allows specification of absolute/relative, up/down and console parameters. Suggested by Gerd Hoffman. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'qmp-commands.hx')
-rw-r--r--qmp-commands.hx63
1 files changed, 63 insertions, 0 deletions
diff --git a/qmp-commands.hx b/qmp-commands.hx
index f581813..1abd619 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -3789,3 +3789,66 @@ Example:
-> { "execute": "trace-event-set-state", "arguments": { "name": "qemu_memalign", "enable": "true" } }
<- { "return": {} }
EQMP
+
+ {
+ .name = "input-send-event",
+ .args_type = "console:i,events:q",
+ .mhandler.cmd_new = qmp_marshal_input_input_send_event,
+ },
+
+SQMP
+@input-send-event
+-----------------
+
+Send input event to guest.
+
+Arguments:
+
+- "console": console index.
+- "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
+it is possible to map which console belongs to which device and display.
+
+Example (1):
+
+Press left mouse button.
+
+-> { "execute": "input-send-event",
+ "arguments": { "console": 0,
+ "events": [ { "type": "btn",
+ "data" : { "down": true, "button": "Left" } } } }
+<- { "return": {} }
+
+-> { "execute": "input-send-event",
+ "arguments": { "console": 0,
+ "events": [ { "type": "btn",
+ "data" : { "down": false, "button": "Left" } } } }
+<- { "return": {} }
+
+Example (2):
+
+Press ctrl-alt-del.
+
+-> { "execute": "input-send-event",
+ "arguments": { "console": 0, "events": [
+ { "type": "key", "data" : { "down": true,
+ "key": {"type": "qcode", "data": "ctrl" } } },
+ { "type": "key", "data" : { "down": true,
+ "key": {"type": "qcode", "data": "alt" } } },
+ { "type": "key", "data" : { "down": true,
+ "key": {"type": "qcode", "data": "delete" } } } ] } }
+<- { "return": {} }
+
+Example (3):
+
+Move mouse pointer to absolute coordinates (20000, 400).
+
+-> { "execute": "input-send-event" ,
+ "arguments": { "console": 0, "events": [
+ { "type": "abs", "data" : { "axis": "X", "value" : 20000 } },
+ { "type": "abs", "data" : { "axis": "Y", "value" : 400 } } ] } }
+<- { "return": {} }
+
+EQMP
OpenPOWER on IntegriCloud