X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Fgp2x%2Fplat.c;h=4d35cbd85a83688f58cd5088a1901bfcbf97dffc;hb=0270424fac34be5b63fb37caaaca60e378365d81;hp=503e1496e1cea378b45d1dbb9eb2fbdadec8b1d7;hpb=9a1f192a146e9b9752ec1a760745b1261fe9bdec;p=picodrive.git diff --git a/platform/gp2x/plat.c b/platform/gp2x/plat.c index 503e149..4d35cbd 100644 --- a/platform/gp2x/plat.c +++ b/platform/gp2x/plat.c @@ -24,7 +24,7 @@ void *gp2x_screens[4]; void (*gp2x_video_flip)(void); void (*gp2x_video_flip2)(void); -void (*gp2x_video_changemode_ll)(int bpp); +void (*gp2x_video_changemode_ll)(int bpp, int is_pal); void (*gp2x_video_setpalette)(int *pal, int len); void (*gp2x_video_RGB_setscaling)(int ln_offs, int W, int H); void (*gp2x_video_wait_vsync)(void); @@ -71,9 +71,39 @@ static struct in_default_bind in_gp2x_defbinds[] = { 0, 0, 0 } }; -void gp2x_video_changemode(int bpp) +static const struct menu_keymap key_pbtn_map[] = { - gp2x_video_changemode_ll(bpp); + { 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_pdata gp2x_evdev_pdata = { + .defbinds = in_evdev_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); gp2x_current_bpp = bpp < 0 ? -bpp : bpp; } @@ -131,9 +161,8 @@ void plat_video_menu_enter(int is_rom_loaded) gp2x_video_flip2(); // switch to 16bpp - gp2x_video_changemode_ll(16); + gp2x_video_changemode_ll(16, 0); gp2x_video_RGB_setscaling(0, 320, 240); -printf("menu_enter\n"); } void plat_video_menu_begin(void) @@ -184,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();