mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 07:17:45 -04:00
Make the platform code provide the key mapping
notaz: fix pandora build
This commit is contained in:
parent
eb7ce29e8d
commit
4e3551a5f6
4 changed files with 100 additions and 5 deletions
|
@ -19,7 +19,7 @@
|
|||
|
||||
static void *shadow_fb;
|
||||
|
||||
static const struct in_default_bind in_sdl_defbinds[] = {
|
||||
const struct in_default_bind in_sdl_defbinds[] __attribute__((weak)) = {
|
||||
{ SDLK_UP, IN_BINDTYPE_PLAYER12, GBTN_UP },
|
||||
{ SDLK_DOWN, IN_BINDTYPE_PLAYER12, GBTN_DOWN },
|
||||
{ SDLK_LEFT, IN_BINDTYPE_PLAYER12, GBTN_LEFT },
|
||||
|
@ -45,6 +45,41 @@ static const struct in_default_bind in_sdl_defbinds[] = {
|
|||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
const struct menu_keymap in_sdl_key_map[] __attribute__((weak)) =
|
||||
{
|
||||
{ SDLK_UP, PBTN_UP },
|
||||
{ SDLK_DOWN, PBTN_DOWN },
|
||||
{ SDLK_LEFT, PBTN_LEFT },
|
||||
{ SDLK_RIGHT, PBTN_RIGHT },
|
||||
{ SDLK_RETURN, PBTN_MOK },
|
||||
{ SDLK_ESCAPE, PBTN_MBACK },
|
||||
{ SDLK_SEMICOLON, PBTN_MA2 },
|
||||
{ SDLK_QUOTE, PBTN_MA3 },
|
||||
{ SDLK_LEFTBRACKET, PBTN_L },
|
||||
{ SDLK_RIGHTBRACKET, PBTN_R },
|
||||
};
|
||||
|
||||
const struct menu_keymap in_sdl_joy_map[] __attribute__((weak)) =
|
||||
{
|
||||
{ SDLK_UP, PBTN_UP },
|
||||
{ SDLK_DOWN, PBTN_DOWN },
|
||||
{ SDLK_LEFT, PBTN_LEFT },
|
||||
{ SDLK_RIGHT, PBTN_RIGHT },
|
||||
/* joystick */
|
||||
{ SDLK_WORLD_0, PBTN_MOK },
|
||||
{ SDLK_WORLD_1, PBTN_MBACK },
|
||||
{ SDLK_WORLD_2, PBTN_MA2 },
|
||||
{ SDLK_WORLD_3, PBTN_MA3 },
|
||||
};
|
||||
|
||||
static const struct in_pdata in_sdl_platform_data = {
|
||||
.defbinds = in_sdl_defbinds,
|
||||
.key_map = in_sdl_key_map,
|
||||
.kmap_size = sizeof(in_sdl_key_map) / sizeof(in_sdl_key_map[0]),
|
||||
.joy_map = in_sdl_joy_map,
|
||||
.jmap_size = sizeof(in_sdl_joy_map) / sizeof(in_sdl_joy_map[0]),
|
||||
};
|
||||
|
||||
/* YUV stuff */
|
||||
static int yuv_ry[32], yuv_gy[32], yuv_by[32];
|
||||
static unsigned char yuv_u[32 * 2], yuv_v[32 * 2];
|
||||
|
@ -241,7 +276,7 @@ void plat_init(void)
|
|||
g_screen_height = 240;
|
||||
g_screen_ptr = shadow_fb;
|
||||
|
||||
in_sdl_init(in_sdl_defbinds, plat_sdl_event_handler);
|
||||
in_sdl_init(&in_sdl_platform_data, plat_sdl_event_handler);
|
||||
in_probe();
|
||||
|
||||
bgr_to_uyvy_init();
|
||||
|
|
|
@ -71,6 +71,36 @@ static struct in_default_bind in_gp2x_defbinds[] =
|
|||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
static const struct menu_keymap key_pbtn_map[] =
|
||||
{
|
||||
{ KEY_UP, PBTN_UP },
|
||||
{ KEY_DOWN, PBTN_DOWN },
|
||||
{ KEY_LEFT, PBTN_LEFT },
|
||||
{ KEY_RIGHT, PBTN_RIGHT },
|
||||
/* Caanoo */
|
||||
{ BTN_THUMB2, PBTN_MOK },
|
||||
{ BTN_THUMB, PBTN_MBACK },
|
||||
{ BTN_TRIGGER, PBTN_MA2 },
|
||||
{ BTN_TOP, PBTN_MA3 },
|
||||
{ BTN_BASE, PBTN_MENU },
|
||||
{ BTN_TOP2, PBTN_L },
|
||||
{ BTN_PINKIE, PBTN_R },
|
||||
/* "normal" keyboards */
|
||||
{ KEY_ENTER, PBTN_MOK },
|
||||
{ KEY_ESC, PBTN_MBACK },
|
||||
{ KEY_SEMICOLON, PBTN_MA2 },
|
||||
{ KEY_APOSTROPHE, PBTN_MA3 },
|
||||
{ KEY_BACKSLASH, PBTN_MENU },
|
||||
{ KEY_LEFTBRACE, PBTN_L },
|
||||
{ KEY_RIGHTBRACE, PBTN_R },
|
||||
};
|
||||
|
||||
static const struct in_evdev_pdata gp2x_evdev_pdata = {
|
||||
.defbinds = in_gp2x_defbinds,
|
||||
.key_map = key_pbtn_map,
|
||||
.kmap_size = sizeof(key_pbtn_map) / sizeof(key_pbtn_map[0]),
|
||||
};
|
||||
|
||||
void gp2x_video_changemode(int bpp, int is_pal)
|
||||
{
|
||||
gp2x_video_changemode_ll(bpp, is_pal);
|
||||
|
@ -183,7 +213,7 @@ void plat_init(void)
|
|||
flip_after_sync = 1;
|
||||
gp2x_menu_init();
|
||||
|
||||
in_evdev_init(in_evdev_defbinds);
|
||||
in_evdev_init(&gp2x_evdev_pdata);
|
||||
in_gp2x_init(in_gp2x_defbinds);
|
||||
in_probe();
|
||||
plat_target_setup_input();
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit c52e6628cdf9c53e9143e903ab793bf59987a0ea
|
||||
Subproject commit c19e28f62660cdaed26698234cff9c084517b34c
|
|
@ -93,6 +93,36 @@ static struct in_default_bind in_evdev_defbinds[] =
|
|||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
static const struct menu_keymap key_pbtn_map[] =
|
||||
{
|
||||
{ KEY_UP, PBTN_UP },
|
||||
{ KEY_DOWN, PBTN_DOWN },
|
||||
{ KEY_LEFT, PBTN_LEFT },
|
||||
{ KEY_RIGHT, PBTN_RIGHT },
|
||||
/* Pandora */
|
||||
{ KEY_END, PBTN_MOK },
|
||||
{ KEY_PAGEDOWN, PBTN_MBACK },
|
||||
{ KEY_HOME, PBTN_MA2 },
|
||||
{ KEY_PAGEUP, PBTN_MA3 },
|
||||
{ KEY_LEFTCTRL, PBTN_MENU },
|
||||
{ KEY_RIGHTSHIFT, PBTN_L },
|
||||
{ KEY_RIGHTCTRL, PBTN_R },
|
||||
/* "normal" keyboards */
|
||||
{ KEY_ENTER, PBTN_MOK },
|
||||
{ KEY_ESC, PBTN_MBACK },
|
||||
{ KEY_SEMICOLON, PBTN_MA2 },
|
||||
{ KEY_APOSTROPHE, PBTN_MA3 },
|
||||
{ KEY_BACKSLASH, PBTN_MENU },
|
||||
{ KEY_LEFTBRACE, PBTN_L },
|
||||
{ KEY_RIGHTBRACE, PBTN_R },
|
||||
};
|
||||
|
||||
static const struct in_pdata pandora_evdev_pdata = {
|
||||
.defbinds = in_evdev_defbinds,
|
||||
.key_map = key_pbtn_map,
|
||||
.kmap_size = sizeof(key_pbtn_map) / sizeof(key_pbtn_map[0]),
|
||||
};
|
||||
|
||||
void pemu_prep_defconfig(void)
|
||||
{
|
||||
defaultConfig.EmuOpt |= EOPT_VSYNC|EOPT_16BPP;
|
||||
|
@ -500,7 +530,7 @@ void plat_init(void)
|
|||
// default ROM path
|
||||
strcpy(rom_fname_loaded, "/media");
|
||||
|
||||
in_evdev_init(in_evdev_defbinds);
|
||||
in_evdev_init(&pandora_evdev_pdata);
|
||||
in_probe();
|
||||
plat_target_setup_input();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue