On 1 March 2016 at 22:07, Programmingkid <programmingk...@gmail.com> wrote: > This patch adds the file MacKeys.h. It is a file that contains all the > constants > for the Macintosh keyboard keycodes. > > Signed-off-by: John Arbuckle <programmingk...@gmail.com> > > --- > Note to Peter Maydell: > I know you wanted me to use the constants from the file HIToolbox/Events.h, > but > I can't. It only exists on Mac OS X, so other operating systems like Linux > would not be able to use it. This file is also used in the adb.c file, so > cross-platform compatibility is a must.
What I suggested was that you should use the Events.h constants in ui/cocoa.m (which is OSX only) and have a file in include/hw/input/ for the keys for the ADB keyboard emulation. This patch should really be in a patch series with the patches that use the new header. > include/hw/input/MacKeys.h | 139 > ++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 139 insertions(+), 0 deletions(-) > create mode 100644 include/hw/input/MacKeys.h > > diff --git a/include/hw/input/MacKeys.h b/include/hw/input/MacKeys.h > new file mode 100644 > index 0000000..7d00190 > --- /dev/null > +++ b/include/hw/input/MacKeys.h > @@ -0,0 +1,139 @@ > +/* > + * MacKeys.h > + * > + * Provides a enum of all the Macintosh keycodes. > + * Note: keys like Power, volume related, and eject are handled at a lower > + * level and are not available to QEMU. That doesn't mean we can't > + * substitute one key for another. The function keys like F1 make a > good > + * substitute for these keys. This can be done in the GTK, SDL, or > Cocoa > + * code. > + */ Can you include the standard copyright and license comment at the top, please? Header files need the usual #ifndef/#define/#endif wrappers to guard against multiple inclusion. > + > + /* > + * I didn't count the Power key as the largest value because it's very > large > + * value would cause arrays that depend on MAC_KEY_LARGEST_VALUE to be > too > + * big. > + */ > + MAC_KEY_POWER = 32639, The adb keyboard device appears to assume each keycode is a byte, so how does this work? It looks like it's a two-byte scancode, maybe. You probably want to handle that specially somehow. (Power is special anyway because as well as maybe being a scancode it shorts the ADB pin 2 to ground, which is how a powered-off mac actually gets woken up.) > +/* Could not find the value for this key. */ > +/* #define MAC_KEY_EJECT */ thanks -- PMM