aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2014-12-09 23:06:47 +0200
committernotaz2014-12-20 02:57:25 +0200
commitbcfc48e326fd502e77654330ce4b902e7db8c2dc (patch)
treef5712e1f0a4d422ef9026a91f00aaba06c9c93f2
parent55e5626b063b3fbfc29576c2ee6b826d4f22d3d2 (diff)
downloadpcsx_rearmed-bcfc48e326fd502e77654330ce4b902e7db8c2dc.tar.gz
pcsx_rearmed-bcfc48e326fd502e77654330ce4b902e7db8c2dc.tar.bz2
pcsx_rearmed-bcfc48e326fd502e77654330ce4b902e7db8c2dc.zip
frontend: update libpicofe
-rw-r--r--frontend/in_tsbutton.c6
m---------frontend/libpicofe0
-rw-r--r--frontend/main.c6
-rw-r--r--frontend/plat_pandora.c32
-rw-r--r--frontend/plat_pollux.c32
-rw-r--r--frontend/plat_sdl.c37
6 files changed, 106 insertions, 7 deletions
diff --git a/frontend/in_tsbutton.c b/frontend/in_tsbutton.c
index aee6852..b3e4158 100644
--- a/frontend/in_tsbutton.c
+++ b/frontend/in_tsbutton.c
@@ -30,7 +30,7 @@ static const char * const in_tsbutton_keys[IN_TSBUTTON_COUNT] = {
"TS1", "TS2", "TS3", "TS4",
};
-static void in_tsbutton_probe(void)
+static void in_tsbutton_probe(const in_drv_t *drv)
{
struct tsdev *dev = tsdev;
if (dev == NULL) {
@@ -43,7 +43,7 @@ static void in_tsbutton_probe(void)
}
static const char * const *
-in_tsbutton_get_key_names(int *count)
+in_tsbutton_get_key_names(const in_drv_t *drv, int *count)
{
*count = IN_TSBUTTON_COUNT;
return in_tsbutton_keys;
@@ -133,6 +133,6 @@ static const in_drv_t in_tsbutton_drv = {
void in_tsbutton_init(void)
{
tsbutton_down_id = last_tsbutton_id = -1;
- in_register_driver(&in_tsbutton_drv, NULL);
+ in_register_driver(&in_tsbutton_drv, NULL, NULL);
}
diff --git a/frontend/libpicofe b/frontend/libpicofe
-Subproject da0cc55643353ab15725194be64a3d8460fe48b
+Subproject d1453cf7e6d5d6758cc5d72c6d3af7d37156bf7
diff --git a/frontend/main.c b/frontend/main.c
index 2ef5f52..1caec4b 100644
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -251,7 +251,11 @@ do_state_slot:
}
case SACTION_VOLUME_UP:
case SACTION_VOLUME_DOWN:
- plat_target_step_volume(emu_action == SACTION_VOLUME_UP);
+ {
+ static int volume;
+ plat_target_step_volume(&volume,
+ emu_action == SACTION_VOLUME_UP ? 1 : -1);
+ }
return;
case SACTION_MINIMIZE:
if (GPU_close != NULL)
diff --git a/frontend/plat_pandora.c b/frontend/plat_pandora.c
index d44513c..3202c1d 100644
--- a/frontend/plat_pandora.c
+++ b/frontend/plat_pandora.c
@@ -45,12 +45,42 @@ static const 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]),
+};
+
int plat_init(void)
{
plat_omap_init();
plat_target_init();
- in_evdev_init(in_evdev_defbinds);
+ in_evdev_init(&pandora_evdev_pdata);
in_probe();
plat_target_setup_input();
diff --git a/frontend/plat_pollux.c b/frontend/plat_pollux.c
index 252feba..cb7afef 100644
--- a/frontend/plat_pollux.c
+++ b/frontend/plat_pollux.c
@@ -84,6 +84,36 @@ static const 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 },
+ /* 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]),
+};
+
static void *fb_flip(void)
{
memregl[0x406C>>2] = memregl[0x446C>>2] = fb_paddrs[fb_work_buf];
@@ -533,7 +563,7 @@ void plat_init(void)
DMA_REG(0x0c) = 0x20000; // pending IRQ clear
in_tsbutton_init();
- in_evdev_init(in_evdev_defbinds);
+ in_evdev_init(&gp2x_evdev_pdata);
if (gp2x_dev_id == GP2X_DEV_CAANOO)
caanoo_init();
else
diff --git a/frontend/plat_sdl.c b/frontend/plat_sdl.c
index 247437e..4e77dc3 100644
--- a/frontend/plat_sdl.c
+++ b/frontend/plat_sdl.c
@@ -53,6 +53,41 @@ static const struct in_default_bind in_sdl_defbinds[] = {
{ 0, 0, 0 }
};
+const struct menu_keymap in_sdl_key_map[] =
+{
+ { 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[] =
+{
+ { 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]),
+};
+
static int psx_w, psx_h;
static void *shadow_fb, *menubg_img;
static int in_menu;
@@ -122,7 +157,7 @@ void plat_init(void)
exit(1);
}
- in_sdl_init(in_sdl_defbinds, plat_sdl_event_handler);
+ in_sdl_init(&in_sdl_platform_data, plat_sdl_event_handler);
in_probe();
pl_rearmed_cbs.only_16bpp = 1;
pl_rearmed_cbs.pl_get_layer_pos = get_layer_pos;