From e6626f520caca5957c22e2d0807ce07322e70f78 Mon Sep 17 00:00:00 2001 From: briaguya <70942617+briaguya-ai@users.noreply.github.com> Date: Mon, 22 Apr 2024 20:48:07 -0400 Subject: [PATCH] replace hardcoded `uint16_t` with `CONTROLLERBUTTONS_T` (#504) * replace hardcoded `uint16_t` with `CONTROLLERBUTTONS_T` * clang format * update `OSContPad` --- include/libultraship/libultra/controller.h | 6 +++++- src/Context.cpp | 2 +- src/Context.h | 2 +- src/controller/controldeck/ControlDeck.cpp | 5 +++-- src/controller/controldeck/ControlDeck.h | 2 +- .../controldevice/controller/Controller.cpp | 9 +++++---- .../controldevice/controller/Controller.h | 10 +++++----- .../controller/ControllerButton.cpp | 10 +++++----- .../controldevice/controller/ControllerButton.h | 10 +++++----- .../mapping/ControllerButtonMapping.cpp | 5 +++-- .../mapping/ControllerButtonMapping.h | 12 ++++++++---- .../mapping/factories/ButtonMappingFactory.cpp | 17 +++++++++-------- .../mapping/factories/ButtonMappingFactory.h | 12 ++++++------ .../keyboard/KeyboardKeyToButtonMapping.cpp | 5 +++-- .../keyboard/KeyboardKeyToButtonMapping.h | 4 ++-- .../sdl/SDLAxisDirectionToButtonMapping.cpp | 4 ++-- .../sdl/SDLAxisDirectionToButtonMapping.h | 4 ++-- .../mapping/sdl/SDLButtonToButtonMapping.cpp | 6 +++--- .../mapping/sdl/SDLButtonToButtonMapping.h | 4 ++-- .../mapping/wiiu/WiiUButtonToButtonMapping.cpp | 7 ++++--- .../mapping/wiiu/WiiUButtonToButtonMapping.h | 6 +++--- src/window/gui/InputEditorWindow.cpp | 8 ++++---- src/window/gui/InputEditorWindow.h | 14 +++++++------- 23 files changed, 89 insertions(+), 75 deletions(-) diff --git a/include/libultraship/libultra/controller.h b/include/libultraship/libultra/controller.h index ca954b0..3a985f3 100644 --- a/include/libultraship/libultra/controller.h +++ b/include/libultraship/libultra/controller.h @@ -81,6 +81,10 @@ #define CONT_ADDR_CRC_ER 0x04 #define CONT_EEPROM_BUSY 0x80 +#ifndef CONTROLLERBUTTONS_T +#define CONTROLLERBUTTONS_T uint16_t +#endif + /* Buttons */ #define BTN_CRIGHT 0x00001 #define BTN_CLEFT 0x00002 @@ -117,7 +121,7 @@ typedef struct { } OSContStatus; // size = 0x04 typedef struct { - /* 0x00 */ uint16_t button; + /* 0x00 */ CONTROLLERBUTTONS_T button; /* 0x02 */ int8_t stick_x; /* 0x03 */ int8_t stick_y; /* 0x04 */ uint8_t err_no; diff --git a/src/Context.cpp b/src/Context.cpp index 8ba78df..610e7b1 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -224,7 +224,7 @@ void Context::InitResourceManager(const std::vector& otrFiles, #endif } -void Context::InitControlDeck(std::vector additionalBitmasks) { +void Context::InitControlDeck(std::vector additionalBitmasks) { if (GetControlDeck() != nullptr) { return; } diff --git a/src/Context.h b/src/Context.h index 6164d19..0a03ea7 100644 --- a/src/Context.h +++ b/src/Context.h @@ -59,7 +59,7 @@ class Context { void InitConsoleVariables(); void InitResourceManager(const std::vector& otrFiles = {}, const std::unordered_set& validHashes = {}, uint32_t reservedThreadCount = 1); - void InitControlDeck(std::vector additionalBitmasks = {}); + void InitControlDeck(std::vector additionalBitmasks = {}); void InitCrashHandler(); void InitAudio(); void InitGfxDebugger(); diff --git a/src/controller/controldeck/ControlDeck.cpp b/src/controller/controldeck/ControlDeck.cpp index 6b1e3c5..00c2c91 100644 --- a/src/controller/controldeck/ControlDeck.cpp +++ b/src/controller/controldeck/ControlDeck.cpp @@ -12,7 +12,8 @@ namespace LUS { -ControlDeck::ControlDeck(std::vector additionalBitmasks) : mPads(nullptr), mSinglePlayerMappingMode(false) { +ControlDeck::ControlDeck(std::vector additionalBitmasks) + : mPads(nullptr), mSinglePlayerMappingMode(false) { for (int32_t i = 0; i < MAXCONTROLLERS; i++) { mPorts.push_back(std::make_shared(i, std::make_shared(i, additionalBitmasks))); } @@ -20,7 +21,7 @@ ControlDeck::ControlDeck(std::vector additionalBitmasks) : mPads(nullp mDeviceIndexMappingManager = std::make_shared(); } -ControlDeck::ControlDeck() : ControlDeck(std::vector()) { +ControlDeck::ControlDeck() : ControlDeck(std::vector()) { } ControlDeck::~ControlDeck() { diff --git a/src/controller/controldeck/ControlDeck.h b/src/controller/controldeck/ControlDeck.h index cb6d0fb..f480a66 100644 --- a/src/controller/controldeck/ControlDeck.h +++ b/src/controller/controldeck/ControlDeck.h @@ -11,7 +11,7 @@ namespace LUS { class ControlDeck { public: ControlDeck(); - ControlDeck(std::vector additionalBitmasks); + ControlDeck(std::vector additionalBitmasks); ~ControlDeck(); void Init(uint8_t* controllerBits); diff --git a/src/controller/controldevice/controller/Controller.cpp b/src/controller/controldevice/controller/Controller.cpp index 4f25cf1..6cecf64 100644 --- a/src/controller/controldevice/controller/Controller.cpp +++ b/src/controller/controldevice/controller/Controller.cpp @@ -15,7 +15,8 @@ namespace LUS { -Controller::Controller(uint8_t portIndex, std::vector additionalBitmasks) : ControlDevice(portIndex) { +Controller::Controller(uint8_t portIndex, std::vector additionalBitmasks) + : ControlDevice(portIndex) { for (auto bitmask : { BUTTON_BITMASKS }) { mButtons[bitmask] = std::make_shared(portIndex, bitmask); } @@ -36,11 +37,11 @@ Controller::~Controller() { SPDLOG_TRACE("destruct controller"); } -std::unordered_map> Controller::GetAllButtons() { +std::unordered_map> Controller::GetAllButtons() { return mButtons; } -std::shared_ptr Controller::GetButton(uint16_t bitmask) { +std::shared_ptr Controller::GetButton(CONTROLLERBUTTONS_T bitmask) { return mButtons[bitmask]; } @@ -209,7 +210,7 @@ bool Controller::HasMappingsForLUSDeviceIndex(LUSDeviceIndex lusIndex) { return false; } -std::shared_ptr Controller::GetButtonByBitmask(uint16_t bitmask) { +std::shared_ptr Controller::GetButtonByBitmask(CONTROLLERBUTTONS_T bitmask) { return mButtons[bitmask]; } diff --git a/src/controller/controldevice/controller/Controller.h b/src/controller/controldevice/controller/Controller.h index 7a68356..ca4c1a5 100644 --- a/src/controller/controldevice/controller/Controller.h +++ b/src/controller/controldevice/controller/Controller.h @@ -23,7 +23,7 @@ namespace LUS { class Controller : public ControlDevice { public: Controller(uint8_t portIndex); - Controller(uint8_t portIndex, std::vector additionalBitmasks); + Controller(uint8_t portIndex, std::vector additionalBitmasks); ~Controller(); void ReloadAllMappingsFromConfig(); @@ -35,9 +35,9 @@ class Controller : public ControlDevice { void ClearAllMappings(); void ClearAllMappingsForDevice(LUSDeviceIndex lusDeviceIndex); void AddDefaultMappings(LUSDeviceIndex lusDeviceIndex); - std::unordered_map> GetAllButtons(); - std::shared_ptr GetButtonByBitmask(uint16_t bitmask); - std::shared_ptr GetButton(uint16_t bitmask); + std::unordered_map> GetAllButtons(); + std::shared_ptr GetButtonByBitmask(CONTROLLERBUTTONS_T bitmask); + std::shared_ptr GetButton(CONTROLLERBUTTONS_T bitmask); std::shared_ptr GetLeftStick(); std::shared_ptr GetRightStick(); std::shared_ptr GetGyro(); @@ -59,7 +59,7 @@ class Controller : public ControlDevice { void LoadButtonMappingFromConfig(std::string id); void SaveButtonMappingIdsToConfig(); - std::unordered_map> mButtons; + std::unordered_map> mButtons; std::shared_ptr mLeftStick, mRightStick; std::shared_ptr mGyro; std::shared_ptr mRumble; diff --git a/src/controller/controldevice/controller/ControllerButton.cpp b/src/controller/controldevice/controller/ControllerButton.cpp index aa3ba83..99f3789 100644 --- a/src/controller/controldevice/controller/ControllerButton.cpp +++ b/src/controller/controldevice/controller/ControllerButton.cpp @@ -10,7 +10,7 @@ #include namespace LUS { -ControllerButton::ControllerButton(uint8_t portIndex, uint16_t bitmask) +ControllerButton::ControllerButton(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask) : mPortIndex(portIndex), mBitmask(bitmask), mUseKeydownEventToCreateNewMapping(false), mKeyboardScancodeForNewMapping(LUS_KB_UNKNOWN) { } @@ -18,7 +18,7 @@ ControllerButton::ControllerButton(uint8_t portIndex, uint16_t bitmask) ControllerButton::~ControllerButton() { } -std::string ControllerButton::GetConfigNameFromBitmask(uint16_t bitmask) { +std::string ControllerButton::GetConfigNameFromBitmask(CONTROLLERBUTTONS_T bitmask) { switch (bitmask) { case BTN_A: return "A"; @@ -159,7 +159,7 @@ void ControllerButton::ClearAllButtonMappingsForDevice(LUSDeviceIndex lusDeviceI SaveButtonMappingIdsToConfig(); } -void ControllerButton::UpdatePad(uint16_t& padButtons) { +void ControllerButton::UpdatePad(CONTROLLERBUTTONS_T& padButtons) { for (const auto& [id, mapping] : mButtonMappings) { mapping->UpdatePad(padButtons); } @@ -171,7 +171,7 @@ bool ControllerButton::HasMappingsForLUSDeviceIndex(LUSDeviceIndex lusIndex) { } #ifdef __WIIU__ -bool ControllerButton::AddOrEditButtonMappingFromRawPress(uint16_t bitmask, std::string id) { +bool ControllerButton::AddOrEditButtonMappingFromRawPress(CONTROLLERBUTTONS_T bitmask, std::string id) { std::shared_ptr mapping = ButtonMappingFactory::CreateButtonMappingFromWiiUInput(mPortIndex, bitmask); @@ -203,7 +203,7 @@ void ControllerButton::AddDefaultMappings(LUSDeviceIndex lusDeviceIndex) { SaveButtonMappingIdsToConfig(); } #else -bool ControllerButton::AddOrEditButtonMappingFromRawPress(uint16_t bitmask, std::string id) { +bool ControllerButton::AddOrEditButtonMappingFromRawPress(CONTROLLERBUTTONS_T bitmask, std::string id) { std::shared_ptr mapping = nullptr; mUseKeydownEventToCreateNewMapping = true; diff --git a/src/controller/controldevice/controller/ControllerButton.h b/src/controller/controldevice/controller/ControllerButton.h index 294a902..5241aa7 100644 --- a/src/controller/controldevice/controller/ControllerButton.h +++ b/src/controller/controldevice/controller/ControllerButton.h @@ -15,7 +15,7 @@ namespace LUS { class ControllerButton { public: - ControllerButton(uint8_t portIndex, uint16_t bitmask); + ControllerButton(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask); ~ControllerButton(); std::shared_ptr GetButtonMappingById(std::string id); @@ -32,9 +32,9 @@ class ControllerButton { void ClearAllButtonMappings(); void ClearAllButtonMappingsForDevice(LUSDeviceIndex lusDeviceIndex); - bool AddOrEditButtonMappingFromRawPress(uint16_t bitmask, std::string id); + bool AddOrEditButtonMappingFromRawPress(CONTROLLERBUTTONS_T bitmask, std::string id); - void UpdatePad(uint16_t& padButtons); + void UpdatePad(CONTROLLERBUTTONS_T& padButtons); #ifndef __WIIU__ bool ProcessKeyboardEvent(LUS::KbEventType eventType, LUS::KbScancode scancode); @@ -44,9 +44,9 @@ class ControllerButton { private: uint8_t mPortIndex; - uint16_t mBitmask; + CONTROLLERBUTTONS_T mBitmask; std::unordered_map> mButtonMappings; - std::string GetConfigNameFromBitmask(uint16_t bitmask); + std::string GetConfigNameFromBitmask(CONTROLLERBUTTONS_T bitmask); bool mUseKeydownEventToCreateNewMapping; KbScancode mKeyboardScancodeForNewMapping; diff --git a/src/controller/controldevice/controller/mapping/ControllerButtonMapping.cpp b/src/controller/controldevice/controller/mapping/ControllerButtonMapping.cpp index ce4799f..dd9e8b1 100644 --- a/src/controller/controldevice/controller/mapping/ControllerButtonMapping.cpp +++ b/src/controller/controldevice/controller/mapping/ControllerButtonMapping.cpp @@ -6,14 +6,15 @@ #include "public/bridge/consolevariablebridge.h" namespace LUS { -ControllerButtonMapping::ControllerButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask) +ControllerButtonMapping::ControllerButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, + CONTROLLERBUTTONS_T bitmask) : ControllerInputMapping(lusDeviceIndex), mPortIndex(portIndex), mBitmask(bitmask) { } ControllerButtonMapping::~ControllerButtonMapping() { } -uint16_t ControllerButtonMapping::GetBitmask() { +CONTROLLERBUTTONS_T ControllerButtonMapping::GetBitmask() { return mBitmask; } diff --git a/src/controller/controldevice/controller/mapping/ControllerButtonMapping.h b/src/controller/controldevice/controller/mapping/ControllerButtonMapping.h index 06f1e84..532b00b 100644 --- a/src/controller/controldevice/controller/mapping/ControllerButtonMapping.h +++ b/src/controller/controldevice/controller/mapping/ControllerButtonMapping.h @@ -7,15 +7,19 @@ namespace LUS { +#ifndef CONTROLLERBUTTONS_T +#define CONTROLLERBUTTONS_T uint16_t +#endif + class ControllerButtonMapping : virtual public ControllerInputMapping { public: - ControllerButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask); + ControllerButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, CONTROLLERBUTTONS_T bitmask); ~ControllerButtonMapping(); virtual std::string GetButtonMappingId() = 0; - uint16_t GetBitmask(); - virtual void UpdatePad(uint16_t& padButtons) = 0; + CONTROLLERBUTTONS_T GetBitmask(); + virtual void UpdatePad(CONTROLLERBUTTONS_T& padButtons) = 0; virtual uint8_t GetMappingType(); void SetPortIndex(uint8_t portIndex); @@ -24,6 +28,6 @@ class ControllerButtonMapping : virtual public ControllerInputMapping { protected: uint8_t mPortIndex; - uint16_t mBitmask; + CONTROLLERBUTTONS_T mBitmask; }; } // namespace LUS diff --git a/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.cpp b/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.cpp index ab3b184..c2f7069 100644 --- a/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.cpp +++ b/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.cpp @@ -19,7 +19,8 @@ std::shared_ptr ButtonMappingFactory::CreateButtonMappi const std::string mappingCvarKey = "gControllers.ButtonMappings." + id; const std::string mappingClass = CVarGetString(StringHelper::Sprintf("%s.ButtonMappingClass", mappingCvarKey.c_str()).c_str(), ""); - uint16_t bitmask = CVarGetInteger(StringHelper::Sprintf("%s.Bitmask", mappingCvarKey.c_str()).c_str(), 0); + CONTROLLERBUTTONS_T bitmask = + CVarGetInteger(StringHelper::Sprintf("%s.Bitmask", mappingCvarKey.c_str()).c_str(), 0); if (!bitmask) { // all button mappings need bitmasks CVarClear(mappingCvarKey.c_str()); @@ -99,7 +100,7 @@ std::shared_ptr ButtonMappingFactory::CreateButtonMappi #ifdef __WIIU__ std::vector> ButtonMappingFactory::CreateDefaultWiiUButtonMappings(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, - uint16_t bitmask) { + CONTROLLERBUTTONS_T bitmask) { std::vector> mappings; auto wiiuIndexMapping = std::dynamic_pointer_cast( @@ -383,8 +384,8 @@ ButtonMappingFactory::CreateDefaultWiiUButtonMappings(LUSDeviceIndex lusDeviceIn } } -std::shared_ptr ButtonMappingFactory::CreateButtonMappingFromWiiUInput(uint8_t portIndex, - uint16_t bitmask) { +std::shared_ptr +ButtonMappingFactory::CreateButtonMappingFromWiiUInput(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask) { for (auto [lusDeviceIndex, indexMapping] : Context::GetInstance()->GetControlDeck()->GetDeviceIndexMappingManager()->GetAllDeviceIndexMappings()) { auto wiiuIndexMapping = std::dynamic_pointer_cast(indexMapping); @@ -474,7 +475,7 @@ std::shared_ptr ButtonMappingFactory::CreateButtonMappi } #else std::vector> -ButtonMappingFactory::CreateDefaultKeyboardButtonMappings(uint8_t portIndex, uint16_t bitmask) { +ButtonMappingFactory::CreateDefaultKeyboardButtonMappings(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask) { std::vector> mappings; switch (bitmask) { @@ -535,7 +536,7 @@ ButtonMappingFactory::CreateDefaultKeyboardButtonMappings(uint8_t portIndex, uin std::vector> ButtonMappingFactory::CreateDefaultSDLButtonMappings(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, - uint16_t bitmask) { + CONTROLLERBUTTONS_T bitmask) { std::vector> mappings; auto sdlIndexMapping = std::dynamic_pointer_cast( @@ -625,8 +626,8 @@ ButtonMappingFactory::CreateDefaultSDLButtonMappings(LUSDeviceIndex lusDeviceInd return mappings; } -std::shared_ptr ButtonMappingFactory::CreateButtonMappingFromSDLInput(uint8_t portIndex, - uint16_t bitmask) { +std::shared_ptr +ButtonMappingFactory::CreateButtonMappingFromSDLInput(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask) { std::unordered_map sdlControllers; std::shared_ptr mapping = nullptr; for (auto [lusIndex, indexMapping] : diff --git a/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.h b/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.h index 7f65e5b..c198e7d 100644 --- a/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.h +++ b/src/controller/controldevice/controller/mapping/factories/ButtonMappingFactory.h @@ -11,19 +11,19 @@ class ButtonMappingFactory { static std::shared_ptr CreateButtonMappingFromConfig(uint8_t portIndex, std::string id); #ifdef __WIIU__ static std::vector> - CreateDefaultWiiUButtonMappings(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask); + CreateDefaultWiiUButtonMappings(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, CONTROLLERBUTTONS_T bitmask); static std::shared_ptr CreateButtonMappingFromWiiUInput(uint8_t portIndex, - uint16_t bitmask); + CONTROLLERBUTTONS_T bitmask); #else - static std::vector> CreateDefaultKeyboardButtonMappings(uint8_t portIndex, - uint16_t bitmask); + static std::vector> + CreateDefaultKeyboardButtonMappings(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask); static std::vector> - CreateDefaultSDLButtonMappings(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask); + CreateDefaultSDLButtonMappings(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, CONTROLLERBUTTONS_T bitmask); static std::shared_ptr CreateButtonMappingFromSDLInput(uint8_t portIndex, - uint16_t bitmask); + CONTROLLERBUTTONS_T bitmask); #endif }; } // namespace LUS diff --git a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.cpp b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.cpp index 54fbe26..85abfdc 100644 --- a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.cpp +++ b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.cpp @@ -5,12 +5,13 @@ #include "Context.h" namespace LUS { -KeyboardKeyToButtonMapping::KeyboardKeyToButtonMapping(uint8_t portIndex, uint16_t bitmask, KbScancode scancode) +KeyboardKeyToButtonMapping::KeyboardKeyToButtonMapping(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask, + KbScancode scancode) : ControllerInputMapping(LUSDeviceIndex::Keyboard), ControllerButtonMapping(LUSDeviceIndex::Keyboard, portIndex, bitmask), KeyboardKeyToAnyMapping(scancode) { } -void KeyboardKeyToButtonMapping::UpdatePad(uint16_t& padButtons) { +void KeyboardKeyToButtonMapping::UpdatePad(CONTROLLERBUTTONS_T& padButtons) { if (Context::GetInstance()->GetControlDeck()->KeyboardGameInputBlocked()) { return; } diff --git a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.h b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.h index 61e557d..875de5c 100644 --- a/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.h +++ b/src/controller/controldevice/controller/mapping/keyboard/KeyboardKeyToButtonMapping.h @@ -4,8 +4,8 @@ namespace LUS { class KeyboardKeyToButtonMapping final : public KeyboardKeyToAnyMapping, public ControllerButtonMapping { public: - KeyboardKeyToButtonMapping(uint8_t portIndex, uint16_t bitmask, KbScancode scancode); - void UpdatePad(uint16_t& padButtons) override; + KeyboardKeyToButtonMapping(uint8_t portIndex, CONTROLLERBUTTONS_T bitmask, KbScancode scancode); + void UpdatePad(CONTROLLERBUTTONS_T& padButtons) override; uint8_t GetMappingType() override; std::string GetButtonMappingId() override; void SaveToConfig() override; diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.cpp b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.cpp index fb7751c..77bd5c2 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.cpp +++ b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.cpp @@ -7,13 +7,13 @@ namespace LUS { SDLAxisDirectionToButtonMapping::SDLAxisDirectionToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, - uint16_t bitmask, int32_t sdlControllerAxis, + CONTROLLERBUTTONS_T bitmask, int32_t sdlControllerAxis, int32_t axisDirection) : ControllerInputMapping(lusDeviceIndex), ControllerButtonMapping(lusDeviceIndex, portIndex, bitmask), SDLAxisDirectionToAnyMapping(lusDeviceIndex, sdlControllerAxis, axisDirection) { } -void SDLAxisDirectionToButtonMapping::UpdatePad(uint16_t& padButtons) { +void SDLAxisDirectionToButtonMapping::UpdatePad(CONTROLLERBUTTONS_T& padButtons) { if (!ControllerLoaded()) { return; } diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.h b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.h index 96efff1..43b9399 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.h +++ b/src/controller/controldevice/controller/mapping/sdl/SDLAxisDirectionToButtonMapping.h @@ -4,9 +4,9 @@ namespace LUS { class SDLAxisDirectionToButtonMapping final : public ControllerButtonMapping, public SDLAxisDirectionToAnyMapping { public: - SDLAxisDirectionToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask, + SDLAxisDirectionToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, CONTROLLERBUTTONS_T bitmask, int32_t sdlControllerAxis, int32_t axisDirection); - void UpdatePad(uint16_t& padButtons) override; + void UpdatePad(CONTROLLERBUTTONS_T& padButtons) override; uint8_t GetMappingType() override; std::string GetButtonMappingId() override; void SaveToConfig() override; diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.cpp b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.cpp index db0f8a3..38e75c9 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.cpp +++ b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.cpp @@ -6,13 +6,13 @@ #include "Context.h" namespace LUS { -SDLButtonToButtonMapping::SDLButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask, - int32_t sdlControllerButton) +SDLButtonToButtonMapping::SDLButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, + CONTROLLERBUTTONS_T bitmask, int32_t sdlControllerButton) : ControllerInputMapping(lusDeviceIndex), ControllerButtonMapping(lusDeviceIndex, portIndex, bitmask), SDLButtonToAnyMapping(lusDeviceIndex, sdlControllerButton) { } -void SDLButtonToButtonMapping::UpdatePad(uint16_t& padButtons) { +void SDLButtonToButtonMapping::UpdatePad(CONTROLLERBUTTONS_T& padButtons) { if (!ControllerLoaded()) { return; } diff --git a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.h b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.h index 9d6e018..83b2f41 100644 --- a/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.h +++ b/src/controller/controldevice/controller/mapping/sdl/SDLButtonToButtonMapping.h @@ -4,9 +4,9 @@ namespace LUS { class SDLButtonToButtonMapping final : public SDLButtonToAnyMapping, public ControllerButtonMapping { public: - SDLButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask, + SDLButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, CONTROLLERBUTTONS_T bitmask, int32_t sdlControllerButton); - void UpdatePad(uint16_t& padButtons) override; + void UpdatePad(CONTROLLERBUTTONS_T& padButtons) override; uint8_t GetMappingType() override; std::string GetButtonMappingId() override; void SaveToConfig() override; diff --git a/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.cpp b/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.cpp index 3f06722..5765e60 100644 --- a/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.cpp +++ b/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.cpp @@ -7,13 +7,14 @@ #include "Context.h" namespace LUS { -WiiUButtonToButtonMapping::WiiUButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask, - bool isNunchuk, bool isClassic, uint32_t wiiuControllerButton) +WiiUButtonToButtonMapping::WiiUButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, + CONTROLLERBUTTONS_T bitmask, bool isNunchuk, bool isClassic, + uint32_t wiiuControllerButton) : ControllerInputMapping(lusDeviceIndex), ControllerButtonMapping(lusDeviceIndex, portIndex, bitmask), WiiUButtonToAnyMapping(lusDeviceIndex, isNunchuk, isClassic, wiiuControllerButton) { } -void WiiUButtonToButtonMapping::UpdatePad(uint16_t& padButtons) { +void WiiUButtonToButtonMapping::UpdatePad(CONTROLLERBUTTONS_T& padButtons) { if (Context::GetInstance()->GetControlDeck()->GamepadGameInputBlocked()) { return; } diff --git a/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.h b/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.h index 6b928f4..9778fd2 100644 --- a/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.h +++ b/src/controller/controldevice/controller/mapping/wiiu/WiiUButtonToButtonMapping.h @@ -5,9 +5,9 @@ namespace LUS { class WiiUButtonToButtonMapping final : public WiiUButtonToAnyMapping, public ControllerButtonMapping { public: - WiiUButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, uint16_t bitmask, bool isNunchuk, - bool isClassic, uint32_t wiiuControllerButton); - void UpdatePad(uint16_t& padButtons) override; + WiiUButtonToButtonMapping(LUSDeviceIndex lusDeviceIndex, uint8_t portIndex, CONTROLLERBUTTONS_T bitmask, + bool isNunchuk, bool isClassic, uint32_t wiiuControllerButton); + void UpdatePad(CONTROLLERBUTTONS_T& padButtons) override; uint8_t GetMappingType() override; std::string GetButtonMappingId() override; void SaveToConfig() override; diff --git a/src/window/gui/InputEditorWindow.cpp b/src/window/gui/InputEditorWindow.cpp index 474e860..6c0e66f 100644 --- a/src/window/gui/InputEditorWindow.cpp +++ b/src/window/gui/InputEditorWindow.cpp @@ -180,7 +180,7 @@ void InputEditorWindow::DrawInputChip(const char* buttonName, ImVec4 color = CHI ImGui::EndDisabled(); } -void InputEditorWindow::DrawButtonLineAddMappingButton(uint8_t port, uint16_t bitmask) { +void InputEditorWindow::DrawButtonLineAddMappingButton(uint8_t port, CONTROLLERBUTTONS_T bitmask) { ImGui::PushStyleVar(ImGuiStyleVar_ButtonTextAlign, ImVec2(1.0f, 0.5f)); auto popupId = StringHelper::Sprintf("addButtonMappingPopup##%d-%d", port, bitmask); if (ImGui::Button(StringHelper::Sprintf("%s###addButtonMappingButton%d-%d", ICON_FA_PLUS, port, bitmask).c_str(), @@ -209,7 +209,7 @@ void InputEditorWindow::DrawButtonLineAddMappingButton(uint8_t port, uint16_t bi } } -void InputEditorWindow::DrawButtonLineEditMappingButton(uint8_t port, uint16_t bitmask, std::string id) { +void InputEditorWindow::DrawButtonLineEditMappingButton(uint8_t port, CONTROLLERBUTTONS_T bitmask, std::string id) { auto mapping = LUS::Context::GetInstance() ->GetControlDeck() ->GetControllerByPort(port) @@ -352,7 +352,7 @@ void InputEditorWindow::DrawButtonLineEditMappingButton(uint8_t port, uint16_t b ImGui::SameLine(0, 4.0f); } -void InputEditorWindow::DrawButtonLine(const char* buttonName, uint8_t port, uint16_t bitmask, +void InputEditorWindow::DrawButtonLine(const char* buttonName, uint8_t port, CONTROLLERBUTTONS_T bitmask, ImVec4 color = CHIP_COLOR_N64_GREY) { ImGui::NewLine(); ImGui::SameLine(32.0f); @@ -922,7 +922,7 @@ void InputEditorWindow::DrawGyroSection(uint8_t port) { } } -void InputEditorWindow::DrawButtonDeviceIcons(uint8_t portIndex, std::set bitmasks) { +void InputEditorWindow::DrawButtonDeviceIcons(uint8_t portIndex, std::set bitmasks) { std::set allLusDeviceIndices; allLusDeviceIndices.insert(LUSDeviceIndex::Keyboard); for (auto [lusIndex, mapping] : Context::GetInstance() diff --git a/src/window/gui/InputEditorWindow.h b/src/window/gui/InputEditorWindow.h index 338b8d1..72a4e3a 100644 --- a/src/window/gui/InputEditorWindow.h +++ b/src/window/gui/InputEditorWindow.h @@ -33,9 +33,9 @@ class InputEditorWindow : public GuiWindow { private: void DrawStickDirectionLine(const char* axisDirectionName, uint8_t port, uint8_t stick, Direction direction, ImVec4 color); - void DrawButtonLine(const char* buttonName, uint8_t port, uint16_t bitmask, ImVec4 color); - void DrawButtonLineEditMappingButton(uint8_t port, uint16_t bitmask, std::string id); - void DrawButtonLineAddMappingButton(uint8_t port, uint16_t bitmask); + void DrawButtonLine(const char* buttonName, uint8_t port, CONTROLLERBUTTONS_T bitmask, ImVec4 color); + void DrawButtonLineEditMappingButton(uint8_t port, CONTROLLERBUTTONS_T bitmask, std::string id); + void DrawButtonLineAddMappingButton(uint8_t port, CONTROLLERBUTTONS_T bitmask); void DrawStickDirectionLineEditMappingButton(uint8_t port, uint8_t stick, Direction direction, std::string id); void DrawStickDirectionLineAddMappingButton(uint8_t port, uint8_t stick, Direction direction); @@ -57,7 +57,7 @@ class InputEditorWindow : public GuiWindow { int32_t mMappingInputBlockTimer; // mBitmaskToMappingIds[port][bitmask] = { id0, id1, ... } - std::unordered_map>> mBitmaskToMappingIds; + std::unordered_map>> mBitmaskToMappingIds; // mStickDirectionToMappingIds[port][stick][direction] = { id0, id1, ... } std::unordered_map>>> @@ -69,9 +69,9 @@ class InputEditorWindow : public GuiWindow { void GetButtonColorsForLUSDeviceIndex(LUSDeviceIndex lusIndex, ImVec4& buttonColor, ImVec4& buttonHoveredColor); void DrawPortTab(uint8_t portIndex); void DrawDevicesTab(); - std::set mButtonsBitmasks; - std::set mDpadBitmasks; - void DrawButtonDeviceIcons(uint8_t portIndex, std::set bitmasks); + std::set mButtonsBitmasks; + std::set mDpadBitmasks; + void DrawButtonDeviceIcons(uint8_t portIndex, std::set bitmasks); void DrawAnalogStickDeviceIcons(uint8_t portIndex, LUS::Stick stick); void DrawRumbleDeviceIcons(uint8_t portIndex); void DrawGyroDeviceIcons(uint8_t portIndex);