#pragma once

#include <SDL2/SDL_events.h>
#include <functional>

namespace blitz {
namespace InputManager {

typedef std::function<void(int)> KeyDownCallback;
typedef std::function<void(int, int)> MouseMoveCallback;

void BindKeyDownCallback(const KeyDownCallback&);
void BindMouseMoveCallback(const MouseMoveCallback&);
void ProcessEvent(SDL_Event& event);
void GrabMouse(bool grabInput);
bool MouseGrabbed();

}  // namespace InputManager
}  // namespace blitz
