/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * 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 3 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 . * */ /* * Copyright (C) 2006-2010 - Frictional Games * * This file is part of HPL1 Engine. */ #include "hpl1/engine/input/ActionKeyboard.h" #include "hpl1/engine/input/Input.h" #include "hpl1/engine/input/Keyboard.h" #include "hpl1/engine/system/low_level_system.h" namespace hpl { ////////////////////////////////////////////////////////////////////////// // PUBLIC METHODS ////////////////////////////////////////////////////////////////////////// //----------------------------------------------------------------------- bool cActionKeyboard::IsTriggerd() { return mpInput->GetKeyboard()->KeyIsDown(_key.keycode) && ((mpInput->GetKeyboard()->GetModifier() & _key.flags) > 0 || _key.flags == 0); } //----------------------------------------------------------------------- float cActionKeyboard::GetValue() { if (IsTriggerd()) return 1.0; else return 0.0; } //----------------------------------------------------------------------- tString cActionKeyboard::GetInputName() { tString tsKey = ""; if (_key.flags & Common::KBD_SHIFT) { tsKey += "Shift "; } if (_key.flags & Common::KBD_ALT) { tsKey += "Alt "; } if (_key.flags & Common::KBD_CTRL) { tsKey += "Control "; } if (_key.flags & Common::KBD_META) { #ifdef __APPLE__ tsKey += "Command "; #else tsKey += "Windows "; #endif } switch (_key.keycode) { case Common::KEYCODE_BACKSPACE: tsKey += "BackSpace"; break; case Common::KEYCODE_TAB: tsKey += "Tab"; break; case Common::KEYCODE_CLEAR: tsKey += "Clear"; break; case Common::KEYCODE_RETURN: tsKey += "Return"; break; case Common::KEYCODE_PAUSE: tsKey += "Pause"; break; case Common::KEYCODE_ESCAPE: tsKey += "Escape"; break; case Common::KEYCODE_SPACE: tsKey += "Space"; break; case Common::KEYCODE_EXCLAIM: tsKey += "Exclaim"; break; case Common::KEYCODE_QUOTEDBL: tsKey += "DblQoute"; break; case Common::KEYCODE_HASH: tsKey += "Hash"; break; case Common::KEYCODE_DOLLAR: tsKey += "Dollar"; break; case Common::KEYCODE_AMPERSAND: tsKey += "Ampersand"; break; case Common::KEYCODE_QUOTE: tsKey += "Quote"; break; case Common::KEYCODE_LEFTPAREN: tsKey += "LeftParent"; break; case Common::KEYCODE_RIGHTPAREN: tsKey += "RightParent"; break; case Common::KEYCODE_ASTERISK: tsKey += "Asterisk"; break; case Common::KEYCODE_PLUS: tsKey += "Plus"; break; case Common::KEYCODE_COMMA: tsKey += "Comma"; break; case Common::KEYCODE_MINUS: tsKey += "Minus"; break; case Common::KEYCODE_PERIOD: tsKey += "Period"; break; case Common::KEYCODE_SLASH: tsKey += "Slash"; break; case Common::KEYCODE_0: tsKey += "0"; break; case Common::KEYCODE_1: tsKey += "1"; break; case Common::KEYCODE_2: tsKey += "2"; break; case Common::KEYCODE_3: tsKey += "3"; break; case Common::KEYCODE_4: tsKey += "4"; break; case Common::KEYCODE_5: tsKey += "5"; break; case Common::KEYCODE_6: tsKey += "6"; break; case Common::KEYCODE_7: tsKey += "7"; break; case Common::KEYCODE_8: tsKey += "8"; break; case Common::KEYCODE_9: tsKey += "9"; break; case Common::KEYCODE_COLON: tsKey += "Colon"; break; case Common::KEYCODE_SEMICOLON: tsKey += "SemiColon"; break; case Common::KEYCODE_LESS: tsKey += "Less"; break; case Common::KEYCODE_EQUALS: tsKey += "Equals"; break; case Common::KEYCODE_GREATER: tsKey += "Greater"; break; case Common::KEYCODE_QUESTION: tsKey += "Question"; break; case Common::KEYCODE_AT: tsKey += "At"; break; case Common::KEYCODE_LEFTBRACKET: tsKey += "LeftBracket"; break; case Common::KEYCODE_BACKSLASH: tsKey += "BackSlash"; break; case Common::KEYCODE_RIGHTBRACKET: tsKey += "RightBracket"; break; case Common::KEYCODE_CARET: tsKey += "Caret"; break; case Common::KEYCODE_UNDERSCORE: tsKey += "Underscore"; break; case Common::KEYCODE_BACKQUOTE: tsKey += "BackQuote"; break; case Common::KEYCODE_a: tsKey += "A"; break; case Common::KEYCODE_b: tsKey += "B"; break; case Common::KEYCODE_c: tsKey += "C"; break; case Common::KEYCODE_d: tsKey += "D"; break; case Common::KEYCODE_e: tsKey += "E"; break; case Common::KEYCODE_f: tsKey += "F"; break; case Common::KEYCODE_g: tsKey += "G"; break; case Common::KEYCODE_h: tsKey += "H"; break; case Common::KEYCODE_i: tsKey += "I"; break; case Common::KEYCODE_j: tsKey += "J"; break; case Common::KEYCODE_k: tsKey += "K"; break; case Common::KEYCODE_l: tsKey += "L"; break; case Common::KEYCODE_m: tsKey += "M"; break; case Common::KEYCODE_n: tsKey += "N"; break; case Common::KEYCODE_o: tsKey += "O"; break; case Common::KEYCODE_p: tsKey += "P"; break; case Common::KEYCODE_q: tsKey += "Q"; break; case Common::KEYCODE_r: tsKey += "R"; break; case Common::KEYCODE_s: tsKey += "S"; break; case Common::KEYCODE_t: tsKey += "T"; break; case Common::KEYCODE_u: tsKey += "U"; break; case Common::KEYCODE_v: tsKey += "V"; break; case Common::KEYCODE_w: tsKey += "W"; break; case Common::KEYCODE_x: tsKey += "X"; break; case Common::KEYCODE_y: tsKey += "Y"; break; case Common::KEYCODE_z: tsKey += "Z"; break; case Common::KEYCODE_DELETE: tsKey += "Delete"; break; case Common::KEYCODE_KP0: tsKey += "Kp0"; break; case Common::KEYCODE_KP1: tsKey += "Kp1"; break; case Common::KEYCODE_KP2: tsKey += "Kp2"; break; case Common::KEYCODE_KP3: tsKey += "Kp3"; break; case Common::KEYCODE_KP4: tsKey += "Kp4"; break; case Common::KEYCODE_KP5: tsKey += "Kp5"; break; case Common::KEYCODE_KP6: tsKey += "Kp6"; break; case Common::KEYCODE_KP7: tsKey += "Kp7"; break; case Common::KEYCODE_KP8: tsKey += "Kp8"; break; case Common::KEYCODE_KP9: tsKey += "Kp9"; break; case Common::KEYCODE_KP_PERIOD: tsKey += "Period"; break; case Common::KEYCODE_KP_DIVIDE: tsKey += "Divide"; break; case Common::KEYCODE_KP_MULTIPLY: tsKey += "Multiply"; break; case Common::KEYCODE_KP_MINUS: tsKey += "Minus"; break; case Common::KEYCODE_KP_PLUS: tsKey += "Plus"; break; case Common::KEYCODE_KP_ENTER: tsKey += "Enter"; break; case Common::KEYCODE_KP_EQUALS: tsKey += "Equals"; break; case Common::KEYCODE_UP: tsKey += "Up"; break; case Common::KEYCODE_DOWN: tsKey += "Down"; break; case Common::KEYCODE_RIGHT: tsKey += "Right"; break; case Common::KEYCODE_LEFT: tsKey += "Left"; break; case Common::KEYCODE_INSERT: tsKey += "Insert"; break; case Common::KEYCODE_HOME: tsKey += "Home"; break; case Common::KEYCODE_END: tsKey += "End"; break; case Common::KEYCODE_PAGEUP: tsKey += "PageUp"; break; case Common::KEYCODE_PAGEDOWN: tsKey += "PageDown"; break; case Common::KEYCODE_F1: tsKey += "F1"; break; case Common::KEYCODE_F2: tsKey += "F2"; break; case Common::KEYCODE_F3: tsKey += "F3"; break; case Common::KEYCODE_F4: tsKey += "F4"; break; case Common::KEYCODE_F5: tsKey += "F5"; break; case Common::KEYCODE_F6: tsKey += "F6"; break; case Common::KEYCODE_F7: tsKey += "F7"; break; case Common::KEYCODE_F8: tsKey += "F8"; break; case Common::KEYCODE_F9: tsKey += "F9"; break; case Common::KEYCODE_F10: tsKey += "F10"; break; case Common::KEYCODE_F11: tsKey += "F11"; break; case Common::KEYCODE_F12: tsKey += "F12"; break; case Common::KEYCODE_F13: tsKey += "F13"; break; case Common::KEYCODE_F14: tsKey += "F14"; break; case Common::KEYCODE_F15: tsKey += "F15"; break; case Common::KEYCODE_NUMLOCK: tsKey += "NumLock"; break; case Common::KEYCODE_CAPSLOCK: tsKey += "CapsLock"; break; case Common::KEYCODE_SCROLLOCK: tsKey += "ScrollLock"; break; case Common::KEYCODE_RSHIFT: tsKey += "RightShift"; break; case Common::KEYCODE_LSHIFT: tsKey += "LeftShift"; break; case Common::KEYCODE_RCTRL: tsKey += "RightControl"; break; case Common::KEYCODE_LCTRL: tsKey += "LeftControl"; break; case Common::KEYCODE_RALT: tsKey += "RightAlt"; break; case Common::KEYCODE_LALT: tsKey += "LeftAlt"; break; case Common::KEYCODE_RMETA: tsKey += "RightMeta"; break; case Common::KEYCODE_LMETA: tsKey += "LeftMeta"; break; case Common::KEYCODE_LSUPER: tsKey += "LeftSuper"; break; case Common::KEYCODE_RSUPER: tsKey += "RightSuper"; break; case Common::KEYCODE_MODE: tsKey += "Mode"; break; case Common::KEYCODE_HELP: tsKey += "Help"; break; case Common::KEYCODE_PRINT: tsKey += "Print"; break; case Common::KEYCODE_SYSREQ: tsKey += "SysReq"; break; case Common::KEYCODE_BREAK: tsKey += "Break"; break; case Common::KEYCODE_MENU: tsKey += "Menu"; break; case Common::KEYCODE_POWER: tsKey += "Power"; break; case Common::KEYCODE_EURO: tsKey += "Euro"; break; default: break; } if (tsKey != "") { return tsKey; } else { return "Unknown"; } } //----------------------------------------------------------------------- } // namespace hpl