X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fplugin_lib.c;h=ac911cc7ef417c465257cf7654c54422c3cd1663;hp=e93c12f949c368d6bee5049136524ec420058021;hb=1b0c513996d57548fc5df8726e21a68e5ace4f99;hpb=24de2dd4dbdd50e44c91c40ebbc7d59ee1c0ac9b diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index e93c12f9..ac911cc7 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -32,7 +32,9 @@ int in_type1, in_type2; int in_a1[2] = { 127, 127 }, in_a2[2] = { 127, 127 }; +int in_adev[2] = { -1, -1 }, in_adev_axis[2][2] = {{ 0, 1 }, { 0, 1 }}; int in_keystate, in_state_gun; +int in_enable_vibration; int pl_flip_cnt; void *tsdev; void *pl_vout_buf; @@ -221,15 +223,38 @@ void *pl_prepare_screenshot(int *w, int *h, int *bpp) #endif } +#ifndef MAEMO +static void update_analogs(void) +{ + int *nubp[2] = { in_a1, in_a2 }; + int i, a, v, ret; + + for (i = 0; i < 2; i++) + { + if (in_adev[i] < 0) + continue; + + for (a = 0; a < 2; a++) { + nubp[i][a] = 127; + + ret = in_update_analog(in_adev[i], in_adev_axis[i][a], &v); + if (ret == 0) { + v = v / (IN_ABS_RANGE / 128) + 127; + nubp[i][a] = v < 0 ? 0 : v; + } + } + } + //printf("%4d %4d %4d %4d\n", in_a1[0], in_a1[1], in_a2[0], in_a2[1]); +} + static void update_input(void) { -#ifndef MAEMO int actions[IN_BINDTYPE_COUNT] = { 0, }; unsigned int emu_act; in_update(actions); if (in_type1 == PSE_PAD_TYPE_ANALOGPAD) - in_update_analogs(); + update_analogs(); emu_act = actions[IN_BINDTYPE_EMU]; in_state_gun = (emu_act & SACTION_GUN_MASK) >> SACTION_GUN_TRIGGER; @@ -243,13 +268,17 @@ static void update_input(void) emu_set_action(emu_act); in_keystate = actions[IN_BINDTYPE_PLAYER12]; -#endif #ifdef X11 extern int x11_update_keys(unsigned int *action); in_keystate |= x11_update_keys(&emu_act); emu_set_action(emu_act); #endif } +#else /* MAEMO */ +static void update_input(void) +{ +} +#endif void pl_update_gun(int *xn, int *xres, int *y, int *in) { @@ -476,6 +505,7 @@ void pl_start_watchdog(void) void pl_init(void) { extern unsigned int hSyncCount; // from psxcounters + extern unsigned int frame_counter; pl_vout_w = pl_vout_h = 256; pl_vout_bpp = 16; @@ -483,4 +513,5 @@ void pl_init(void) tsdev = pl_gun_ts_init(); pl_rearmed_cbs.gpu_hcnt = &hSyncCount; + pl_rearmed_cbs.gpu_frame_count = &frame_counter; }