/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #ifndef __INPUT_SYSTEM__ #define __INPUT_SYSTEM__ #include "input/input_device.h" #include "nstring/nstring.h" #include "container/nlist.h" namespace GS { namespace Input { /* @short Input system. @author Emmanuel Julien (ejulien@nworks.fr) */ struct System { /// Return true if the input system is active. virtual bool IsActive() { return true; } virtual void Update() = 0; /// Return the current display handle. virtual void *GetHandle() const { return 0; } /// Set display handle. virtual void SetHandle(void *) {} /// Return a list of devices available on this system. virtual bool GetDeviceList(StringList &, Device::Type = Device::Type_Any) const { return true; } /// Return a list of guid devices available on this system. virtual bool GetDeviceGuidList(StringList &, Device::Type = Device::Type_Any) const { return true; } /// Get a device from its name. virtual Device *GetDevice(const char *name) = 0; virtual Device *GetDeviceFromGuid(const char *name) {return NULL;}; virtual ~System() {} }; } // Input } // GS #endif // __INPUT_SYSTEM__