qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Programmingkid <programmingkidx@gmail.com>
Cc: Peter Maydell <peter.maydell@linaro.org>,
	qemu-devel qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] input-keymap.c: Add keypad equal and power keys
Date: Thu, 03 Mar 2016 11:01:07 +0100	[thread overview]
Message-ID: <1456999267.3574.20.camel@redhat.com> (raw)
In-Reply-To: <B6D8C4D0-6244-4825-B252-D7E0B9C92A50@gmail.com>

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 <programmingkidx@gmail.com>
> >> 
> >> ---
> >> 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.

> >> +    [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.

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.

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.  Switch cocoa to generate and
submit qkeycodes.  Switch the apple keyboard(s) to accept qkeycodes (see
yesterdays mail on adb keyboard).  Then the key events from the host
keyboard are forwarded to the guest without ever being converted into pc
scancodes.

cheers,
  Gerd

  reply	other threads:[~2016-03-03 10:01 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-02 15:52 [Qemu-devel] [PATCH] input-keymap.c: Add keypad equal and power keys Programmingkid
2016-03-02 16:12 ` Gerd Hoffmann
2016-03-02 16:29   ` Programmingkid
2016-03-03 10:01     ` Gerd Hoffmann [this message]
2016-03-03 15:15       ` Programmingkid
2016-03-03 15:49         ` Gerd Hoffmann
2016-03-03 17:55           ` Programmingkid
2016-03-03 18:06             ` Peter Maydell
2016-03-02 16:15 ` Eric Blake
2016-03-02 16:26   ` Programmingkid

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1456999267.3574.20.camel@redhat.com \
    --to=kraxel@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=programmingkidx@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).