JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
GamepadPoller.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <chrono>
7
9
14
15namespace hmi {
16
18inline constexpr std::chrono::milliseconds GAMEPAD_DISCONNECTED_PROBE_PERIOD{2000};
19
38[[nodiscard]] constexpr bool gamepadProbeDue(
39 bool wasConnected, std::chrono::steady_clock::duration sinceLastProbe) noexcept {
40 return wasConnected || sinceLastProbe >= GAMEPAD_DISCONNECTED_PROBE_PERIOD;
41}
42
58public:
60 void poll(InputState& input);
61
62private:
63 bool _wasConnected = false;
66 std::chrono::steady_clock::time_point _lastProbe{};
67};
68
69} // namespace hmi
État des entrées clavier/souris/manette échantillonné une fois par frame.
Sonde la manette (XInput, joueur 0) et fusionne son état dans un InputState.
Definition GamepadPoller.h:57
void poll(InputState &input)
Sonde la manette et met à jour input (piste Key + piste GamepadButton brute).
Definition GamepadPoller.cpp:28
bool _wasConnected
Pour ne journaliser qu'un changement de connexion.
Definition GamepadPoller.h:63
std::chrono::steady_clock::time_point _lastProbe
Instant du dernier sondage XInput effectif ; l'époque tant qu'aucun n'a eu lieu, pour que le tout pre...
Definition GamepadPoller.h:66
État des entrées d'une frame, avec détection des fronts (pressée / relâchée).
Definition InputState.h:97
Definition AudioEngine.cpp:15
constexpr std::chrono::milliseconds GAMEPAD_DISCONNECTED_PROBE_PERIOD
Délai minimal entre deux sondages XInput d'un slot resté déconnecté (anti-saccade).
Definition GamepadPoller.h:18
constexpr bool gamepadProbeDue(bool wasConnected, std::chrono::steady_clock::duration sinceLastProbe) noexcept
Faut-il re-sonder XInput maintenant ?
Definition GamepadPoller.h:38