From: Markus R. <rol...@us...> - 2005-12-25 18:31:17
|
Update of /cvsroot/simspark/simspark/spark/kerosin/inputserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30769 Added Files: input.h input.cpp Log Message: - moved input struct and constants into separate file --- NEW FILE: input.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: input.h,v 1.1 2005/12/25 18:31:06 rollmark Exp $ 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; version 2 of the License. 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, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef KEROSIN_INPUTCONST_H #define KEROSIN_INPUTCONST_H namespace kerosin { /** this defines the input data structure, encapsulating all input events generated by the devices. */ class Input { public: typedef int TInputCode; enum EModifiers { eNone = 0x0000, eLShift = 0x0001, eRShift = 0x0002, eShift = 0x0003, // eLShift|eRShift eLCtrl = 0x0040, eRCtrl = 0x0080, eCtrl = 0x00c0, // eLCtrl|eRCtrl eLAlt = 0x0100, eRAlt = 0x0200, eAlt = 0x0300, // eLAlt|eRAlt eNum = 0x1000, eCaps = 0x2000, }; //! this enumerates different tpyes of input events. enum EType { eUnknown, eButton, // all buttons of a keyboard and mouse buttons eAxis, // two mouse axis, the mouse wheel and the // time axis eUser // a user specified input event }; public: //! this initializes values indicating an invalid input event Input(EType t = eUnknown, TInputCode c=0, int i=-1); //! returns true if the input represents a key press event bool KeyPress() const; //! returns true if the input represents a key release event bool KeyRelease() const; public: //! this indicates the input data type EType mType; //! the IC_ code of the button or the axis (see inputconst.h) TInputCode mCode; /** this is a user defined value the Input event evaluated to, or -1 to indicate a raw Input event. */ int mId; //! union for additional data union { /** this is used to encode a button event. currently only 1 for 'pressed' and 0 for 'released' are used */ long l; //! this is used to encode a position on an axis. float f; } mData; public: // numbers static const TInputCode IC_1; static const TInputCode IC_2; static const TInputCode IC_3; static const TInputCode IC_4; static const TInputCode IC_5; static const TInputCode IC_6; static const TInputCode IC_7; static const TInputCode IC_8; static const TInputCode IC_9; static const TInputCode IC_0; // function keys static const TInputCode IC_F1; static const TInputCode IC_F2; static const TInputCode IC_F3; static const TInputCode IC_F4; static const TInputCode IC_F5; static const TInputCode IC_F6; static const TInputCode IC_F7; static const TInputCode IC_F8; static const TInputCode IC_F9; static const TInputCode IC_F10; static const TInputCode IC_F11; static const TInputCode IC_F12; // alphabet static const TInputCode IC_A; static const TInputCode IC_B; static const TInputCode IC_C; static const TInputCode IC_D; static const TInputCode IC_E; static const TInputCode IC_F; static const TInputCode IC_G; static const TInputCode IC_H; static const TInputCode IC_I; static const TInputCode IC_J; static const TInputCode IC_K; static const TInputCode IC_L; static const TInputCode IC_M; static const TInputCode IC_N; static const TInputCode IC_O; static const TInputCode IC_P; static const TInputCode IC_Q; static const TInputCode IC_R; static const TInputCode IC_S; static const TInputCode IC_T; static const TInputCode IC_U; static const TInputCode IC_V; static const TInputCode IC_W; static const TInputCode IC_X; static const TInputCode IC_Y; static const TInputCode IC_Z; // keypad static const TInputCode IC_KP0; static const TInputCode IC_KP1; static const TInputCode IC_KP2; static const TInputCode IC_KP3; static const TInputCode IC_KP4; static const TInputCode IC_KP5; static const TInputCode IC_KP6; static const TInputCode IC_KP7; static const TInputCode IC_KP8; static const TInputCode IC_KP9; static const TInputCode IC_KP_DECIMAL; static const TInputCode IC_KP_DIVIDE; static const TInputCode IC_KP_MULTIPLY; static const TInputCode IC_KP_MINUS; static const TInputCode IC_KP_PLUS; static const TInputCode IC_KP_ENTER; // arrows + home/end pad static const TInputCode IC_UP; static const TInputCode IC_DOWN; static const TInputCode IC_LEFT; static const TInputCode IC_RIGHT; static const TInputCode IC_INSERT; static const TInputCode IC_DELETE; static const TInputCode IC_HOME; static const TInputCode IC_END; static const TInputCode IC_PAGEUP; static const TInputCode IC_PAGEDOWN; // key state modifier keys static const TInputCode IC_NUMLOCK; static const TInputCode IC_CAPSLOCK; static const TInputCode IC_SCROLLOCK; static const TInputCode IC_LSHIFT; static const TInputCode IC_RSHIFT; static const TInputCode IC_LCTRL; static const TInputCode IC_RCTRL; static const TInputCode IC_LALT; static const TInputCode IC_RALT; static const TInputCode IC_LSUPER; // Left "Windows" key static const TInputCode IC_RSUPER; // Right "Windows" key // other keys (cursor control, punctuation) static const TInputCode IC_ESCAPE; static const TInputCode IC_PRINT; static const TInputCode IC_PAUSE; static const TInputCode IC_GRAVE; static const TInputCode IC_MINUS; static const TInputCode IC_EQUALS; static const TInputCode IC_BACKSLASH; static const TInputCode IC_BACKSPACE; static const TInputCode IC_TAB; static const TInputCode IC_LBRACKET; static const TInputCode IC_RBRACKET; static const TInputCode IC_RETURN; static const TInputCode IC_SEMICOLON; static const TInputCode IC_APOSTROPHE; static const TInputCode IC_OEM_102; // German <>| static const TInputCode IC_COMMA; static const TInputCode IC_PERIOD; static const TInputCode IC_SLASH; static const TInputCode IC_SPACE; // mouse buttons static const TInputCode IC_MOUSE_LEFT; // left static const TInputCode IC_MOUSE_RIGHT; // right static const TInputCode IC_MOUSE_MIDDLE; // middle //mouse axis static const TInputCode IC_AXISX; static const TInputCode IC_AXISY; static const TInputCode IC_AXISZ; // timer static const TInputCode IC_AXIST; }; } // kerosin #endif // KEROSIN_INPUTCONST_H --- NEW FILE: input.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of rcssserver3D Fri May 9 2003 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group $Id: input.cpp,v 1.1 2005/12/25 18:31:06 rollmark Exp $ 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; version 2 of the License. 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, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "input.h" using namespace kerosin; Input::Input(EType t, TInputCode c, int i) : mType(t),mCode(c),mId(i) { } bool Input::KeyPress() const { return (mData.l == 1); } bool Input::KeyRelease() const { return (mData.l == 0); } // numbers const Input::TInputCode IC_1 = 0x02; const Input::TInputCode IC_2 = 0x03; const Input::TInputCode IC_3 = 0x04; const Input::TInputCode IC_4 = 0x05; const Input::TInputCode IC_5 = 0x06; const Input::TInputCode IC_6 = 0x07; const Input::TInputCode IC_7 = 0x08; const Input::TInputCode IC_8 = 0x09; const Input::TInputCode IC_9 = 0x0a; const Input::TInputCode IC_0 = 0x0b; // function keys const Input::TInputCode IC_F1 = 0x3b; const Input::TInputCode IC_F2 = 0x3c; const Input::TInputCode IC_F3 = 0x3d; const Input::TInputCode IC_F4 = 0x3e; const Input::TInputCode IC_F5 = 0x3f; const Input::TInputCode IC_F6 = 0x40; const Input::TInputCode IC_F7 = 0x41; const Input::TInputCode IC_F8 = 0x42; const Input::TInputCode IC_F9 = 0x43; const Input::TInputCode IC_F10 = 0x44; const Input::TInputCode IC_F11 = 0x57; const Input::TInputCode IC_F12 = 0x58; // alphabet const Input::TInputCode IC_A = 0x1e; const Input::TInputCode IC_B = 0x30; const Input::TInputCode IC_C = 0x2e; const Input::TInputCode IC_D = 0x20; const Input::TInputCode IC_E = 0x12; const Input::TInputCode IC_F = 0x21; const Input::TInputCode IC_G = 0x22; const Input::TInputCode IC_H = 0x23; const Input::TInputCode IC_I = 0x17; const Input::TInputCode IC_J = 0x24; const Input::TInputCode IC_K = 0x25; const Input::TInputCode IC_L = 0x26; const Input::TInputCode IC_M = 0x32; const Input::TInputCode IC_N = 0x31; const Input::TInputCode IC_O = 0x18; const Input::TInputCode IC_P = 0x19; const Input::TInputCode IC_Q = 0x10; const Input::TInputCode IC_R = 0x13; const Input::TInputCode IC_S = 0x1f; const Input::TInputCode IC_T = 0x14; const Input::TInputCode IC_U = 0x16; const Input::TInputCode IC_V = 0x2f; const Input::TInputCode IC_W = 0x11; const Input::TInputCode IC_X = 0x2d; const Input::TInputCode IC_Y = 0x15; const Input::TInputCode IC_Z = 0x2c; // keypad const Input::TInputCode IC_KP0 = 0x52; const Input::TInputCode IC_KP1 = 0x4f; const Input::TInputCode IC_KP2 = 0x50; const Input::TInputCode IC_KP3 = 0x51; const Input::TInputCode IC_KP4 = 0x4b; const Input::TInputCode IC_KP5 = 0x4c; const Input::TInputCode IC_KP6 = 0x4d; const Input::TInputCode IC_KP7 = 0x47; const Input::TInputCode IC_KP8 = 0x48; const Input::TInputCode IC_KP9 = 0x49; const Input::TInputCode IC_KP_DECIMAL = 0x53; const Input::TInputCode IC_KP_DIVIDE = 0xb5; const Input::TInputCode IC_KP_MULTIPLY = 0x37; const Input::TInputCode IC_KP_MINUS = 0x4a; const Input::TInputCode IC_KP_PLUS = 0x4e; const Input::TInputCode IC_KP_ENTER = 0x8d; // arrows + home/end pad const Input::TInputCode IC_UP = 0xc8; const Input::TInputCode IC_DOWN = 0xd0; const Input::TInputCode IC_LEFT = 0xcb; const Input::TInputCode IC_RIGHT = 0xcd; const Input::TInputCode IC_INSERT = 0xd2; const Input::TInputCode IC_DELETE = 0xd3; const Input::TInputCode IC_HOME = 0xc7; const Input::TInputCode IC_END = 0xcf; const Input::TInputCode IC_PAGEUP = 0xc9; const Input::TInputCode IC_PAGEDOWN = 0xd1; // key state modifier keys const Input::TInputCode IC_NUMLOCK = 0x45; const Input::TInputCode IC_CAPSLOCK = 0x3a; const Input::TInputCode IC_SCROLLOCK = 0x46; const Input::TInputCode IC_LSHIFT = 0x2a; const Input::TInputCode IC_RSHIFT = 0x36; const Input::TInputCode IC_LCTRL = 0x1d; const Input::TInputCode IC_RCTRL = 0x9d; const Input::TInputCode IC_LALT = 0x38; const Input::TInputCode IC_RALT = 0xb8; const Input::TInputCode IC_LSUPER = 0xdb; // Left "Windows" key const Input::TInputCode IC_RSUPER = 0xdc; // Right "Windows" key // other keys (cursor control, punctuation) const Input::TInputCode IC_ESCAPE = 0x01; const Input::TInputCode IC_PRINT = 0xb7; const Input::TInputCode IC_PAUSE = 0xc5; const Input::TInputCode IC_GRAVE = 0x29; const Input::TInputCode IC_MINUS = 0x0c; const Input::TInputCode IC_EQUALS = 0x0d; const Input::TInputCode IC_BACKSLASH = 0x2b; const Input::TInputCode IC_BACKSPACE = 0x0e; const Input::TInputCode IC_TAB = 0x0f; const Input::TInputCode IC_LBRACKET = 0x1a; const Input::TInputCode IC_RBRACKET = 0x1b; const Input::TInputCode IC_RETURN = 0x1c; const Input::TInputCode IC_SEMICOLON = 0x27; const Input::TInputCode IC_APOSTROPHE= 0x28; const Input::TInputCode IC_OEM_102 = 0x56; // German <>| const Input::TInputCode IC_COMMA = 0x33; const Input::TInputCode IC_PERIOD = 0x34; const Input::TInputCode IC_SLASH = 0x35; const Input::TInputCode IC_SPACE = 0x39; // mouse buttons const Input::TInputCode IC_MOUSE_LEFT = 0x1000; // left const Input::TInputCode IC_MOUSE_RIGHT = 0x1001; // right const Input::TInputCode IC_MOUSE_MIDDLE = 0x1002; // middle //mouse axis const Input::TInputCode IC_AXISX = 0x2000; const Input::TInputCode IC_AXISY = 0x2001; const Input::TInputCode IC_AXISZ = 0x2002; // timer const Input::TInputCode IC_AXIST = 0x3000; |