X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fplat_pandora.c;h=3202c1d61b302b062181ac703d641a542e3eec7d;hp=2522b0b066a910cefb198dbafaa480e51c8f80c8;hb=bcfc48e326fd502e77654330ce4b902e7db8c2dc;hpb=b07c18e8645a17be916266820ae564e0d320cc1a diff --git a/frontend/plat_pandora.c b/frontend/plat_pandora.c index 2522b0b0..3202c1d6 100644 --- a/frontend/plat_pandora.c +++ b/frontend/plat_pandora.c @@ -6,37 +6,15 @@ */ #include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include "common/input.h" +#include "libpicofe/input.h" +#include "libpicofe/linux/in_evdev.h" +#include "libpicofe/plat.h" #include "plugin_lib.h" -#include "plat.h" +#include "plat_omap.h" #include "main.h" - -static const char * const pandora_gpio_keys[KEY_MAX + 1] = { - [0 ... KEY_MAX] = NULL, - [KEY_UP] = "Up", - [KEY_LEFT] = "Left", - [KEY_RIGHT] = "Right", - [KEY_DOWN] = "Down", - [KEY_HOME] = "(A)", - [KEY_PAGEDOWN] = "(X)", - [KEY_END] = "(B)", - [KEY_PAGEUP] = "(Y)", - [KEY_RIGHTSHIFT]= "(L)", - [KEY_RIGHTCTRL] = "(R)", - [KEY_LEFTALT] = "Start", - [KEY_LEFTCTRL] = "Select", - [KEY_MENU] = "Pandora", -}; +#include "menu.h" static const struct in_default_bind in_evdev_defbinds[] = { { KEY_UP, IN_BINDTYPE_PLAYER12, DKEY_UP }, @@ -53,7 +31,7 @@ static const struct in_default_bind in_evdev_defbinds[] = { { KEY_RIGHTCTRL, IN_BINDTYPE_PLAYER12, DKEY_R1 }, { KEY_Q, IN_BINDTYPE_PLAYER12, DKEY_L2 }, { KEY_P, IN_BINDTYPE_PLAYER12, DKEY_R2 }, - { KEY_TAB, IN_BINDTYPE_EMU, SACTION_MINIMIZE }, + { KEY_MENU, IN_BINDTYPE_EMU, SACTION_MINIMIZE }, { KEY_SPACE, IN_BINDTYPE_EMU, SACTION_ENTER_MENU }, { KEY_1, IN_BINDTYPE_EMU, SACTION_SAVE_STATE }, { KEY_2, IN_BINDTYPE_EMU, SACTION_LOAD_STATE }, @@ -61,55 +39,73 @@ static const struct in_default_bind in_evdev_defbinds[] = { { KEY_4, IN_BINDTYPE_EMU, SACTION_NEXT_SSLOT }, { KEY_5, IN_BINDTYPE_EMU, SACTION_TOGGLE_FSKIP }, { KEY_6, IN_BINDTYPE_EMU, SACTION_SCREENSHOT }, + { KEY_7, IN_BINDTYPE_EMU, SACTION_TOGGLE_FPS }, + { KEY_8, IN_BINDTYPE_EMU, SACTION_SWITCH_DISPMODE }, + { KEY_BACKSPACE,IN_BINDTYPE_EMU, SACTION_FAST_FORWARD }, { 0, 0, 0 } }; -int plat_pandora_init(void) +static const struct menu_keymap key_pbtn_map[] = { - in_evdev_init(in_evdev_defbinds); + { 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(&pandora_evdev_pdata); in_probe(); - in_set_config(in_name_to_id("evdev:gpio-keys"), IN_CFG_KEY_NAMES, - pandora_gpio_keys, sizeof(pandora_gpio_keys)); + plat_target_setup_input(); + in_adev[0] = in_name_to_id("evdev:nub0"); in_adev[1] = in_name_to_id("evdev:nub1"); + in_adev_is_nublike[0] = in_adev_is_nublike[1] = 1; return 0; } -static const char pnd_script_base[] = "sudo -n /usr/pandora/scripts"; - -int plat_cpu_clock_get(void) +void plat_finish(void) { - FILE *f; - int ret = 0; - f = fopen("/proc/pandora/cpu_mhz_max", "r"); - if (f) { - fscanf(f, "%d", &ret); - fclose(f); - } - return ret; + plat_omap_finish(); + plat_target_finish(); } -int plat_cpu_clock_apply(int cpu_clock) +void plat_gvideo_open(int is_pal) { - char buf[128]; + plat_target_lcdrate_set(is_pal); + plat_target_hwfilter_set(plat_target.hwfilter); + plat_target_gamma_set(g_gamma, 0); - if (cpu_clock != 0 && cpu_clock != plat_cpu_clock_get()) { - snprintf(buf, sizeof(buf), "unset DISPLAY; echo y | %s/op_cpuspeed.sh %d", - pnd_script_base, cpu_clock); - system(buf); - } - return 0; + plat_omap_gvideo_open(); } -int plat_get_bat_capacity(void) +void plat_trigger_vibrate(int is_strong) { - FILE *f; - int ret = 0; - f = fopen("/sys/class/power_supply/bq27500-0/capacity", "r"); - if (f) { - fscanf(f, "%d", &ret); - fclose(f); - } - return ret; }