Skip to main content

InputAdapter.ixx File

Abstract interface for platform-specific input adapters. More...

Included Headers

Namespaces Index

namespacehelios
namespacewindow
namespaceengine
namespaceinput

Classes Index

classInputAdapter

Abstract interface for platform-specific input adapters. More...

Macro Definitions Index

#defineHELIOS_LOG_SCOPE   "helios::engine::input::InputAdapter"

Description

Abstract interface for platform-specific input adapters.

Macro Definitions

HELIOS_LOG_SCOPE

#define HELIOS_LOG_SCOPE   "helios::engine::input::InputAdapter"

Definition at line 27 of file InputAdapter.ixx.

27#define HELIOS_LOG_SCOPE "helios::engine::input::InputAdapter"

File Listing

The file content with the documentation metadata removed is:

1
5module;
6
7#include <bit>
8#include <memory>
9#include <array>
10#include <utility>
11
12export module helios.engine.input.InputAdapter;
13
14import helios.engine.input.types.Gamepad;
15import helios.engine.input.gamepad.GamepadState;
16import helios.engine.input.types.Key;
17
18import helios.engine.util.log.Logger;
19import helios.engine.util.log.LogManager;
20import helios.engine.input.gamepad.GamepadSettings;
21import helios.engine.input.gamepad.DeadzoneStrategy;
22
23namespace helios::window {
24 class Window;
25}
26
27#define HELIOS_LOG_SCOPE "helios::engine::input::InputAdapter"
28export namespace helios::engine::input {
29
47
48 protected:
53
60 std::unique_ptr<helios::engine::input::gamepad::DeadzoneStrategy> deadzoneStrategy_;
61
68 std::array<helios::engine::input::gamepad::GamepadSettings, std::to_underlying(helios::engine::input::types::Gamepad::size_)> gamepadSettings_ = {};
69
70
71 public:
72
76 virtual ~InputAdapter() = default;
77
84 explicit InputAdapter(std::unique_ptr<helios::engine::input::gamepad::DeadzoneStrategy> deadzoneStrategy) :
86 {}
87
96 [[nodiscard]] virtual bool isKeyPressed(helios::engine::input::types::Key key, const helios::window::Window win) const noexcept = 0;
97
106 [[nodiscard]] virtual bool isKeyReleased(
108 const helios::window::Window win) const noexcept = 0;
109
110
120
121
135 virtual void updateGamepadState(unsigned int gamepadMask) noexcept = 0;
136
137
158
159
175 const auto id = static_cast<unsigned int>(gamepadId);
176 const auto idx = std::countr_zero(id);
177
178 return gamepadSettings_[idx];
179 }
180 };
181
182}

Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.