Solve keyboard non working in gles and sdl project
This commit is contained in:
parent
ea6b2f11f0
commit
1472101b95
4 changed files with 24 additions and 11 deletions
2
Makefile
2
Makefile
|
@ -17,6 +17,8 @@ else ifeq ($(PLATFORM),rpi1)
|
|||
HAVE_DISPMANX = 1
|
||||
DEFS += -DRASPBERRY
|
||||
else ifeq ($(PLATFORM),generic-sdl)
|
||||
# On Raspberry Pi uncomment below line or remove ARMV6T2 define.
|
||||
#CPU_FLAGS= -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard
|
||||
MORE_CFLAGS += -DARMV6T2
|
||||
HAVE_SDL_DISPLAY = 1
|
||||
else ifeq ($(PLATFORM),gles)
|
||||
|
|
|
@ -6,6 +6,13 @@
|
|||
* (c) 1995 Bernd Schmidt
|
||||
*/
|
||||
|
||||
#define KEYCODE_UNK 0
|
||||
#define KEYCODE_X11 1
|
||||
#define KEYCODE_FBCON 2
|
||||
|
||||
extern char keyboard_type;
|
||||
|
||||
|
||||
extern void init_keyboard(void);
|
||||
|
||||
/* First, two dummies */
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
#include <SDL.h>
|
||||
|
||||
|
||||
char keyboard_type = 0;
|
||||
|
||||
static struct uae_input_device_kbr_default keytrans_amiga_x11[] = {
|
||||
|
||||
{ 9 , INPUTEVENT_KEY_ESC},
|
||||
|
@ -346,14 +348,17 @@ void keyboard_settrans (void)
|
|||
if (strcmp(vid_drv_name, "x11") == 0)
|
||||
{
|
||||
printf("Will use keycode from x11 mapping.\n");
|
||||
keyboard_type = KEYCODE_X11;
|
||||
inputdevice_setkeytranslation (keytrans_x11, kbmaps);
|
||||
} else if (strcmp(vid_drv_name, "fbcon") == 0)
|
||||
{
|
||||
printf("Will use keycode from fbcon mapping.\n");
|
||||
keyboard_type = KEYCODE_FBCON;
|
||||
inputdevice_setkeytranslation (keytrans_fbcon, kbmaps);
|
||||
} else
|
||||
{
|
||||
printf("Unknown keycode to use, will use keysym\n");
|
||||
keyboard_type = KEYCODE_UNK;
|
||||
inputdevice_setkeytranslation (keytrans, kbmaps);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -921,11 +921,11 @@ int handle_msgpump (void)
|
|||
inputdevice_do_keyboard(AK_LSH, 0);
|
||||
inputdevice_do_keyboard(keycode, 1);
|
||||
} else {
|
||||
#ifdef RASPBERRY
|
||||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 1);
|
||||
#else
|
||||
if (keyboard_type == KEYCODE_UNK)
|
||||
inputdevice_translatekeycode(0, rEvent.key.keysym.sym, 1);
|
||||
#endif
|
||||
else
|
||||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 1);
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -970,11 +970,10 @@ int handle_msgpump (void)
|
|||
if(modifier == KMOD_SHIFT)
|
||||
inputdevice_do_keyboard(AK_LSH, 0);
|
||||
} else {
|
||||
#ifdef RASPBERRY
|
||||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 0);
|
||||
#else
|
||||
if (keyboard_type == KEYCODE_UNK)
|
||||
inputdevice_translatekeycode(0, rEvent.key.keysym.sym, 0);
|
||||
#endif
|
||||
else
|
||||
inputdevice_translatekeycode(0, rEvent.key.keysym.scancode, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue