3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/input/interface/GameControllerButtonState.h"
7#include "mc/deps/input/interface/GameControllerErrorType.h"
12 using InputButton = uint;
14 using ButtonMap = ::std::unordered_map<uint, int>;
16 using ButtonStateMap = ::std::unordered_map<uint, ::GameControllerButtonState>;
21 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, int>> mButtonMap;
22 ::ll::TypedStorage<8, 24, ::std::vector<float>> mLeftTrigger;
23 ::ll::TypedStorage<8, 24, ::std::vector<float>> mRightTrigger;
24 ::ll::TypedStorage<8, 32, ::std::vector<bool>> mLeftStickTouched;
25 ::ll::TypedStorage<8, 32, ::std::vector<bool>> mRightStickTouched;
26 ::ll::TypedStorage<8, 24, ::std::vector<::std::unordered_map<uint, ::GameControllerButtonState>>> mButtonState;
27 ::ll::TypedStorage<4, 16, uint[4]> mInputProcessResult;
28 ::ll::TypedStorage<8, 16, ::std::thread> mPollingThread;
29 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mJoinThreads;
35 virtual ~GameControllerHandler();
37 virtual void refresh() = 0;
39 virtual void refresh(
bool isInGame);
41 virtual void shutdown();
43 virtual ::GameControllerErrorType checkPlatformSpecificControllerError();
45 virtual float normalizeAxis(
float raw,
float deadzone);
47 virtual void normalizeAxes(
float& ioX,
float& ioY,
float deadzone) = 0;
53 MCAPI GameControllerHandler();
71 MCFOLD
void $refresh(
bool isInGame);
73 MCFOLD
void $shutdown();
75 MCFOLD ::GameControllerErrorType $checkPlatformSpecificControllerError();
77 MCFOLD
float $normalizeAxis(
float raw,
float deadzone);
Definition GameControllerHandler.h:5
static MCAPI void ** $vftable()