3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/input/enums/ButtonState.h"
7#include "mc/deps/input/enums/ChordTrackingResult.h"
29 ::ll::TypedStorage<4, 4, int> buttonMaskForThisChord;
30 ::ll::TypedStorage<4, 4, int> completeChordMask;
31 ::ll::TypedStorage<4, 4, uint> resultantButtonId;
32 ::ll::TypedStorage<4, 4, int> currentStateIndex;
33 ::ll::TypedStorage<4, 4, int> originalChordButtonSequenceIndex;
34 ::ll::TypedStorage<4, 4, float> minHoldTime;
42 ::ll::TypedStorage<4, 4, int> controllerId;
43 ::ll::TypedStorage<4, 4, float> minHoldTime;
44 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> timePressed;
52 ::ll::TypedStorage<8, 64, ::std::unordered_multimap<uint, ::ButtonChordTracker::ChordButtonDetails>> mChordMap;
53 ::ll::TypedStorage<8, 24, ::std::vector<int>> mChordState;
54 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<uint>>> mButtonSequences;
55 ::ll::TypedStorage<8, 16, ::std::map<uint, ::std::chrono::steady_clock::time_point>> mButtonLastInputTimes;
60 TrackerMappingAndState& operator=(TrackerMappingAndState
const&);
61 TrackerMappingAndState(TrackerMappingAndState
const&);
62 TrackerMappingAndState();
67 MCAPI TrackerMappingAndState(::ButtonChordTracker::TrackerMappingAndState&&);
69 MCAPI ::ButtonChordTracker::TrackerMappingAndState& operator=(::ButtonChordTracker::TrackerMappingAndState&&);
71 MCAPI ~TrackerMappingAndState();
77 MCAPI
void* $ctor(::ButtonChordTracker::TrackerMappingAndState&&);
87 using ChordMap = ::std::unordered_multimap<uint, ::ButtonChordTracker::ChordButtonDetails>;
89 using ChordState = ::std::vector<int>;
91 using ButtonSequences = ::std::vector<::std::vector<uint>>;
93 using ButtonLastInputTimes = ::std::map<uint, ::std::chrono::steady_clock::time_point>;
98 ::ll::TypedStorage<8, 8, ::InputEventQueue&> mQueue;
99 ::ll::TypedStorage<8, 24, ::std::vector<::ButtonChordTracker::ChordButtonDetails*>> mChordsDown;
100 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::ButtonChordTracker::TrackerMappingAndState>>
102 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::ButtonChordTracker::ChordHoldInfo>> mMinHoldTimeTracker;
107 ButtonChordTracker& operator=(ButtonChordTracker
const&);
108 ButtonChordTracker(ButtonChordTracker
const&);
109 ButtonChordTracker();
114 MCAPI
void _checkChordHoldDurations();
116 MCAPI
void _raiseLongestChordSequences(::ButtonChordTracker::TrackerMappingAndState& trackerData,
int controllerId);
118 MCAPI
void changeControllerId(
int oldId,
int newId);
120 MCAPI
void setMapping(::std::vector<::ChordButtonMapping>
const& inputMapping,
int controllerId);
122 MCAPI ::ChordTrackingResult trackButtonEvent(uint buttonId, ::ButtonState state,
int controllerId);