00001 // ===================================================================================== 00002 // Filename: System.h 00003 // Description: 00004 // Version: 1.0 00005 // Created: 03/29/2007 06:17:17 PM EDT 00006 // Revision: none 00007 // Compiler: gcc 3.4.6 00008 // 00009 // Author: John P. Feltz 00010 // Email: jfeltz@gmail.com 00011 // License: Copyright (c) 2006-2007, John P. Feltz 00012 // This program is free software; you can redistribute it and/or 00013 // modify it under the terms of the GNU General Public License as 00014 // published by the Free Software Foundation, version 2 of the 00015 // License. 00016 // This program is distributed in the hope that it will be 00017 // useful, but WITHOUT ANY WARRANTY; without even the implied 00018 // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 // PURPOSE. 00020 // See the GNU General Public License version 2 for more details. 00021 // 00022 // ===================================================================================== 00023 00024 #include <System.h> 00025 #include <SDLTranslator.h> 00026 00027 namespace cmil { 00028 namespace SDL { 00030 // 00032 00033 class SDLSystem : public System { 00034 public: 00035 class Parameters : public Logger { 00036 public: 00037 typedef std::list<InputDevice* > InputDeviceList; 00038 typedef std::map<Supported, InputDeviceList > MapList; 00039 typedef std::pair<Supported, InputDeviceList > MapListPair; 00040 00041 bool add(SDL::Supported); 00042 00043 bool add(const Supported dev_type, InputDevice* custom); 00044 00045 std::string getName() const { return "Paramaters"; } 00046 private: 00047 friend class SDLSystem; 00048 00049 MapList m_index; 00050 }; 00051 00052 SDLSystem(); 00053 SDLSystem(const SDLSystem::Parameters& params, InputArbitrator* const arbitrator); 00054 SDLSystem(const SDLSystem::Parameters& params); 00055 00056 virtual ~SDLSystem() {} 00057 00058 virtual std::string getName() const { 00059 return "SDLSystem"; 00060 } 00061 00062 virtual void poll(); 00063 00064 private: 00065 void init(); 00066 void init(const SDLSystem::Parameters& params); 00067 SDLTranslator* m_default_translator; 00068 }; 00069 } 00070 }