Solve keyboard non working in gles and sdl project

This commit is contained in:
Chips 2016-08-01 18:58:01 +02:00
parent ea6b2f11f0
commit 1472101b95
4 changed files with 24 additions and 11 deletions

View file

@ -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)

View file

@ -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 */

View file

@ -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);
}
}

View file

@ -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;
}