[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] input-keymap.c: Add keypad equal and power keys
From: |
Programmingkid |
Subject: |
Re: [Qemu-devel] [PATCH] input-keymap.c: Add keypad equal and power keys |
Date: |
Thu, 3 Mar 2016 10:15:55 -0500 |
On Mar 3, 2016, at 5:01 AM, Gerd Hoffmann wrote:
> On Mi, 2016-03-02 at 11:29 -0500, Programmingkid wrote:
>> On Mar 2, 2016, at 11:12 AM, Gerd Hoffmann wrote:
>>
>>> On Mi, 2016-03-02 at 10:52 -0500, Programmingkid wrote:
>>>> Add the keypad equals and power keys to the qcode_to_number array. These
>>>> keys
>>>> are used on a Macintosh keyboard.
>>>>
>>>> Signed-off-by: John Arbuckle <address@hidden>
>>>>
>>>> ---
>>>> ui/input-keymap.c | 3 ++-
>>>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/ui/input-keymap.c b/ui/input-keymap.c
>>>> index fd2c09d..8cffe62 100644
>>>> --- a/ui/input-keymap.c
>>>> +++ b/ui/input-keymap.c
>>>> @@ -98,6 +98,7 @@ static const int qcode_to_number[] = {
>>>> [Q_KEY_CODE_KP_ENTER] = 0x9c,
>>>> [Q_KEY_CODE_KP_DECIMAL] = 0x53,
>>>> [Q_KEY_CODE_SYSRQ] = 0x54,
>>>> + [Q_KEY_CODE_KP_EQUALS] = 0x55,
>>>
>>> Where does the 0x55 come from?
>>
>> It is a value I picked by adding one to Q_KEY_CODE_SYSRQ's value.
>
> Naa, that is not going to fly.
>
> number is modeled after pc scancodes, so you can't just pick random
> numbers.
Really? I thought the only requirement was each scancode had to be unique.
>
>>>> + [Q_KEY_CODE_POWER] = 0x5e,
>>>
>>> Same question here.
>>
>> I went to this page:
>> http://www.computer-engineering.org/ps2keyboard/scancodes1.html.
>> Then I looked at the power button's value of 0xe05e, and just removed the e0
>> part.
>
> That is wrong too, you can't just drop the 0xe0.
They value of these keys doesn't really matter to me. They both just need to be
identifiable.
> Traditionally qemu used pc scancodes exclusively to pass around key
> presses internally. That had a number of problems: First, alot of
> places in qemu had code to deal with the extended scancode (0xe0 prefix)
> logic. Second, if you need keys which don't have a pc scancode you have
> a problem.
It sounds like you want the power key's value to be the actual ps/2 value of
0xe05e.
> So, a while back I've switched the qemu input system over to use
> qkeycodes instead. pc scancodes can still be handled and there are
> helper functions to translate qkeycodes to scancodes and back. That is
> needed (a) for backward compatibility with code which isn't converted
> yet to the new input api and (b) for devices such as the ps/2 keyboard
> which actually need scancodes.
>
> So, if there are no scancodes for the keys you want handle, you can now
> drop the scancodes from the workflow.
Are you saying not to add the power and keypad equal keys to the input-keymap.c
file?
> Switch cocoa to generate and
> submit qkeycodes.
This is already done.
> Switch the apple keyboard(s) to accept qkeycodes (see
> yesterdays mail on adb keyboard).
On my to-do list.
> Then the key events from the host
> keyboard are forwarded to the guest without ever being converted into pc
> scancodes.
How do I do this? You said to use qemu_input_event_send_key_qcode() to send
QKeyCodes to QEMU. Is this what you still want? Eventually wouldn't the
qcode_to_number array in input-keymap.c try to translate the keypad equals to a
ps/2 value? If the keypad equals key isn't set in this array, the array might
return a default value of 0 and the user will see 'a' printed whenever the
keypad equals key is pushed.
Re: [Qemu-devel] [PATCH] input-keymap.c: Add keypad equal and power keys, Eric Blake, 2016/03/02