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);
{ 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;
}
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)
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();