#ifndef _INPUTMANAGER_H_ #define _INPUTMANAGER_H_ #include #include #include #include class GuiComponent; //The InputManager takes native system input and abstracts it into InputButtons. //GuiComponents can be registered to receive onInput() events. namespace InputManager { void registerComponent(GuiComponent* comp); void unregisterComponent(GuiComponent* comp); void loadConfig(); //enum for identifying input, regardless of configuration enum InputButton { UNKNOWN, UP, DOWN, LEFT, RIGHT, BUTTON1, BUTTON2, MENU }; void processEvent(SDL_Event* event); extern std::vector inputVector; extern SDL_Event* lastEvent; //mostly for GuiInputConfig extern int deadzone; std::string getConfigPath(); extern std::map joystickButtonMap; extern std::map joystickAxisPosMap, joystickAxisNegMap; extern std::map axisState; extern InputButton hatState; } #endif