[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH v2 2/6] vnc: add a new QMP command for changing
From: |
arei.gonglei |
Subject: |
[Qemu-devel] [RFC PATCH v2 2/6] vnc: add a new QMP command for changing keyboard layout |
Date: |
Wed, 3 Dec 2014 14:55:42 +0800 |
From: Gonglei <address@hidden>
Example QMP command of Change VNC keyboard layout:
-> { "execute": "change-vnc-kbd-layout",
"arguments": { "keymap": "de" } }
<- { "return": {}
Signed-off-by: Gonglei <address@hidden>
---
qapi-schema.json | 17 +++++++++++++++++
qmp-commands.hx | 23 +++++++++++++++++++++++
qmp.c | 13 +++++++++++++
3 files changed, 53 insertions(+)
diff --git a/qapi-schema.json b/qapi-schema.json
index 9ffdcf8..0d89b63 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1543,6 +1543,23 @@
{ 'command': 'change-vnc-password', 'data': {'password': 'str'} }
##
+# @change-vnc-kbd-layout:
+#
+# Change the VNC server keyboard layout.
+#
+# @keymap: the new VNC keyboard layout to set.
+#
+# Returns: Nothing on success
+# If VNC is not active, DeviceNotFound.
+#
+# Since: 2.3
+#
+# Notes: Nothing will be changed on failure.
+#
+##
+{ 'command': 'change-vnc-kbd-layout', 'data': {'keymap': 'str'} }
+
+##
# @change:
#
# This command is multiple commands multiplexed together.
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 718dd92..54fe230 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -3854,3 +3854,26 @@ Move mouse pointer to absolute coordinates (20000, 400).
<- { "return": {} }
EQMP
+
+ {
+ .name = "change-vnc-kbd-layout",
+ .args_type = "keymap:s",
+ .mhandler.cmd_new = qmp_marshal_input_change_vnc_kbd_layout,
+ },
+
+SQMP
+change-vnc-kbd-layout
+---------------------
+
+Change VNC keyboard layout.
+
+Arguments:
+
+- "keymap": the new VNC keyboard layout to set.
+
+Example:
+
+-> { "execute": "change-vnc-kbd-layout", "arguments": { "keymap": "de" } }
+<- { "return": {} }
+
+EQMP
diff --git a/qmp.c b/qmp.c
index 3fda973..812ded7 100644
--- a/qmp.c
+++ b/qmp.c
@@ -366,6 +366,13 @@ void qmp_change_vnc_password(const char *password, Error
**errp)
}
}
+void qmp_change_vnc_kbd_layout(const char *keymap, Error **errp)
+{
+ if (vnc_display_kbd_layout(NULL, keymap) < 0) {
+ error_setg(errp, "keyboard layout '%s' set failed", keymap);
+ }
+}
+
static void qmp_change_vnc_listen(const char *target, Error **errp)
{
QemuOptsList *olist = qemu_find_opts("vnc");
@@ -402,6 +409,12 @@ void qmp_change_vnc_password(const char *password, Error
**errp)
{
error_set(errp, QERR_FEATURE_DISABLED, "vnc");
}
+
+void qmp_change_vnc_kbd_layout(const char *keymap, Error **errp)
+{
+ error_set(errp, QERR_FEATURE_DISABLED, "vnc");
+}
+
static void qmp_change_vnc(const char *target, bool has_arg, const char *arg,
Error **errp)
{
--
1.7.12.4
- [Qemu-devel] [RFC PATCH v2 0/6] Support to change VNC keyboard layout dynamically, arei.gonglei, 2014/12/03
- [Qemu-devel] [RFC PATCH v2 2/6] vnc: add a new QMP command for changing keyboard layout,
arei.gonglei <=
- [Qemu-devel] [RFC PATCH v2 5/6] keymaps: correct keymaps.c following Qemu coding style, arei.gonglei, 2014/12/03
- [Qemu-devel] [RFC PATCH v2 4/6] qapi-schema: fix typo about change-vnc-password, arei.gonglei, 2014/12/03
- [Qemu-devel] [RFC PATCH v2 6/6] keymaps: convert fprintf to qerror_report, arei.gonglei, 2014/12/03
- [Qemu-devel] [RFC PATCH v2 1/6] vnc: introduce vnc_display_kbd_layout function, arei.gonglei, 2014/12/03
- [Qemu-devel] [RFC PATCH v2 3/6] vnc: HMP change-vnc-kbd-layout wrapper, arei.gonglei, 2014/12/03
- Re: [Qemu-devel] [RFC PATCH v2 0/6] Support to change VNC keyboard layout dynamically, Daniel P. Berrange, 2014/12/03