InputAdapter.ixx File
Abstract interface for platform-specific input adapters. More...
Included Headers
#include <bit>
#include <memory>
#include <array>
#include <utility>
#include <helios.engine.input.gamepad.DeadzoneStrategy>
#include <helios.engine.input.gamepad.GamepadSettings>
#include <helios.engine.util.log.LogManager>
#include <helios.engine.util.log.Logger>
#include <helios.engine.input.types.Key>
#include <helios.engine.input.gamepad.GamepadState>
#include <helios.engine.input.types.Gamepad>
Namespaces Index
| namespace | helios |
| namespace | window |
| namespace | engine |
| namespace | input |
Classes Index
| class | InputAdapter |
|
Abstract interface for platform-specific input adapters. More... | |
Macro Definitions Index
| #define | HELIOS_LOG_SCOPE "helios::engine::input::InputAdapter" |
Description
Abstract interface for platform-specific input adapters.
Macro Definitions
HELIOS_LOG_SCOPE
|
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:
24 class Window;
27#define HELIOS_LOG_SCOPE "helios::engine::input::InputAdapter"
28export namespace helios::engine::input {
46 class InputAdapter {
52 inline static const helios::engine::util::log::Logger& logger_ = helios::engine::util::log::LogManager::loggerForScope(HELIOS_LOG_SCOPE);
60 std::unique_ptr<helios::engine::input::gamepad::DeadzoneStrategy> deadzoneStrategy_;
68 std::array<helios::engine::input::gamepad::GamepadSettings, std::to_underlying(helios::engine::input::types::Gamepad::size_)> gamepadSettings_ = {};
76 virtual ~InputAdapter() = default;
84 explicit InputAdapter(std::unique_ptr<helios::engine::input::gamepad::DeadzoneStrategy> deadzoneStrategy) :
85 deadzoneStrategy_(std::move(deadzoneStrategy))
96 [[nodiscard]] virtual bool isKeyPressed(helios::engine::input::types::Key key, const helios::window::Window win) const noexcept = 0;
106 [[nodiscard]] virtual bool isKeyReleased(
107 helios::engine::input::types::Key key,
108 const helios::window::Window win) const noexcept = 0;
119 [[nodiscard]] virtual bool isConnected(helios::engine::input::types::Gamepad gamepadId) const noexcept = 0;
135 virtual void updateGamepadState(unsigned int gamepadMask) noexcept = 0;
156 [[nodiscard]] virtual const helios::engine::input::gamepad::GamepadState& gamepadState(
157 helios::engine::input::types::Gamepad gamepadId) const noexcept = 0;
174 [[nodiscard]] helios::engine::input::gamepad::GamepadSettings& gamepadSettings(helios::engine::input::types::Gamepad gamepadId) noexcept {
175 const auto id = static_cast<unsigned int>(gamepadId);
176 const auto idx = std::countr_zero(id);
178 return gamepadSettings_[idx];
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.8.