1 #ifndef PERIPHERAL_H
2 #define PERIPHERAL_H
3 
4 #include <string>
5 
6 using namespace std;
7 
8 class Peripheral
9 {
10 	public:
11 
Peripheral()12 		Peripheral(){}
~Peripheral()13 		virtual ~Peripheral(){}
14 		virtual void init()=0;
15 		virtual void update()=0;
16 		virtual void shutdown()=0;
17 
18 		//Tipos de evento que se pueden dar en un componente de un
19 		//periferico
20 		typedef enum event_t
21 		{
22 			NO_EVENT,
23 			ON_PRESS,
24 			ON_RELEASE,
25 			ON_PRESSING,
26 			ON_RELEASSING
27 		};
28 
29 		//El estado de un componente de un periferico
30 		//Por ejemplo la posicion X del raton
31 		typedef int state_t;
32 		//Los distintos componentes que puede tener un periferico
33 		typedef int component_t;
34 
35 		//Devuelve si el componente esta activado ON_PRESS
36 		//o no ON_RELEASE
37 		virtual event_t get_event(component_t comp)=0;
38 
39 		//Devuelve si ha cambiado el componente desde la ultima vez
40 		virtual bool is_change(component_t comp)=0;
41 
42 		//Devuelve el estado (posicion del raton) del componente
43 		virtual state_t get_state(component_t comp)=0;
44 
45 		//Modifica el componente en el periferico virtual
46 		virtual void set_component(component_t comp,state_t s)=0;
47 
48 		virtual string get_component_name(component_t comp)=0;
49 		virtual void reset()=0;
50 };
51 
52 #endif
53