diff mbox

[1/3] input: add qemu_input_key_number_to_qcode

Message ID 1400673615-2033-1-git-send-email-kraxel@redhat.com
State New
Headers show

Commit Message

Gerd Hoffmann May 21, 2014, noon UTC
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/ui/input.h |  1 +
 ui/input-keymap.c  | 11 ++++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/include/ui/input.h b/include/ui/input.h
index 3d3d487..d84ed8b 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -36,6 +36,7 @@  InputEvent *qemu_input_event_new_key(KeyValue *key, bool down);
 void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down);
 void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down);
 void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down);
+int qemu_input_key_number_to_qcode(uint8_t nr);
 int qemu_input_key_value_to_number(const KeyValue *value);
 int qemu_input_key_value_to_qcode(const KeyValue *value);
 int qemu_input_key_value_to_scancode(const KeyValue *value, bool down,
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index 6da4495..4c4f0d0 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -129,7 +129,7 @@  static const int qcode_to_number[] = {
     [Q_KEY_CODE_MAX] = 0,
 };
 
-static int number_to_qcode[0xff];
+static int number_to_qcode[0x100];
 
 int qemu_input_key_value_to_number(const KeyValue *value)
 {
@@ -141,7 +141,7 @@  int qemu_input_key_value_to_number(const KeyValue *value)
     }
 }
 
-int qemu_input_key_value_to_qcode(const KeyValue *value)
+int qemu_input_key_number_to_qcode(uint8_t nr)
 {
     static int first = true;
 
@@ -155,11 +155,16 @@  int qemu_input_key_value_to_qcode(const KeyValue *value)
         }
     }
 
+    return number_to_qcode[nr];
+}
+
+int qemu_input_key_value_to_qcode(const KeyValue *value)
+{
     if (value->kind == KEY_VALUE_KIND_QCODE) {
         return value->qcode;
     } else {
         assert(value->kind == KEY_VALUE_KIND_NUMBER);
-        return number_to_qcode[value->number];
+        return qemu_input_key_number_to_qcode(value->number);
     }
 }