SdlKeyboard.hpp 978 B

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * author: Patrick-Christopher Mattulat
  3. * e-mail: webmaster@lynarstudios.com
  4. */
  5. #ifndef LS_ATLANTIS_ENGINE_INPUT_SDL_KEYBOARD_HPP
  6. #define LS_ATLANTIS_ENGINE_INPUT_SDL_KEYBOARD_HPP
  7. #include <Export.hpp>
  8. #include <glossary/KeyboardKeys.hpp>
  9. #include <input/KeyboardKeyMap.hpp>
  10. #include <interface/IKeyboard.hpp>
  11. namespace ls::atlantis::input
  12. {
  13. class LS_ATLANTIS_DYNAMIC_GOAL SdlKeyboard : public ls::atlantis::interfaces::IKeyboard
  14. {
  15. public:
  16. explicit SdlKeyboard(ls::atlantis::input::KeyboardKeyMap _keys);
  17. ~SdlKeyboard() override;
  18. [[nodiscard]] bool isFreed(const ls::atlantis::glossary::KeyboardKeys &_key) override;
  19. [[nodiscard]] bool isPressed(const ls::atlantis::glossary::KeyboardKeys &_key) override;
  20. void reset() override;
  21. void updateKey(const ls::atlantis::glossary::KeyboardKeys &_key, bool _isFreed, bool _isPressed) override;
  22. protected:
  23. ls::atlantis::input::KeyboardKeyMap keys{};
  24. };
  25. }
  26. #endif