* [Qemu-devel] [patch] factor out commonly used scancode translation table
@ 2007-01-04 17:29 Bernhard Fischer
2007-01-04 17:52 ` Jonathan Phenix
2007-01-14 22:58 ` Rob Landley
0 siblings, 2 replies; 8+ messages in thread
From: Bernhard Fischer @ 2007-01-04 17:29 UTC (permalink / raw)
To: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 268 bytes --]
Hi,
The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
an x_keycode.c. This struct is also used by the GGI backend (that is not
yet merged ¹).
Comments?
Please apply.
¹)
http://members.aon.at/berny_f/qemu/qemu-HEAD.ggi-2.2.x-04c-20070104.diff
[-- Attachment #2: qemu.cvs.20070104.commonly_used_x_keycode.diff --]
[-- Type: text/x-diff, Size: 7707 bytes --]
diff --exclude='*.diff' -rduNp ../qemu_trunk.orig/Makefile.target ./Makefile.target
--- ../qemu_trunk.orig/Makefile.target 2007-01-04 14:38:58.000000000 +0100
+++ ./Makefile.target 2007-01-04 14:50:10.000000000 +0100
@@ -444,7 +444,7 @@ $(QEMU_SYSTEM): $(VL_OBJS) libqemu.a
cocoa.o: cocoa.m
$(CC) $(CFLAGS) $(CPPFLAGS) $(BASE_CFLAGS) -c -o $@ $<
-sdl.o: sdl.c keymaps.c sdl_keysym.h
+sdl.o: sdl.c keymaps.c sdl_keysym.h x_keymap.c
$(CC) $(CFLAGS) $(CPPFLAGS) $(SDL_CFLAGS) $(BASE_CFLAGS) -c -o $@ $<
vnc.o: vnc.c keymaps.c sdl_keysym.h vnchextile.h
diff --exclude='*.diff' -rduNp ../qemu_trunk.orig/sdl.c ./sdl.c
--- ../qemu_trunk.orig/sdl.c 2006-12-11 23:33:26.000000000 +0100
+++ ./sdl.c 2007-01-04 15:45:11.000000000 +0100
@@ -121,89 +121,7 @@ static uint8_t sdl_keyevent_to_keycode(c
}
#else
-
-static const uint8_t x_keycode_to_pc_keycode[115] = {
- 0xc7, /* 97 Home */
- 0xc8, /* 98 Up */
- 0xc9, /* 99 PgUp */
- 0xcb, /* 100 Left */
- 0x4c, /* 101 KP-5 */
- 0xcd, /* 102 Right */
- 0xcf, /* 103 End */
- 0xd0, /* 104 Down */
- 0xd1, /* 105 PgDn */
- 0xd2, /* 106 Ins */
- 0xd3, /* 107 Del */
- 0x9c, /* 108 Enter */
- 0x9d, /* 109 Ctrl-R */
- 0x0, /* 110 Pause */
- 0xb7, /* 111 Print */
- 0xb5, /* 112 Divide */
- 0xb8, /* 113 Alt-R */
- 0xc6, /* 114 Break */
- 0x0, /* 115 */
- 0x0, /* 116 */
- 0x0, /* 117 */
- 0x0, /* 118 */
- 0x0, /* 119 */
- 0x0, /* 120 */
- 0x0, /* 121 */
- 0x0, /* 122 */
- 0x0, /* 123 */
- 0x0, /* 124 */
- 0x0, /* 125 */
- 0x0, /* 126 */
- 0x0, /* 127 */
- 0x0, /* 128 */
- 0x79, /* 129 Henkan */
- 0x0, /* 130 */
- 0x7b, /* 131 Muhenkan */
- 0x0, /* 132 */
- 0x7d, /* 133 Yen */
- 0x0, /* 134 */
- 0x0, /* 135 */
- 0x47, /* 136 KP_7 */
- 0x48, /* 137 KP_8 */
- 0x49, /* 138 KP_9 */
- 0x4b, /* 139 KP_4 */
- 0x4c, /* 140 KP_5 */
- 0x4d, /* 141 KP_6 */
- 0x4f, /* 142 KP_1 */
- 0x50, /* 143 KP_2 */
- 0x51, /* 144 KP_3 */
- 0x52, /* 145 KP_0 */
- 0x53, /* 146 KP_. */
- 0x47, /* 147 KP_HOME */
- 0x48, /* 148 KP_UP */
- 0x49, /* 149 KP_PgUp */
- 0x4b, /* 150 KP_Left */
- 0x4c, /* 151 KP_ */
- 0x4d, /* 152 KP_Right */
- 0x4f, /* 153 KP_End */
- 0x50, /* 154 KP_Down */
- 0x51, /* 155 KP_PgDn */
- 0x52, /* 156 KP_Ins */
- 0x53, /* 157 KP_Del */
- 0x0, /* 158 */
- 0x0, /* 159 */
- 0x0, /* 160 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
- 0x0, /* 201 */
- 0x0, /* 202 */
- 0x0, /* 203 */
- 0x0, /* 204 */
- 0x0, /* 205 */
- 0x0, /* 206 */
- 0x0, /* 207 */
- 0x70, /* 208 Hiragana_Katakana */
- 0x0, /* 209 */
- 0x0, /* 210 */
- 0x73, /* 211 backslash */
-};
-
+#include "x_keycode.c"
static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
{
int keycode;
diff --exclude='*.diff' -rduNp ../qemu_trunk.orig/x_keymap.c ./x_keymap.c
--- ../qemu_trunk.orig/x_keymap.c 1970-01-01 01:00:00.000000000 +0100
+++ ./x_keymap.c 2007-01-04 15:42:49.000000000 +0100
@@ -0,0 +1,106 @@
+/*
+ * QEMU SDL display driver
+ *
+ * Copyright (c) 2003 Fabrice Bellard
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+static const uint8_t x_keycode_to_pc_keycode[115] = {
+ 0xc7, /* 97 Home */
+ 0xc8, /* 98 Up */
+ 0xc9, /* 99 PgUp */
+ 0xcb, /* 100 Left */
+ 0x4c, /* 101 KP-5 */
+ 0xcd, /* 102 Right */
+ 0xcf, /* 103 End */
+ 0xd0, /* 104 Down */
+ 0xd1, /* 105 PgDn */
+ 0xd2, /* 106 Ins */
+ 0xd3, /* 107 Del */
+ 0x9c, /* 108 Enter */
+ 0x9d, /* 109 Ctrl-R */
+ 0x0, /* 110 Pause */
+ 0xb7, /* 111 Print */
+ 0xb5, /* 112 Divide */
+ 0xb8, /* 113 Alt-R */
+ 0xc6, /* 114 Break */
+ 0x0, /* 115 */
+ 0x0, /* 116 */
+ 0x0, /* 117 */
+ 0x0, /* 118 */
+ 0x0, /* 119 */
+ 0x0, /* 120 */
+ 0x0, /* 121 */
+ 0x0, /* 122 */
+ 0x0, /* 123 */
+ 0x0, /* 124 */
+ 0x0, /* 125 */
+ 0x0, /* 126 */
+ 0x0, /* 127 */
+ 0x0, /* 128 */
+ 0x79, /* 129 Henkan */
+ 0x0, /* 130 */
+ 0x7b, /* 131 Muhenkan */
+ 0x0, /* 132 */
+ 0x7d, /* 133 Yen */
+ 0x0, /* 134 */
+ 0x0, /* 135 */
+ 0x47, /* 136 KP_7 */
+ 0x48, /* 137 KP_8 */
+ 0x49, /* 138 KP_9 */
+ 0x4b, /* 139 KP_4 */
+ 0x4c, /* 140 KP_5 */
+ 0x4d, /* 141 KP_6 */
+ 0x4f, /* 142 KP_1 */
+ 0x50, /* 143 KP_2 */
+ 0x51, /* 144 KP_3 */
+ 0x52, /* 145 KP_0 */
+ 0x53, /* 146 KP_. */
+ 0x47, /* 147 KP_HOME */
+ 0x48, /* 148 KP_UP */
+ 0x49, /* 149 KP_PgUp */
+ 0x4b, /* 150 KP_Left */
+ 0x4c, /* 151 KP_ */
+ 0x4d, /* 152 KP_Right */
+ 0x4f, /* 153 KP_End */
+ 0x50, /* 154 KP_Down */
+ 0x51, /* 155 KP_PgDn */
+ 0x52, /* 156 KP_Ins */
+ 0x53, /* 157 KP_Del */
+ 0x0, /* 158 */
+ 0x0, /* 159 */
+ 0x0, /* 160 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
+ 0x0, /* 201 */
+ 0x0, /* 202 */
+ 0x0, /* 203 */
+ 0x0, /* 204 */
+ 0x0, /* 205 */
+ 0x0, /* 206 */
+ 0x0, /* 207 */
+ 0x70, /* 208 Hiragana_Katakana */
+ 0x0, /* 209 */
+ 0x0, /* 210 */
+ 0x73, /* 211 backslash */
+};
+
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [patch] factor out commonly used scancode translation table
2007-01-04 17:29 [Qemu-devel] [patch] factor out commonly used scancode translation table Bernhard Fischer
@ 2007-01-04 17:52 ` Jonathan Phenix
2007-01-04 18:01 ` Bernhard Fischer
2007-01-14 22:58 ` Rob Landley
1 sibling, 1 reply; 8+ messages in thread
From: Jonathan Phenix @ 2007-01-04 17:52 UTC (permalink / raw)
To: qemu-devel
Bernhard Fischer wrote:
> Hi,
>
> The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
> an x_keycode.c. This struct is also used by the GGI backend (that is not
> yet merged ¹).
>
> Comments?
>
How it is done right now, each time x_keycode.c is included, you will
end up with an extra copy in the final executable. Perhaps that simply
keeping the LUT in sdl.c but removing the 'static' keyword from it and
creating a sdl.h file with the statement:
extern const uint8_t *x_keycode_to_pc_keycode;
would be a better idea. Including a header file is more clean than
including a C file as well.
> Please apply.
>
> ¹)
> http://members.aon.at/berny_f/qemu/qemu-HEAD.ggi-2.2.x-04c-20070104.diff
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [patch] factor out commonly used scancode translation table
2007-01-04 17:52 ` Jonathan Phenix
@ 2007-01-04 18:01 ` Bernhard Fischer
2007-01-04 18:10 ` Thiemo Seufer
0 siblings, 1 reply; 8+ messages in thread
From: Bernhard Fischer @ 2007-01-04 18:01 UTC (permalink / raw)
To: qemu-devel
On Thu, Jan 04, 2007 at 12:52:56PM -0500, Jonathan Phenix wrote:
>Bernhard Fischer wrote:
>>Hi,
>>
>>The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
>>an x_keycode.c. This struct is also used by the GGI backend (that is not
>>yet merged ¹).
>>
>>Comments?
>>
>How it is done right now, each time x_keycode.c is included, you will
>end up with an extra copy in the final executable. Perhaps that simply
>keeping the LUT in sdl.c but removing the 'static' keyword from it and
>creating a sdl.h file with the statement:
Yes, or create one public accessor func (_translate_keycode() or the
like). I don't have SDL installed, so only have the LUT once, but you're
of course right.
What's the preferred method? public LUT or public accessor?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [patch] factor out commonly used scancode translation table
2007-01-04 18:01 ` Bernhard Fischer
@ 2007-01-04 18:10 ` Thiemo Seufer
2007-01-04 18:52 ` Bernhard Fischer
0 siblings, 1 reply; 8+ messages in thread
From: Thiemo Seufer @ 2007-01-04 18:10 UTC (permalink / raw)
To: Bernhard Fischer; +Cc: qemu-devel
Bernhard Fischer wrote:
> On Thu, Jan 04, 2007 at 12:52:56PM -0500, Jonathan Phenix wrote:
> >Bernhard Fischer wrote:
> >>Hi,
> >>
> >>The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
> >>an x_keycode.c. This struct is also used by the GGI backend (that is not
> >>yet merged ¹).
> >>
> >>Comments?
> >>
> >How it is done right now, each time x_keycode.c is included, you will
> >end up with an extra copy in the final executable. Perhaps that simply
> >keeping the LUT in sdl.c but removing the 'static' keyword from it and
> >creating a sdl.h file with the statement:
>
> Yes, or create one public accessor func (_translate_keycode() or the
> like). I don't have SDL installed, so only have the LUT once, but you're
> of course right.
>
> What's the preferred method? public LUT or public accessor?
Public accessor, I'd say. Keystroke processing isn't performance critical.
Thiemo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [patch] factor out commonly used scancode translation table
2007-01-04 18:10 ` Thiemo Seufer
@ 2007-01-04 18:52 ` Bernhard Fischer
2007-01-04 19:06 ` Anthony Liguori
0 siblings, 1 reply; 8+ messages in thread
From: Bernhard Fischer @ 2007-01-04 18:52 UTC (permalink / raw)
To: Thiemo Seufer; +Cc: qemu-devel
[-- Attachment #1: Type: text/plain, Size: 1115 bytes --]
On Thu, Jan 04, 2007 at 06:10:30PM +0000, Thiemo Seufer wrote:
>Bernhard Fischer wrote:
>> On Thu, Jan 04, 2007 at 12:52:56PM -0500, Jonathan Phenix wrote:
>> >Bernhard Fischer wrote:
>> >>Hi,
>> >>
>> >>The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
>> >>an x_keycode.c. This struct is also used by the GGI backend (that is not
>> >>yet merged ¹).
>> >>
>> >>Comments?
>> >>
>> >How it is done right now, each time x_keycode.c is included, you will
>> >end up with an extra copy in the final executable. Perhaps that simply
>> >keeping the LUT in sdl.c but removing the 'static' keyword from it and
>> >creating a sdl.h file with the statement:
>>
>> Yes, or create one public accessor func (_translate_keycode() or the
>> like). I don't have SDL installed, so only have the LUT once, but you're
>> of course right.
>>
>> What's the preferred method? public LUT or public accessor?
>
>Public accessor, I'd say. Keystroke processing isn't performance critical.
New patch with a public accessor is attached. Couldn't think of a better
name, please feel free to change it..
thanks,
[-- Attachment #2: qemu.cvs.20070104.commonly_used_x_keycode.02.diff --]
[-- Type: text/x-diff, Size: 8144 bytes --]
--- ../qemu_trunk.orig/vl.h 2006-12-27 14:17:48.000000000 +0100
+++ vl.h 2007-01-04 19:27:07.000000000 +0100
@@ -869,6 +873,9 @@ void cocoa_display_init(DisplayState *ds
/* vnc.c */
void vnc_display_init(DisplayState *ds, const char *display);
+/* x_keymap.c */
+extern uint8_t _translate_keycode(const int key);
+
/* ide.c */
#define MAX_DISKS 4
--- ../qemu_trunk.orig/sdl.c 2006-12-11 23:33:26.000000000 +0100
+++ sdl.c 2007-01-04 19:28:30.000000000 +0100
@@ -122,88 +122,6 @@ static uint8_t sdl_keyevent_to_keycode(c
#else
-static const uint8_t x_keycode_to_pc_keycode[115] = {
- 0xc7, /* 97 Home */
- 0xc8, /* 98 Up */
- 0xc9, /* 99 PgUp */
- 0xcb, /* 100 Left */
- 0x4c, /* 101 KP-5 */
- 0xcd, /* 102 Right */
- 0xcf, /* 103 End */
- 0xd0, /* 104 Down */
- 0xd1, /* 105 PgDn */
- 0xd2, /* 106 Ins */
- 0xd3, /* 107 Del */
- 0x9c, /* 108 Enter */
- 0x9d, /* 109 Ctrl-R */
- 0x0, /* 110 Pause */
- 0xb7, /* 111 Print */
- 0xb5, /* 112 Divide */
- 0xb8, /* 113 Alt-R */
- 0xc6, /* 114 Break */
- 0x0, /* 115 */
- 0x0, /* 116 */
- 0x0, /* 117 */
- 0x0, /* 118 */
- 0x0, /* 119 */
- 0x0, /* 120 */
- 0x0, /* 121 */
- 0x0, /* 122 */
- 0x0, /* 123 */
- 0x0, /* 124 */
- 0x0, /* 125 */
- 0x0, /* 126 */
- 0x0, /* 127 */
- 0x0, /* 128 */
- 0x79, /* 129 Henkan */
- 0x0, /* 130 */
- 0x7b, /* 131 Muhenkan */
- 0x0, /* 132 */
- 0x7d, /* 133 Yen */
- 0x0, /* 134 */
- 0x0, /* 135 */
- 0x47, /* 136 KP_7 */
- 0x48, /* 137 KP_8 */
- 0x49, /* 138 KP_9 */
- 0x4b, /* 139 KP_4 */
- 0x4c, /* 140 KP_5 */
- 0x4d, /* 141 KP_6 */
- 0x4f, /* 142 KP_1 */
- 0x50, /* 143 KP_2 */
- 0x51, /* 144 KP_3 */
- 0x52, /* 145 KP_0 */
- 0x53, /* 146 KP_. */
- 0x47, /* 147 KP_HOME */
- 0x48, /* 148 KP_UP */
- 0x49, /* 149 KP_PgUp */
- 0x4b, /* 150 KP_Left */
- 0x4c, /* 151 KP_ */
- 0x4d, /* 152 KP_Right */
- 0x4f, /* 153 KP_End */
- 0x50, /* 154 KP_Down */
- 0x51, /* 155 KP_PgDn */
- 0x52, /* 156 KP_Ins */
- 0x53, /* 157 KP_Del */
- 0x0, /* 158 */
- 0x0, /* 159 */
- 0x0, /* 160 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
- 0x0, /* 201 */
- 0x0, /* 202 */
- 0x0, /* 203 */
- 0x0, /* 204 */
- 0x0, /* 205 */
- 0x0, /* 206 */
- 0x0, /* 207 */
- 0x70, /* 208 Hiragana_Katakana */
- 0x0, /* 209 */
- 0x0, /* 210 */
- 0x73, /* 211 backslash */
-};
-
static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
{
int keycode;
@@ -216,7 +134,7 @@ static uint8_t sdl_keyevent_to_keycode(c
keycode -= 8; /* just an offset */
} else if (keycode < 212) {
/* use conversion table */
- keycode = x_keycode_to_pc_keycode[keycode - 97];
+ keycode = _translate_keycode(keycode - 97);
} else {
keycode = 0;
}
--- ../qemu_trunk.orig/x_keymap.c 1970-01-01 01:00:00.000000000 +0100
+++ x_keymap.c 2007-01-04 19:25:16.000000000 +0100
@@ -0,0 +1,110 @@
+/*
+ * QEMU SDL display driver
+ *
+ * Copyright (c) 2003 Fabrice Bellard
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+#include "vl.h"
+static const uint8_t x_keycode_to_pc_keycode[115] = {
+ 0xc7, /* 97 Home */
+ 0xc8, /* 98 Up */
+ 0xc9, /* 99 PgUp */
+ 0xcb, /* 100 Left */
+ 0x4c, /* 101 KP-5 */
+ 0xcd, /* 102 Right */
+ 0xcf, /* 103 End */
+ 0xd0, /* 104 Down */
+ 0xd1, /* 105 PgDn */
+ 0xd2, /* 106 Ins */
+ 0xd3, /* 107 Del */
+ 0x9c, /* 108 Enter */
+ 0x9d, /* 109 Ctrl-R */
+ 0x0, /* 110 Pause */
+ 0xb7, /* 111 Print */
+ 0xb5, /* 112 Divide */
+ 0xb8, /* 113 Alt-R */
+ 0xc6, /* 114 Break */
+ 0x0, /* 115 */
+ 0x0, /* 116 */
+ 0x0, /* 117 */
+ 0x0, /* 118 */
+ 0x0, /* 119 */
+ 0x0, /* 120 */
+ 0x0, /* 121 */
+ 0x0, /* 122 */
+ 0x0, /* 123 */
+ 0x0, /* 124 */
+ 0x0, /* 125 */
+ 0x0, /* 126 */
+ 0x0, /* 127 */
+ 0x0, /* 128 */
+ 0x79, /* 129 Henkan */
+ 0x0, /* 130 */
+ 0x7b, /* 131 Muhenkan */
+ 0x0, /* 132 */
+ 0x7d, /* 133 Yen */
+ 0x0, /* 134 */
+ 0x0, /* 135 */
+ 0x47, /* 136 KP_7 */
+ 0x48, /* 137 KP_8 */
+ 0x49, /* 138 KP_9 */
+ 0x4b, /* 139 KP_4 */
+ 0x4c, /* 140 KP_5 */
+ 0x4d, /* 141 KP_6 */
+ 0x4f, /* 142 KP_1 */
+ 0x50, /* 143 KP_2 */
+ 0x51, /* 144 KP_3 */
+ 0x52, /* 145 KP_0 */
+ 0x53, /* 146 KP_. */
+ 0x47, /* 147 KP_HOME */
+ 0x48, /* 148 KP_UP */
+ 0x49, /* 149 KP_PgUp */
+ 0x4b, /* 150 KP_Left */
+ 0x4c, /* 151 KP_ */
+ 0x4d, /* 152 KP_Right */
+ 0x4f, /* 153 KP_End */
+ 0x50, /* 154 KP_Down */
+ 0x51, /* 155 KP_PgDn */
+ 0x52, /* 156 KP_Ins */
+ 0x53, /* 157 KP_Del */
+ 0x0, /* 158 */
+ 0x0, /* 159 */
+ 0x0, /* 160 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
+ 0x0, /* 201 */
+ 0x0, /* 202 */
+ 0x0, /* 203 */
+ 0x0, /* 204 */
+ 0x0, /* 205 */
+ 0x0, /* 206 */
+ 0x0, /* 207 */
+ 0x70, /* 208 Hiragana_Katakana */
+ 0x0, /* 209 */
+ 0x0, /* 210 */
+ 0x73, /* 211 backslash */
+};
+
+uint8_t _translate_keycode(const int key)
+{
+ return x_keycode_to_pc_keycode[key];
+}
--- ../qemu_trunk.orig/Makefile.target 2007-01-04 14:38:58.000000000 +0100
+++ Makefile.target 2007-01-04 19:39:21.000000000 +0100
@@ -397,6 +397,9 @@ ifdef CONFIG_COREAUDIO
COCOA_LIBS+=-framework CoreAudio
endif
endif
+ifdef CONFIG_SDL
+VL_OBJS+=x_keymap.o
+endif
ifdef CONFIG_SLIRP
CPPFLAGS+=-I$(SRC_PATH)/slirp
SLIRP_OBJS=cksum.o if.o ip_icmp.o ip_input.o ip_output.o \
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [patch] factor out commonly used scancode translation table
2007-01-04 18:52 ` Bernhard Fischer
@ 2007-01-04 19:06 ` Anthony Liguori
0 siblings, 0 replies; 8+ messages in thread
From: Anthony Liguori @ 2007-01-04 19:06 UTC (permalink / raw)
To: qemu-devel
Bernhard Fischer wrote:
> On Thu, Jan 04, 2007 at 06:10:30PM +0000, Thiemo Seufer wrote:
>
>> Bernhard Fischer wrote:
>>
>>> On Thu, Jan 04, 2007 at 12:52:56PM -0500, Jonathan Phenix wrote:
>>>
>>>> Bernhard Fischer wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
>>>>> an x_keycode.c. This struct is also used by the GGI backend (that is not
>>>>> yet merged ¹).
>>>>>
>>>>> Comments?
>>>>>
>>>>>
>>>> How it is done right now, each time x_keycode.c is included, you will
>>>> end up with an extra copy in the final executable. Perhaps that simply
>>>> keeping the LUT in sdl.c but removing the 'static' keyword from it and
>>>> creating a sdl.h file with the statement:
>>>>
>>> Yes, or create one public accessor func (_translate_keycode() or the
>>> like). I don't have SDL installed, so only have the LUT once, but you're
>>> of course right.
>>>
>>> What's the preferred method? public LUT or public accessor?
>>>
>> Public accessor, I'd say. Keystroke processing isn't performance critical.
>>
>
> New patch with a public accessor is attached. Couldn't think of a better
> name, please feel free to change it..
>
Is it worth evening worry about this if the GGD patch isn't going to
eventually end up in CVS?
Why have the abstraction if it's not going to be used? I'm not really
sure I see the value in having GGD...
Regards,
Anthony Liguori
> thanks,
>
> ------------------------------------------------------------------------
>
> --- ../qemu_trunk.orig/vl.h 2006-12-27 14:17:48.000000000 +0100
> +++ vl.h 2007-01-04 19:27:07.000000000 +0100
> @@ -869,6 +873,9 @@ void cocoa_display_init(DisplayState *ds
> /* vnc.c */
> void vnc_display_init(DisplayState *ds, const char *display);
>
> +/* x_keymap.c */
> +extern uint8_t _translate_keycode(const int key);
> +
> /* ide.c */
> #define MAX_DISKS 4
>
> --- ../qemu_trunk.orig/sdl.c 2006-12-11 23:33:26.000000000 +0100
> +++ sdl.c 2007-01-04 19:28:30.000000000 +0100
> @@ -122,88 +122,6 @@ static uint8_t sdl_keyevent_to_keycode(c
>
> #else
>
> -static const uint8_t x_keycode_to_pc_keycode[115] = {
> - 0xc7, /* 97 Home */
> - 0xc8, /* 98 Up */
> - 0xc9, /* 99 PgUp */
> - 0xcb, /* 100 Left */
> - 0x4c, /* 101 KP-5 */
> - 0xcd, /* 102 Right */
> - 0xcf, /* 103 End */
> - 0xd0, /* 104 Down */
> - 0xd1, /* 105 PgDn */
> - 0xd2, /* 106 Ins */
> - 0xd3, /* 107 Del */
> - 0x9c, /* 108 Enter */
> - 0x9d, /* 109 Ctrl-R */
> - 0x0, /* 110 Pause */
> - 0xb7, /* 111 Print */
> - 0xb5, /* 112 Divide */
> - 0xb8, /* 113 Alt-R */
> - 0xc6, /* 114 Break */
> - 0x0, /* 115 */
> - 0x0, /* 116 */
> - 0x0, /* 117 */
> - 0x0, /* 118 */
> - 0x0, /* 119 */
> - 0x0, /* 120 */
> - 0x0, /* 121 */
> - 0x0, /* 122 */
> - 0x0, /* 123 */
> - 0x0, /* 124 */
> - 0x0, /* 125 */
> - 0x0, /* 126 */
> - 0x0, /* 127 */
> - 0x0, /* 128 */
> - 0x79, /* 129 Henkan */
> - 0x0, /* 130 */
> - 0x7b, /* 131 Muhenkan */
> - 0x0, /* 132 */
> - 0x7d, /* 133 Yen */
> - 0x0, /* 134 */
> - 0x0, /* 135 */
> - 0x47, /* 136 KP_7 */
> - 0x48, /* 137 KP_8 */
> - 0x49, /* 138 KP_9 */
> - 0x4b, /* 139 KP_4 */
> - 0x4c, /* 140 KP_5 */
> - 0x4d, /* 141 KP_6 */
> - 0x4f, /* 142 KP_1 */
> - 0x50, /* 143 KP_2 */
> - 0x51, /* 144 KP_3 */
> - 0x52, /* 145 KP_0 */
> - 0x53, /* 146 KP_. */
> - 0x47, /* 147 KP_HOME */
> - 0x48, /* 148 KP_UP */
> - 0x49, /* 149 KP_PgUp */
> - 0x4b, /* 150 KP_Left */
> - 0x4c, /* 151 KP_ */
> - 0x4d, /* 152 KP_Right */
> - 0x4f, /* 153 KP_End */
> - 0x50, /* 154 KP_Down */
> - 0x51, /* 155 KP_PgDn */
> - 0x52, /* 156 KP_Ins */
> - 0x53, /* 157 KP_Del */
> - 0x0, /* 158 */
> - 0x0, /* 159 */
> - 0x0, /* 160 */
> - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
> - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
> - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
> - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
> - 0x0, /* 201 */
> - 0x0, /* 202 */
> - 0x0, /* 203 */
> - 0x0, /* 204 */
> - 0x0, /* 205 */
> - 0x0, /* 206 */
> - 0x0, /* 207 */
> - 0x70, /* 208 Hiragana_Katakana */
> - 0x0, /* 209 */
> - 0x0, /* 210 */
> - 0x73, /* 211 backslash */
> -};
> -
> static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
> {
> int keycode;
> @@ -216,7 +134,7 @@ static uint8_t sdl_keyevent_to_keycode(c
> keycode -= 8; /* just an offset */
> } else if (keycode < 212) {
> /* use conversion table */
> - keycode = x_keycode_to_pc_keycode[keycode - 97];
> + keycode = _translate_keycode(keycode - 97);
> } else {
> keycode = 0;
> }
> --- ../qemu_trunk.orig/x_keymap.c 1970-01-01 01:00:00.000000000 +0100
> +++ x_keymap.c 2007-01-04 19:25:16.000000000 +0100
> @@ -0,0 +1,110 @@
> +/*
> + * QEMU SDL display driver
> + *
> + * Copyright (c) 2003 Fabrice Bellard
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a copy
> + * of this software and associated documentation files (the "Software"), to deal
> + * in the Software without restriction, including without limitation the rights
> + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> + * copies of the Software, and to permit persons to whom the Software is
> + * furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice shall be included in
> + * all copies or substantial portions of the Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
> + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
> + * THE SOFTWARE.
> + */
> +#include "vl.h"
> +static const uint8_t x_keycode_to_pc_keycode[115] = {
> + 0xc7, /* 97 Home */
> + 0xc8, /* 98 Up */
> + 0xc9, /* 99 PgUp */
> + 0xcb, /* 100 Left */
> + 0x4c, /* 101 KP-5 */
> + 0xcd, /* 102 Right */
> + 0xcf, /* 103 End */
> + 0xd0, /* 104 Down */
> + 0xd1, /* 105 PgDn */
> + 0xd2, /* 106 Ins */
> + 0xd3, /* 107 Del */
> + 0x9c, /* 108 Enter */
> + 0x9d, /* 109 Ctrl-R */
> + 0x0, /* 110 Pause */
> + 0xb7, /* 111 Print */
> + 0xb5, /* 112 Divide */
> + 0xb8, /* 113 Alt-R */
> + 0xc6, /* 114 Break */
> + 0x0, /* 115 */
> + 0x0, /* 116 */
> + 0x0, /* 117 */
> + 0x0, /* 118 */
> + 0x0, /* 119 */
> + 0x0, /* 120 */
> + 0x0, /* 121 */
> + 0x0, /* 122 */
> + 0x0, /* 123 */
> + 0x0, /* 124 */
> + 0x0, /* 125 */
> + 0x0, /* 126 */
> + 0x0, /* 127 */
> + 0x0, /* 128 */
> + 0x79, /* 129 Henkan */
> + 0x0, /* 130 */
> + 0x7b, /* 131 Muhenkan */
> + 0x0, /* 132 */
> + 0x7d, /* 133 Yen */
> + 0x0, /* 134 */
> + 0x0, /* 135 */
> + 0x47, /* 136 KP_7 */
> + 0x48, /* 137 KP_8 */
> + 0x49, /* 138 KP_9 */
> + 0x4b, /* 139 KP_4 */
> + 0x4c, /* 140 KP_5 */
> + 0x4d, /* 141 KP_6 */
> + 0x4f, /* 142 KP_1 */
> + 0x50, /* 143 KP_2 */
> + 0x51, /* 144 KP_3 */
> + 0x52, /* 145 KP_0 */
> + 0x53, /* 146 KP_. */
> + 0x47, /* 147 KP_HOME */
> + 0x48, /* 148 KP_UP */
> + 0x49, /* 149 KP_PgUp */
> + 0x4b, /* 150 KP_Left */
> + 0x4c, /* 151 KP_ */
> + 0x4d, /* 152 KP_Right */
> + 0x4f, /* 153 KP_End */
> + 0x50, /* 154 KP_Down */
> + 0x51, /* 155 KP_PgDn */
> + 0x52, /* 156 KP_Ins */
> + 0x53, /* 157 KP_Del */
> + 0x0, /* 158 */
> + 0x0, /* 159 */
> + 0x0, /* 160 */
> + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 170 */
> + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 180 */
> + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 190 */
> + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, /* 200 */
> + 0x0, /* 201 */
> + 0x0, /* 202 */
> + 0x0, /* 203 */
> + 0x0, /* 204 */
> + 0x0, /* 205 */
> + 0x0, /* 206 */
> + 0x0, /* 207 */
> + 0x70, /* 208 Hiragana_Katakana */
> + 0x0, /* 209 */
> + 0x0, /* 210 */
> + 0x73, /* 211 backslash */
> +};
> +
> +uint8_t _translate_keycode(const int key)
> +{
> + return x_keycode_to_pc_keycode[key];
> +}
> --- ../qemu_trunk.orig/Makefile.target 2007-01-04 14:38:58.000000000 +0100
> +++ Makefile.target 2007-01-04 19:39:21.000000000 +0100
> @@ -397,6 +397,9 @@ ifdef CONFIG_COREAUDIO
> COCOA_LIBS+=-framework CoreAudio
> endif
> endif
> +ifdef CONFIG_SDL
> +VL_OBJS+=x_keymap.o
> +endif
> ifdef CONFIG_SLIRP
> CPPFLAGS+=-I$(SRC_PATH)/slirp
> SLIRP_OBJS=cksum.o if.o ip_icmp.o ip_input.o ip_output.o \
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [patch] factor out commonly used scancode translation table
2007-01-04 17:29 [Qemu-devel] [patch] factor out commonly used scancode translation table Bernhard Fischer
2007-01-04 17:52 ` Jonathan Phenix
@ 2007-01-14 22:58 ` Rob Landley
2007-01-16 20:59 ` Bernhard Fischer
1 sibling, 1 reply; 8+ messages in thread
From: Rob Landley @ 2007-01-14 22:58 UTC (permalink / raw)
To: qemu-devel; +Cc: Bernhard Fischer
On Thursday 04 January 2007 12:29 pm, Bernhard Fischer wrote:
> Hi,
>
> The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
> an x_keycode.c. This struct is also used by the GGI backend (that is not
> yet merged ¹).
Whatever happened to ggi? All I remember is that something over 5 years ago
they managed to piss off Linus, and then their website went down.
I take it the project continues to lurch forward? Or am I thinking of a
different project?
Rob
--
"Perfection is reached, not when there is no longer anything to add, but
when there is no longer anything to take away." - Antoine de Saint-Exupery
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [patch] factor out commonly used scancode translation table
2007-01-14 22:58 ` Rob Landley
@ 2007-01-16 20:59 ` Bernhard Fischer
0 siblings, 0 replies; 8+ messages in thread
From: Bernhard Fischer @ 2007-01-16 20:59 UTC (permalink / raw)
To: Rob Landley; +Cc: qemu-devel, Bernhard Fischer
On Sun, Jan 14, 2007 at 05:58:52PM -0500, Rob Landley wrote:
>On Thursday 04 January 2007 12:29 pm, Bernhard Fischer wrote:
>> Hi,
>>
>> The attached patch moves the x_keycode_to_pc_keycode LUT from sdl.c into
>> an x_keycode.c. This struct is also used by the GGI backend (that is not
>> yet merged ¹).
>
>Whatever happened to ggi? All I remember is that something over 5 years ago
>they managed to piss off Linus, and then their website went down.
>
>I take it the project continues to lurch forward? Or am I thinking of a
>different project?
GGI is actively maintained and developed. It works fine for me.
In recent years it added the possibility to use cocoa and quartz,
directx was much improved, the fbdev, X11, etc targets work fine too.
Last time i tried, even the directfb display was fine. The more uncommon
targets like target-multi, the tile-target, several palette targets,
target-tcp, target-vnc etc do work just fine.
There is a list of available display- and input-targets here:
http://www.ggi-project.org/targets.html
If the www server http://www.ggi-project.org/ is down (which doesn't
happen too often) then you can as well use
http://www.ibiblio.org/ggicore/
If you have additional questions then let me direct you to
the ggi list or irc channel..
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2007-01-16 20:58 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-04 17:29 [Qemu-devel] [patch] factor out commonly used scancode translation table Bernhard Fischer
2007-01-04 17:52 ` Jonathan Phenix
2007-01-04 18:01 ` Bernhard Fischer
2007-01-04 18:10 ` Thiemo Seufer
2007-01-04 18:52 ` Bernhard Fischer
2007-01-04 19:06 ` Anthony Liguori
2007-01-14 22:58 ` Rob Landley
2007-01-16 20:59 ` Bernhard Fischer
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).