/* LilyPad - Pad plugin for PS2 Emulator * Copyright (C) 2002-2015 PCSX2 Dev Team/ChickenLiver * * PCSX2 is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free * Software Found- ation, either version 3 of the License, or (at your option) * any later version. * * PCSX2 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 PCSX2. If not, see . */ #include "Linux/KeyboardMouse.h" // actually it is even more but it is enough to distinguish different key #define MAX_KEYCODE (0xFF) LinuxKeyboard::LinuxKeyboard() : Device(LNX_KEYBOARD, KEYBOARD, L"displayName", L"instanceID", L"deviceID") { fprintf(stderr, "Create a new device YES\n"); for (int i=0; i>15); value += value&1; if (vkey == VK_CONTROL || vkey == VK_MENU || vkey == VK_SHIFT) { value = 0; } physicalControlState[vkey] = 0; } #endif // Every button released memset(physicalControlState, 0, sizeof(int)*MAX_KEYCODE); return 1; } int LinuxKeyboard::Update() { keyEvent event; int status = 0; while (R_GetQueuedKeyEvent(&event)) { switch (event.evt) { case KeyPress: fprintf(stderr, "key pressed %x\n", event.key); physicalControlState[MAX_KEYCODE & event.key] = FULLY_DOWN; status = 1; break; case KeyRelease: fprintf(stderr, "key released %x\n", event.key); physicalControlState[MAX_KEYCODE & event.key] = 0; status = 1; break; default: fprintf(stderr, "Unsupported event %x\n", event.evt); //assert(0); break; } } return status; // XXX ???? } void EnumLnx() { dm->AddDevice(new LinuxKeyboard()); }