42 std::shared_ptr<Ship::ControlDeck> controlDeck, std::shared_ptr<Ship::Window> window);
64 void DrawAnalogPreview(
const char* label, ImVec2 stick,
float deadzone = 0,
bool gyro =
false);
73 void OnInit(
const nlohmann::json& initArgs = nlohmann::json::object())
override;
90 void DrawStickDirectionLine(
const char* axisDirectionName, uint8_t port, uint8_t stick,
Ship::Direction direction,
100 void DrawButtonLine(
const char* buttonName, uint8_t port,
CONTROLLERBUTTONS_T bitmask, ImVec4 color);
108 void DrawButtonLineEditMappingButton(uint8_t port,
CONTROLLERBUTTONS_T bitmask, std::string
id);
124 void DrawStickDirectionLineEditMappingButton(uint8_t port, uint8_t stick,
Ship::Direction direction,
133 void DrawStickDirectionLineAddMappingButton(uint8_t port, uint8_t stick,
Ship::Direction direction);
142 void DrawStickSection(uint8_t port, uint8_t stick, int32_t
id, ImVec4 color);
148 void DrawRumbleSection(uint8_t port);
155 void DrawRemoveRumbleMappingButton(uint8_t port, std::string
id);
161 void DrawAddRumbleMappingButton(uint8_t port);
167 void DrawLEDSection(uint8_t port);
174 void DrawRemoveLEDMappingButton(uint8_t port, std::string
id);
180 void DrawAddLEDMappingButton(uint8_t port);
186 void DrawGyroSection(uint8_t port);
193 void DrawRemoveGyroMappingButton(uint8_t port, std::string
id);
199 void DrawAddGyroMappingButton(uint8_t port);
201 int32_t mGameInputBlockTimer;
202 int32_t mMappingInputBlockTimer;
203 int32_t mRumbleTimer;
204 std::shared_ptr<Ship::ControllerRumbleMapping> mRumbleMappingToTest;
207 std::unordered_map<uint8_t, std::unordered_map<CONTROLLERBUTTONS_T, std::vector<std::string>>> mBitmaskToMappingIds;
210 std::unordered_map<uint8_t,
211 std::unordered_map<uint8_t, std::unordered_map<Ship::Direction, std::vector<std::string>>>>
212 mStickDirectionToMappingIds;
218 void UpdateBitmaskToMappingIds(uint8_t port);
224 void UpdateStickDirectionToMappingIds(uint8_t port);
233 ImVec4& buttonHoveredColor);
239 void DrawPortTab(uint8_t portIndex);
241 std::set<CONTROLLERBUTTONS_T> mButtonsBitmasks;
242 std::set<CONTROLLERBUTTONS_T> mDpadBitmasks;
243 bool mInputEditorPopupOpen;
249 void DrawSetDefaultsButton(uint8_t portIndex);
255 void DrawClearAllButton(uint8_t portIndex);
261 void DrawDeviceToggles(uint8_t portIndex);
264 void OffsetMappingPopup();
266 std::shared_ptr<Ship::ControlDeck> mControlDeck;
267 std::shared_ptr<Ship::Window> mWindow;