00001 #ifndef HEADER_INPUTAGENT_H 00002 #define HEADER_INPUTAGENT_H 00003 00004 class KeyBinder; 00005 class InputHandler; 00006 00007 #include "BaseAgent.h" 00008 #include "Name.h" 00009 #include "V2.h" 00010 00011 #include "SDL.h" 00012 00013 /** 00014 * Forward input events to handlers. 00015 */ 00016 class InputAgent : public BaseAgent { 00017 AGENT(InputAgent, Name::INPUT_NAME); 00018 private: 00019 Uint8 *m_keys; 00020 KeyBinder *m_keyBinder; 00021 InputHandler *m_handler; 00022 private: 00023 V2 getMouseState(Uint8 *out_buttons); 00024 protected: 00025 virtual void own_init(); 00026 virtual void own_update(); 00027 virtual void own_shutdown(); 00028 public: 00029 void installHandler(InputHandler *handler); 00030 00031 KeyBinder *keyBinder() { return m_keyBinder; } 00032 }; 00033 00034 #endif