3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/input/enums/ButtonState.h"
7#include "mc/deps/input/enums/ChordTrackingResult.h"
19 struct ChordButtonDetails;
21 struct TrackerMappingAndState;
31 using ChordMap = ::std::unordered_multimap<uint, ::ButtonChordTracker::ChordButtonDetails>;
33 using ChordState = ::std::vector<int>;
35 using ButtonSequences = ::std::vector<::std::vector<uint>>;
37 using ButtonLastInputTimes = ::std::map<uint, ::std::chrono::steady_clock::time_point>;
42 ::ll::TypedStorage<8, 8, ::InputEventQueue&> mQueue;
43 ::ll::TypedStorage<8, 24, ::std::vector<::ButtonChordTracker::ChordButtonDetails*>> mChordsDown;
44 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::ButtonChordTracker::TrackerMappingAndState>>
46 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::ButtonChordTracker::ChordHoldInfo>> mMinHoldTimeTracker;
58 MCAPI
void _checkChordHoldDurations();
62 MCAPI
void changeControllerId(
int oldId,
int newId);
64 MCAPI
void setMapping(::std::vector<::ChordButtonMapping>
const& inputMapping,
int controllerId);
66 MCAPI ::ChordTrackingResult trackButtonEvent(uint buttonId, ::ButtonState state,
int controllerId);