diff --git a/include/buttoncombo/api.h b/include/buttoncombo/api.h index fee853f..a07712c 100644 --- a/include/buttoncombo/api.h +++ b/include/buttoncombo/api.h @@ -13,6 +13,13 @@ extern "C" { **/ const char *ButtonComboModule_GetStatusStr(ButtonComboModule_Error status); +/** + * Returns a ButtonComboModule_ControllerTypes as a string + * @param controller + * @return String representation of a given controller +**/ +const char *ButtonComboModule_GetControllerTypeStr(ButtonComboModule_ControllerTypes controller); + /** * This function has to be called before any other function of this lib (except ButtonComboModule_GetVersion) can be used. * @@ -134,6 +141,8 @@ ButtonComboModule_Error ButtonComboModule_DetectButtonCombo_Blocking(const Butto namespace ButtonComboModule { std::string_view GetStatusStr(ButtonComboModule_Error status); + std::string_view GetControllerTypeStr(ButtonComboModule_ControllerTypes controller); + std::optional CreateComboPressDownEx(std::string_view label, ButtonComboModule_ControllerTypes controllerMask, ButtonComboModule_Buttons combo, diff --git a/source/cppApi.cpp b/source/cppApi.cpp index 94e10c1..dc96913 100644 --- a/source/cppApi.cpp +++ b/source/cppApi.cpp @@ -10,6 +10,10 @@ namespace ButtonComboModule { return ButtonComboModule_GetStatusStr(status); } + std::string_view GetControllerTypeStr(const ButtonComboModule_ControllerTypes controller) { + return ButtonComboModule_GetControllerTypeStr(controller); + } + std::optional CreateComboPressDownEx(const std::string_view label, const ButtonComboModule_ControllerTypes controllerMask, const ButtonComboModule_Buttons combo, @@ -102,19 +106,19 @@ namespace ButtonComboModule { return std::move(*res); } - ButtonCombo CreatePressDown(const std::string_view label, - const ButtonComboModule_Buttons combo, - const ButtonComboModule_ComboCallback callback, - void *context, - ButtonComboModule_ComboStatus &outStatus) { + ButtonCombo CreateComboPressDown(const std::string_view label, + const ButtonComboModule_Buttons combo, + const ButtonComboModule_ComboCallback callback, + void *context, + ButtonComboModule_ComboStatus &outStatus) { return CreateComboPressDownEx(label, BUTTON_COMBO_MODULE_CONTROLLER_ALL, combo, callback, context, false, outStatus); } - ButtonCombo CreatePressDownObserver(const std::string_view label, - const ButtonComboModule_Buttons combo, - const ButtonComboModule_ComboCallback callback, - void *context, - ButtonComboModule_ComboStatus &outStatus) { + ButtonCombo CreateComboPressDownObserver(const std::string_view label, + const ButtonComboModule_Buttons combo, + const ButtonComboModule_ComboCallback callback, + void *context, + ButtonComboModule_ComboStatus &outStatus) { return CreateComboPressDownEx(label, BUTTON_COMBO_MODULE_CONTROLLER_ALL, combo, callback, context, true, outStatus); } diff --git a/source/utils.cpp b/source/utils.cpp index 6044956..69e4310 100644 --- a/source/utils.cpp +++ b/source/utils.cpp @@ -62,6 +62,31 @@ const char *ButtonComboModule_GetStatusStr(const ButtonComboModule_Error status) return "BUTTON_COMBO_MODULE_ERROR_UNKNOWN_ERROR"; } +const char *ButtonComboModule_GetControllerTypeStr(const ButtonComboModule_ControllerTypes controller) { + switch (controller) { + case BUTTON_COMBO_MODULE_CONTROLLER_VPAD_0: + return "BUTTON_COMBO_MODULE_CONTROLLER_VPAD_0"; + case BUTTON_COMBO_MODULE_CONTROLLER_VPAD_1: + return "BUTTON_COMBO_MODULE_CONTROLLER_VPAD_1"; + case BUTTON_COMBO_MODULE_CONTROLLER_WPAD_0: + return "BUTTON_COMBO_MODULE_CONTROLLER_WPAD_0"; + case BUTTON_COMBO_MODULE_CONTROLLER_WPAD_1: + return "BUTTON_COMBO_MODULE_CONTROLLER_WPAD_1"; + case BUTTON_COMBO_MODULE_CONTROLLER_WPAD_2: + return "BUTTON_COMBO_MODULE_CONTROLLER_WPAD_2"; + case BUTTON_COMBO_MODULE_CONTROLLER_WPAD_3: + return "BUTTON_COMBO_MODULE_CONTROLLER_WPAD_3"; + case BUTTON_COMBO_MODULE_CONTROLLER_WPAD_4: + return "BUTTON_COMBO_MODULE_CONTROLLER_WPAD_4"; + case BUTTON_COMBO_MODULE_CONTROLLER_WPAD_5: + return "BUTTON_COMBO_MODULE_CONTROLLER_WPAD_5"; + case BUTTON_COMBO_MODULE_CONTROLLER_WPAD_6: + return "BUTTON_COMBO_MODULE_CONTROLLER_WPAD_6"; + default:; + } + return ""; +} + ButtonComboModule_Error ButtonComboModule_InitLibrary() { if (sLibInitDone) { return BUTTON_COMBO_MODULE_ERROR_SUCCESS;