00001 /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- 00002 00003 this file is part of rcssserver3D 00004 Fri May 9 2003 00005 Copyright (C) 2002,2003 Koblenz University 00006 Copyright (C) 2003 RoboCup Soccer Server 3D Maintenance Group 00007 $Id: inputdevice.h,v 1.4 2004/04/23 21:08:02 fruit Exp $ 00008 00009 This program is free software; you can redistribute it and/or modify 00010 it under the terms of the GNU General Public License as published by 00011 the Free Software Foundation; version 2 of the License. 00012 00013 This program is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with this program; if not, write to the Free Software 00020 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00021 */ 00022 #ifndef KEROSIN_INPUTDEVICE_H 00023 #define KEROSIN_INPUTDEVICE_H 00024 00025 /* \class InputDevice 00026 00027 InputDevice 00028 00029 An InputDevice is the abstract base class which creates input 00030 for the inputserver. Common InputDevice would be the Keyboard 00031 and Mouse, but less common 'devices' such as AI agents (think 00032 of them pushing the controls) or time are also possible. 00033 00034 The input devices are managed by the input server. As the 00035 application only communicates with the input server in general 00036 this makes adding new input devices transparent to the 00037 application (Good Thing(TM)). 00038 00039 HISTORY: 21.08.02 - MK - Initial version 00040 */ 00041 00042 #include <zeitgeist/leaf.h> 00043 #include "inputsystem.h" 00044 00045 namespace kerosin 00046 { 00047 00048 class InputDevice : public zeitgeist::Leaf 00049 { 00050 // 00051 // functions 00052 // 00053 public: 00054 InputDevice(); 00055 ~InputDevice(); 00056 00058 virtual bool Init(kerosin::InputSystem* inputSystem); 00059 00060 // 00061 // members 00062 // 00063 protected: 00064 InputSystem* mInputSystem; 00065 }; 00066 00067 DECLARE_CLASS(InputDevice); 00068 00069 } //namespace kerosin 00070 00071 #endif //KEROSIN_INPUTDEVICE_H