From 51a5bbd67405eb58cbc1077df75c25c488451a31 Mon Sep 17 00:00:00 2001 From: Maschell Date: Sun, 5 Jan 2025 13:36:38 +0100 Subject: [PATCH] WUPSButtonComboAPI: Add support for GetControllerTypeStr --- include/wups/button_combo/api.h | 11 +++++++++++ libraries/libwups/button_combo.cpp | 25 +++++++++++++++++++++++++ libraries/libwups/button_comboCPP.cpp | 4 ++++ 3 files changed, 40 insertions(+) diff --git a/include/wups/button_combo/api.h b/include/wups/button_combo/api.h index 7b36b7f..8d97bd3 100644 --- a/include/wups/button_combo/api.h +++ b/include/wups/button_combo/api.h @@ -18,6 +18,16 @@ extern "C" { **/ const char *WUPSButtonComboAPI_GetStatusStr(WUPSButtonCombo_Error status); +/** + * @brief Get a string representation of the specified controller type. + * + * This function returns a string representation of the provided controller type. + * + * @param controller The controller to get the string representation for. + * @return A pointer to a string describing the provided controller. + **/ +const char *WUPSButtonComboAPI_GetControllerTypeStr(WUPSButtonCombo_ControllerTypes controller); + /** * @brief Adds a button combo which triggers a callback if a certain button combination is pressed on any controller. * @@ -162,6 +172,7 @@ WUPSButtonCombo_Error WUPSButtonComboAPI_DetectButtonCombo_Blocking(const WUPSBu namespace WUPSButtonComboAPI { std::string_view GetStatusStr(WUPSButtonCombo_Error status); + std::string_view GetControllerTypeStr(WUPSButtonCombo_ControllerTypes controller); std::optional CreateComboPressDownEx(std::string_view label, WUPSButtonCombo_ControllerTypes controllerMask, diff --git a/libraries/libwups/button_combo.cpp b/libraries/libwups/button_combo.cpp index 0f1a36a..3cebe32 100644 --- a/libraries/libwups/button_combo.cpp +++ b/libraries/libwups/button_combo.cpp @@ -66,6 +66,31 @@ const char *WUPSButtonComboAPI_GetStatusStr(const WUPSButtonCombo_Error status) return "WUPS_BUTTON_COMBO_ERROR_UNKNOWN_ERROR"; } +const char *WUPSButtonComboAPI_GetControllerTypeStr(const WUPSButtonCombo_ControllerTypes controller) { + switch (controller) { + case WUPS_BUTTON_COMBO_CONTROLLER_VPAD_0: + return "WUPS_BUTTON_COMBO_CONTROLLER_VPAD_0"; + case WUPS_BUTTON_COMBO_CONTROLLER_VPAD_1: + return "WUPS_BUTTON_COMBO_CONTROLLER_VPAD_1"; + case WUPS_BUTTON_COMBO_CONTROLLER_WPAD_0: + return "WUPS_BUTTON_COMBO_CONTROLLER_WPAD_0"; + case WUPS_BUTTON_COMBO_CONTROLLER_WPAD_1: + return "WUPS_BUTTON_COMBO_CONTROLLER_WPAD_1"; + case WUPS_BUTTON_COMBO_CONTROLLER_WPAD_2: + return "WUPS_BUTTON_COMBO_CONTROLLER_WPAD_2"; + case WUPS_BUTTON_COMBO_CONTROLLER_WPAD_3: + return "WUPS_BUTTON_COMBO_CONTROLLER_WPAD_3"; + case WUPS_BUTTON_COMBO_CONTROLLER_WPAD_4: + return "WUPS_BUTTON_COMBO_CONTROLLER_WPAD_4"; + case WUPS_BUTTON_COMBO_CONTROLLER_WPAD_5: + return "WUPS_BUTTON_COMBO_CONTROLLER_WPAD_5"; + case WUPS_BUTTON_COMBO_CONTROLLER_WPAD_6: + return "WUPS_BUTTON_COMBO_CONTROLLER_WPAD_6"; + default:; + } + return ""; +} + static WUPSButtonCombo_Error WUPSButtonComboAPI_AddButtonComboPressEx(const char *label, const WUPSButtonCombo_Buttons combo, const WUPSButtonCombo_ComboCallback callback, diff --git a/libraries/libwups/button_comboCPP.cpp b/libraries/libwups/button_comboCPP.cpp index c14d4c3..7771d95 100644 --- a/libraries/libwups/button_comboCPP.cpp +++ b/libraries/libwups/button_comboCPP.cpp @@ -7,6 +7,10 @@ namespace WUPSButtonComboAPI { return WUPSButtonComboAPI_GetStatusStr(status); } + std::string_view GetControllerTypeStr(const WUPSButtonCombo_ControllerTypes controller) { + return WUPSButtonComboAPI_GetControllerTypeStr(controller); + } + std::optional CreateComboPressDownEx(const std::string_view label, const WUPSButtonCombo_ControllerTypes controllerMask, const WUPSButtonCombo_Buttons combo,