mirror of
https://github.com/wiiu-env/WiiUPluginSystem.git
synced 2026-10-02 13:56:39 -05:00
ButtonComboAPI: Add C++ wrapper for button combo api
This commit is contained in:
57
include/wups/button_combo/WUPSButtonCombo.h
Normal file
57
include/wups/button_combo/WUPSButtonCombo.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#include "defines.h"
|
||||
|
||||
#include <coreinit/debug.h>
|
||||
#include <optional>
|
||||
|
||||
class WUPSButtonCombo {
|
||||
public:
|
||||
static std::optional<WUPSButtonCombo> Create(const WUPSButtonCombo_ComboOptions &options,
|
||||
WUPSButtonCombo_ComboStatus &outStatus,
|
||||
WUPSButtonCombo_Error &outError) noexcept;
|
||||
|
||||
static WUPSButtonCombo Create(const WUPSButtonCombo_ComboOptions &options,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
|
||||
~WUPSButtonCombo();
|
||||
WUPSButtonCombo(const WUPSButtonCombo &) = delete;
|
||||
|
||||
WUPSButtonCombo(WUPSButtonCombo &&other) noexcept;
|
||||
|
||||
WUPSButtonCombo &operator=(const WUPSButtonCombo &) = delete;
|
||||
|
||||
WUPSButtonCombo &operator=(WUPSButtonCombo &&other) noexcept;
|
||||
|
||||
[[nodiscard]] WUPSButtonCombo_ComboHandle getHandle() const;
|
||||
|
||||
WUPSButtonCombo_Error GetButtonComboStatus(WUPSButtonCombo_ComboStatus &outStatus) const;
|
||||
|
||||
[[nodiscard]] WUPSButtonCombo_Error UpdateButtonComboMeta(const WUPSButtonCombo_MetaOptions &metaOptions) const;
|
||||
|
||||
[[nodiscard]] WUPSButtonCombo_Error UpdateButtonComboCallback(const WUPSButtonCombo_CallbackOptions &callbackOptions) const;
|
||||
|
||||
[[nodiscard]] WUPSButtonCombo_Error UpdateControllerMask(WUPSButtonCombo_ControllerTypes controllerMask,
|
||||
WUPSButtonCombo_ComboStatus &outStatus) const;
|
||||
|
||||
[[nodiscard]] WUPSButtonCombo_Error UpdateButtonCombo(WUPSButtonCombo_Buttons combo,
|
||||
WUPSButtonCombo_ComboStatus &outStatus) const;
|
||||
|
||||
[[nodiscard]] WUPSButtonCombo_Error UpdateHoldDuration(uint32_t holdDurationInFrames) const;
|
||||
|
||||
[[nodiscard]] WUPSButtonCombo_Error GetButtonComboMeta(WUPSButtonCombo_MetaOptionsOut &outOptions) const;
|
||||
|
||||
WUPSButtonCombo_Error GetButtonComboCallback(WUPSButtonCombo_CallbackOptions &outOptions) const;
|
||||
|
||||
WUPSButtonCombo_Error GetButtonComboInfoEx(WUPSButtonCombo_ButtonComboInfoEx &outOptions) const;
|
||||
|
||||
private:
|
||||
void ReleaseButtonComboHandle();
|
||||
|
||||
explicit WUPSButtonCombo(WUPSButtonCombo_ComboHandle handle);
|
||||
|
||||
WUPSButtonCombo_ComboHandle mHandle = WUPSButtonCombo_ComboHandle(nullptr);
|
||||
};
|
||||
#endif
|
||||
@@ -154,3 +154,110 @@ WUPSButtonCombo_Error WUPSButtonComboAPI_DetectButtonCombo_Blocking(const WUPSBu
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace WUPSButtonComboAPI {
|
||||
|
||||
|
||||
std::string_view GetStatusStr(WUPSButtonCombo_Error status);
|
||||
|
||||
std::optional<WUPSButtonCombo> CreateComboPressDownEx(std::string_view label,
|
||||
WUPSButtonCombo_ControllerTypes controllerMask,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
bool observer,
|
||||
WUPSButtonCombo_ComboStatus &outStatus,
|
||||
WUPSButtonCombo_Error &outError) noexcept;
|
||||
|
||||
std::optional<WUPSButtonCombo> CreateComboPressDown(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus,
|
||||
WUPSButtonCombo_Error &outError) noexcept;
|
||||
|
||||
std::optional<WUPSButtonCombo> CreateComboPressDownObserver(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus,
|
||||
WUPSButtonCombo_Error &outError) noexcept;
|
||||
|
||||
std::optional<WUPSButtonCombo> CreateComboHoldEx(std::string_view label,
|
||||
WUPSButtonCombo_ControllerTypes controllerMask,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
uint32_t holdDurationInMs,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
bool observer,
|
||||
WUPSButtonCombo_ComboStatus &outStatus,
|
||||
WUPSButtonCombo_Error &outError) noexcept;
|
||||
|
||||
std::optional<WUPSButtonCombo> CreateComboHold(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
uint32_t holdDurationInMs,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus,
|
||||
WUPSButtonCombo_Error &outError) noexcept;
|
||||
|
||||
std::optional<WUPSButtonCombo> CreateComboHoldObserver(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
uint32_t holdDurationInMs,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus,
|
||||
WUPSButtonCombo_Error &outError) noexcept;
|
||||
|
||||
|
||||
WUPSButtonCombo CreateComboPressDownEx(std::string_view label,
|
||||
WUPSButtonCombo_ControllerTypes controllerMask,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
bool observer,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
|
||||
WUPSButtonCombo CreateComboPressDown(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
|
||||
WUPSButtonCombo CreateComboPressDownObserver(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
|
||||
WUPSButtonCombo CreateComboHoldEx(std::string_view label,
|
||||
WUPSButtonCombo_ControllerTypes controllerMask,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
uint32_t holdDurationInMs,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
bool observer,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
|
||||
WUPSButtonCombo CreateComboHold(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
uint32_t holdDurationInMs,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
|
||||
WUPSButtonCombo CreateComboHoldObserver(std::string_view label,
|
||||
WUPSButtonCombo_Buttons combo,
|
||||
uint32_t holdDurationInMs,
|
||||
WUPSButtonCombo_ComboCallback callback,
|
||||
void *context,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
WUPSButtonCombo_Error CheckComboAvailable(const WUPSButtonCombo_ButtonComboOptions &options,
|
||||
WUPSButtonCombo_ComboStatus &outStatus);
|
||||
|
||||
WUPSButtonCombo_Error DetectButtonCombo_Blocking(const WUPSButtonCombo_DetectButtonComboOptions &options,
|
||||
WUPSButtonCombo_Buttons &outButtons);
|
||||
|
||||
} // namespace WUPSButtonComboAPI
|
||||
#endif
|
||||
Reference in New Issue
Block a user