LeviLamina
Loading...
Searching...
No Matches
ButtonChordTracker.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
9// clang-format on
10
12public:
13 // ButtonChordTracker inner types declare
14 // clang-format off
15 struct ChordButtonDetails;
16 struct ChordHoldInfo;
18 // clang-format on
19
20 // ButtonChordTracker inner types define
21 struct ChordButtonDetails {
22 public:
23 // member variables
24 // NOLINTBEGIN
25 ::ll::TypedStorage<4, 4, int> buttonMaskForThisChord;
26 ::ll::TypedStorage<4, 4, int> completeChordMask;
27 ::ll::TypedStorage<4, 4, uint> resultantButtonId;
28 ::ll::TypedStorage<4, 4, int> currentStateIndex;
29 ::ll::TypedStorage<4, 4, int> originalChordButtonSequenceIndex;
30 ::ll::TypedStorage<4, 4, float> minHoldTime;
31 // NOLINTEND
32 };
33
34 struct ChordHoldInfo {
35 public:
36 // member variables
37 // NOLINTBEGIN
38 ::ll::TypedStorage<4, 4, int> controllerId;
39 ::ll::TypedStorage<4, 4, float> minHoldTime;
40 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> timePressed;
41 // NOLINTEND
42 };
43
45 public:
46 // member variables
47 // NOLINTBEGIN
48 ::ll::TypedStorage<8, 64, ::std::unordered_multimap<uint, ::ButtonChordTracker::ChordButtonDetails>> mChordMap;
49 ::ll::TypedStorage<8, 24, ::std::vector<int>> mChordState;
50 ::ll::TypedStorage<8, 24, ::std::vector<::std::vector<uint>>> mButtonSequences;
51 ::ll::TypedStorage<8, 16, ::std::map<uint, ::std::chrono::steady_clock::time_point>> mButtonLastInputTimes;
52 // NOLINTEND
53
54 public:
55 // prevent constructor by default
56 TrackerMappingAndState& operator=(TrackerMappingAndState const&);
57 TrackerMappingAndState(TrackerMappingAndState const&);
58 TrackerMappingAndState();
59
60 public:
61 // member functions
62 // NOLINTBEGIN
63 MCAPI ::ButtonChordTracker::TrackerMappingAndState& operator=(::ButtonChordTracker::TrackerMappingAndState&&);
64
65 MCAPI ~TrackerMappingAndState();
66 // NOLINTEND
67
68 public:
69 // destructor thunk
70 // NOLINTBEGIN
71 MCAPI void $dtor();
72 // NOLINTEND
73 };
74
75 using ChordMap = ::std::unordered_multimap<uint, ::ButtonChordTracker::ChordButtonDetails>;
76
77 using ChordState = ::std::vector<int>;
78
79 using ButtonSequences = ::std::vector<::std::vector<uint>>;
80
81 using ButtonLastInputTimes = ::std::map<uint, ::std::chrono::steady_clock::time_point>;
82
83public:
84 // member variables
85 // NOLINTBEGIN
86 ::ll::TypedStorage<8, 8, ::InputEventQueue&> mQueue;
87 ::ll::TypedStorage<8, 24, ::std::vector<::ButtonChordTracker::ChordButtonDetails*>> mChordsDown;
88 ::ll::TypedStorage<8, 64, ::std::unordered_map<int, ::ButtonChordTracker::TrackerMappingAndState>>
89 mPerIdTrackerData;
90 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::ButtonChordTracker::ChordHoldInfo>> mMinHoldTimeTracker;
91 // NOLINTEND
92
93public:
94 // prevent constructor by default
95 ButtonChordTracker& operator=(ButtonChordTracker const&);
96 ButtonChordTracker(ButtonChordTracker const&);
97 ButtonChordTracker();
98
99public:
100 // member functions
101 // NOLINTBEGIN
102 MCAPI void _raiseLongestChordSequences(::ButtonChordTracker::TrackerMappingAndState& trackerData, int controllerId);
103
104 MCAPI void clearMapping(int controllerId);
105
106 MCAPI void setMapping(::std::vector<::ChordButtonMapping> const& inputMapping, int controllerId);
107 // NOLINTEND
108};
Definition ButtonChordTracker.h:5
Definition InputEventQueue.h:5
Definition ButtonChordTracker.h:15
Definition ButtonChordTracker.h:17
Definition ButtonChordTracker.h:19
Definition ChordButtonMapping.h:5