From: notaz Date: Mon, 6 Jun 2011 15:46:34 +0000 (+0300) Subject: frontend: support some emu actions in x11 build X-Git-Tag: r9~93 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=inline;h=4218954fcca1237c29f0ba071a4e62d80542cd7e;p=pcsx_rearmed.git frontend: support some emu actions in x11 build --- diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index c2fa1005..ee0e0868 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -171,8 +171,9 @@ static void update_input(void) in_keystate = actions[IN_BINDTYPE_PLAYER12]; #ifdef X11 - extern int x11_update_keys(void); - in_keystate |= x11_update_keys(); + extern int x11_update_keys(unsigned int *action); + in_keystate |= x11_update_keys(&emu_act); + emu_set_action(emu_act); #endif } diff --git a/frontend/xkb.c b/frontend/xkb.c index 7d007866..88dbc561 100644 --- a/frontend/xkb.c +++ b/frontend/xkb.c @@ -44,6 +44,11 @@ static const struct { { XK_t, DKEY_R2 }, { XK_c, DKEY_SELECT }, { XK_v, DKEY_START }, + + { XK_F6, 32 + SACTION_SAVE_STATE }, + { XK_F7, 32 + SACTION_PREV_SSLOT }, + { XK_F8, 32 + SACTION_NEXT_SSLOT }, + { XK_F9, 32 + SACTION_LOAD_STATE }, }; static Atom wmprotocols, wmdelwindow; @@ -68,7 +73,7 @@ static void DestroyKeyboard(void) { XkbSetDetectableAutoRepeat(disp, 0, NULL); } -int x11_update_keys(void) { +int x11_update_keys(unsigned int *action) { uint8_t i; XEvent evt; XClientMessageEvent *xce; @@ -100,14 +105,18 @@ int x11_update_keys(void) { } } - if (psxkey >= 0) { + if (0 <= psxkey && psxkey < 32) { if (evt.type == KeyPress) keystate_x11 |= 1 << psxkey; else keystate_x11 &= ~(1 << psxkey); } - if (evt.type == KeyPress && Key == XK_Escape) - leave = 1; + if (evt.type == KeyPress) { + if (psxkey > 32) + *action = psxkey - 32; + if (Key == XK_Escape) + leave = 1; + } break; case ClientMessage: