# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

input_device_manager.h

Go to the documentation of this file.
00001 
00007 /* Copyright, 2000-2002 Nevrax Ltd.
00008  *
00009  * This file is part of NEVRAX NEL.
00010  * NEVRAX NEL is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2, or (at your option)
00013  * any later version.
00014 
00015  * NEVRAX NEL is distributed in the hope that it will be useful, but
00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00018  * General Public License for more details.
00019 
00020  * You should have received a copy of the GNU General Public License
00021  * along with NEVRAX NEL; see the file COPYING. If not, write to the
00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
00023  * MA 02111-1307, USA.
00024  */
00025 
00026 #ifndef NL_INPUT_DEVICE_MANAGER_H
00027 #define NL_INPUT_DEVICE_MANAGER_H
00028 
00029 #include "nel/misc/types_nl.h"
00030 #include "nel/misc/game_device.h"
00031 
00032 
00033 namespace NLMISC 
00034 {
00035 
00036 
00037 struct IMouseDevice;
00038 struct IKeyboardDevice;
00039 
00040 
00041 
00042 struct EInputDevice : public Exception
00043 {
00044         EInputDevice(const char *reason) : Exception(reason) {}
00045 };
00046 
00047 
00052 struct IInputDeviceManager
00053 {
00055         virtual IMouseDevice    *getMouseDevice() throw(EInputDevice) = 0;
00057         virtual void                    releaseMouse() = 0;
00059         virtual IKeyboardDevice *getKeyboardDevice() throw(EInputDevice) = 0;
00061         virtual void                    releaseKeyboard() = 0;
00062         // Enumerates current game devices (gamepads, joystick etc.). The result is stored in the given vector
00063         virtual void                    enumerateGameDevice(TDeviceDescVect &descs) throw(EInputDevice) = 0;
00064         // Create the given game device interface from its instance name. It also means that it will begin to sends events.                       
00065         virtual IGameDevice             *createGameDevice(const std::string &instanceName) throw(EInputDevice) = 0;
00066         // Release the given game device.
00067         virtual void                    releaseGameDevice(IGameDevice *gd) = 0;
00068 };
00069 
00070 
00071 } // NLMISC
00072 
00073 
00074 #endif // NL_INPUT_DEVICE_MANAGER_H
00075 
00076 /* End of device_manager.h */