X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfinput%2Fxkb.c;fp=plugins%2Fdfinput%2Fxkb.c;h=0000000000000000000000000000000000000000;hp=bfadef10f1e6a3008d5e735de0d74dc7042ad123;hb=f2bd6ff85d23f3e421b2f30f86080d71d4e95046;hpb=80c2304e511b5463b5046f7ff1c49103c786755f diff --git a/plugins/dfinput/xkb.c b/plugins/dfinput/xkb.c deleted file mode 100644 index bfadef10..00000000 --- a/plugins/dfinput/xkb.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2009, Wei Mingzhi . - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include "pad.h" - -static Atom wmprotocols, wmdelwindow; - -void InitKeyboard() { - wmprotocols = XInternAtom(g.Disp, "WM_PROTOCOLS", 0); - wmdelwindow = XInternAtom(g.Disp, "WM_DELETE_WINDOW", 0); - - XkbSetDetectableAutoRepeat(g.Disp, 1, NULL); - - g.PadState[0].KeyStatus = 0xFFFF; - g.PadState[1].KeyStatus = 0xFFFF; -} - -void DestroyKeyboard() { - XkbSetDetectableAutoRepeat(g.Disp, 0, NULL); -} - -void CheckKeyboard() { - uint8_t i, j, found; - XEvent evt; - XClientMessageEvent *xce; - uint16_t Key; - - while (XPending(g.Disp)) { - XNextEvent(g.Disp, &evt); - switch (evt.type) { - case KeyPress: - Key = XLookupKeysym((XKeyEvent *)&evt, 0); - found = 0; - for (i = 0; i < 2; i++) { - for (j = 0; j < DKEY_TOTAL; j++) { - if (g.cfg.PadDef[i].KeyDef[j].Key == Key) { - found = 1; - g.PadState[i].KeyStatus &= ~(1 << j); - } - } - } - if (!found && !AnalogKeyPressed(Key)) { - g.KeyLeftOver = Key; - } - return; - - case KeyRelease: - Key = XLookupKeysym((XKeyEvent *)&evt, 0); - found = 0; - for (i = 0; i < 2; i++) { - for (j = 0; j < DKEY_TOTAL; j++) { - if (g.cfg.PadDef[i].KeyDef[j].Key == Key) { - found = 1; - g.PadState[i].KeyStatus |= (1 << j); - } - } - } - if (!found && !AnalogKeyReleased(Key)) { - g.KeyLeftOver = ((long)Key | 0x40000000); - } - break; - - case ClientMessage: - xce = (XClientMessageEvent *)&evt; - if (xce->message_type == wmprotocols && (Atom)xce->data.l[0] == wmdelwindow) { - // Fake an ESC key if user clicked the close button on window - g.KeyLeftOver = XK_Escape; - return; - } - break; - } - } -}