93 |
{ |
{ |
94 |
}; |
}; |
95 |
|
|
|
|
|
96 |
class Driver |
class Driver |
97 |
{ |
{ |
98 |
std::string mName; |
protected: |
99 |
|
std::string mName; |
100 |
public: |
public: |
101 |
|
Driver(const std::string& pName); |
102 |
|
virtual ~Driver(); |
103 |
|
virtual Event* next()=0; |
104 |
|
virtual void update()=0; |
105 |
|
|
106 |
typedef enum { KEYBOARD, MOUSE, JOYSTICK } DeviceType; |
const std::string& name(); |
|
Driver(const std::string& name); |
|
|
virtual ~Driver() throw(); |
|
|
|
|
|
virtual bool supports(DeviceType type)=0; |
|
|
virtual bool enable(DeviceType type, bool)=0; |
|
|
virtual void configure() = 0; |
|
|
|
|
|
virtual void update() = 0; |
|
|
virtual Event* next() = 0; |
|
|
|
|
|
}; |
|
|
typedef boost::shared_ptr<Driver> Driver_sp; |
|
|
class Translator |
|
|
{ |
|
107 |
}; |
}; |
108 |
|
|
109 |
|
|
110 |
|
typedef boost::shared_ptr<Driver> Driver_sp; |
111 |
class Manager |
class Manager |
112 |
{ |
{ |
113 |
typedef std::vector<Driver_sp> DriversV; |
typedef std::vector<Driver_sp> DriversV; |
114 |
|
|
115 |
DriversV mDrivers; |
DriversV mDrivers; |
|
|
|
116 |
public: |
public: |
117 |
|
|
118 |
typedef boost::function<void(Event*)> EventHandler; |
typedef boost::function<void(Event*)> EventHandler; |
126 |
|
|
127 |
void trim(void); |
void trim(void); |
128 |
void add_driver(Driver*); |
void add_driver(Driver*); |
129 |
|
|
130 |
void process(); |
void process(); |
131 |
~Manager(); |
~Manager(); |
132 |
private: |
private: |
133 |
EventHandlerStack mEvhStack; |
EventHandlerStack mEvhStack; |
134 |
}; |
}; |
135 |
|
|
136 |
Driver * default_driver(); |
Driver *default_driver(); |
137 |
} |
} |
138 |
|
|
139 |
} |
} |