{ 0, 0, 0 }\r
};\r
\r
+static const struct menu_keymap key_pbtn_map[] =\r
+{\r
+ { KEY_UP, PBTN_UP },\r
+ { KEY_DOWN, PBTN_DOWN },\r
+ { KEY_LEFT, PBTN_LEFT },\r
+ { KEY_RIGHT, PBTN_RIGHT },\r
+ /* Pandora */\r
+ { KEY_END, PBTN_MOK },\r
+ { KEY_PAGEDOWN, PBTN_MBACK },\r
+ { KEY_HOME, PBTN_MA2 },\r
+ { KEY_PAGEUP, PBTN_MA3 },\r
+ { KEY_LEFTCTRL, PBTN_MENU },\r
+ { KEY_RIGHTSHIFT, PBTN_L },\r
+ { KEY_RIGHTCTRL, PBTN_R },\r
+ /* "normal" keyboards */\r
+ { KEY_ENTER, PBTN_MOK },\r
+ { KEY_ESC, PBTN_MBACK },\r
+ { KEY_SEMICOLON, PBTN_MA2 },\r
+ { KEY_APOSTROPHE, PBTN_MA3 },\r
+ { KEY_BACKSLASH, PBTN_MENU },\r
+ { KEY_LEFTBRACE, PBTN_L },\r
+ { KEY_RIGHTBRACE, PBTN_R },\r
+};\r
+\r
+static const struct in_pdata pandora_evdev_pdata = {\r
+ .defbinds = in_evdev_defbinds,\r
+ .key_map = key_pbtn_map,\r
+ .kmap_size = sizeof(key_pbtn_map) / sizeof(key_pbtn_map[0]),\r
+};\r
+\r
void pemu_prep_defconfig(void)\r
{\r
defaultConfig.EmuOpt |= EOPT_VSYNC|EOPT_16BPP;\r
currentConfig.CPUclock = plat_target_cpu_clock_get();\r
}\r
\r
-static void osd_text(int x, int y, const char *text)\r
-{\r
- int len = strlen(text)*8;\r
- int i, h;\r
-\r
- len++;\r
- if (x + len > g_screen_width)\r
- len = g_screen_width - x;\r
-\r
- for (h = 0; h < 8; h++) {\r
- unsigned short *p;\r
- p = (unsigned short *)g_screen_ptr + x + g_screen_width*(y + h);\r
- for (i = len; i > 0; i--, p++)\r
- *p = (*p>>2) & 0x39e7;\r
- }\r
- emu_text_out16(x, y, text);\r
-}\r
-\r
static void draw_cd_leds(void)\r
{\r
int old_reg;\r
void pemu_finalize_frame(const char *fps, const char *notice)\r
{\r
if (notice && notice[0])\r
- osd_text(2, g_osd_y, notice);\r
+ emu_osd_text16(2, g_osd_y, notice);\r
if (fps && fps[0] && (currentConfig.EmuOpt & EOPT_SHOW_FPS))\r
- osd_text(g_osd_fps_x, g_osd_y, fps);\r
+ emu_osd_text16(g_osd_fps_x, g_osd_y, fps);\r
if ((PicoAHW & PAHW_MCD) && (currentConfig.EmuOpt & EOPT_EN_CD_LEDS))\r
draw_cd_leds();\r
}\r
// default ROM path\r
strcpy(rom_fname_loaded, "/media");\r
\r
- in_evdev_init(in_evdev_defbinds);\r
+ in_evdev_init(&pandora_evdev_pdata);\r
in_probe();\r
plat_target_setup_input();\r
\r