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) 2004 RoboCup Soccer Server 3D Maintenance Group 00007 $Id: inputsystem.cpp,v 1.7 2004/04/23 21:11:04 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 #include "inputsystem.h" 00023 00024 using namespace kerosin; 00025 using namespace zeitgeist; 00026 00027 InputSystem::InputSystem() : mInputServer(NULL) 00028 { 00029 } 00030 00031 InputSystem::~InputSystem() 00032 { 00033 } 00034 00035 bool 00036 InputSystem::Init(kerosin::InputServer* inputServer) 00037 { 00038 mInputServer = inputServer; 00039 00040 return (mInputServer != 0); 00041 } 00042 00043 void 00044 InputSystem::AddInput(InputServer::Input& input) 00045 { 00046 AddInputInternal(input); 00047 } 00048 00049 bool 00050 InputSystem::GetInput(InputServer::Input& input) 00051 { 00052 static bool hasDoneTimer = false; 00053 if (mInputQueue.size() > 0) 00054 { 00055 input = mInputQueue.front(); 00056 mInputQueue.pop_front(); 00057 return true; 00058 } 00059 00060 if (!hasDoneTimer) 00061 { 00062 hasDoneTimer = true; 00063 return UpdateTimerInput(input); 00064 } 00065 else 00066 { 00067 hasDoneTimer = false; 00068 return false; 00069 } 00070 } 00071 00072 void 00073 InputSystem::AddInputInternal(InputServer::Input& input) 00074 { 00075 mInputQueue.push_back(input); 00076 } 00077 00078 bool 00079 InputSystem::UpdateTimerInput(InputServer::Input &/*input*/) 00080 { 00081 return false; 00082 }