mirror of
https://github.com/wiiu-env/WiiUPluginSystem.git
synced 2025-02-04 11:46:21 +01:00
99 lines
5.2 KiB
C++
99 lines
5.2 KiB
C++
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <wups/button_combo.h>
|
|
#include <wups/config.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum ConfigItemButtonCombo_State {
|
|
WUPS_CONFIG_ITEM_BUTTON_COMBO_STATE_NONE,
|
|
WUPS_CONFIG_ITEM_BUTTON_COMBO_STATE_PREPARE_FOR_HOLD,
|
|
WUPS_CONFIG_ITEM_BUTTON_COMBO_STATE_WAIT_FOR_HOLD,
|
|
WUPS_CONFIG_ITEM_BUTTON_COMBO_STATE_INVALID_HANDLE,
|
|
} ConfigItemButtonCombo_State;
|
|
|
|
typedef struct ConfigItemButtonCombo {
|
|
char *identifier;
|
|
WUPSConfigItemHandle itemHandle;
|
|
ConfigItemButtonCombo_State itemState;
|
|
WUPSButtonCombo_ComboHandle comboHandle;
|
|
WUPSButtonCombo_Buttons defaultButtonCombo;
|
|
WUPSButtonCombo_Buttons currentButtonCombo;
|
|
WUPSButtonCombo_Buttons comboComboAtCreation;
|
|
uint32_t detectComboHoldDurationInMs;
|
|
WUPSButtonCombo_Buttons detectAbortButton;
|
|
uint32_t detectAbortHoldButtonInMs;
|
|
void *valueChangedCallback;
|
|
struct {
|
|
uint32_t conflictMsgShownForXFrames;
|
|
} intern;
|
|
} ConfigItemButtonCombo;
|
|
|
|
typedef void (*ButtonComboValueChangedCallback)(ConfigItemButtonCombo *item, uint32_t buttonComboInWUPSButtonComboButtons);
|
|
|
|
|
|
WUPSConfigAPIStatus
|
|
WUPSConfigItemButtonCombo_CreateEx(const char *identifier,
|
|
const char *displayName,
|
|
WUPSButtonCombo_Buttons defaultComboInWUPSButtonComboButtons, WUPSButtonCombo_ComboHandle comboHandle,
|
|
uint32_t detectHoldDurationInMs, WUPSButtonCombo_Buttons detectAbortButtonCombo, uint32_t detectAbortHoldButtonInMs,
|
|
ButtonComboValueChangedCallback callback,
|
|
WUPSConfigItemHandle *outItemHandle);
|
|
|
|
WUPSConfigAPIStatus
|
|
WUPSConfigItemButtonCombo_AddToCategoryEx(WUPSConfigCategoryHandle cat,
|
|
const char *identifier, const char *displayName,
|
|
WUPSButtonCombo_Buttons defaultComboInWUPSButtonComboButtons, WUPSButtonCombo_ComboHandle comboHandle,
|
|
uint32_t detectHoldDurationInMs, WUPSButtonCombo_Buttons detectAbortButtonCombo, uint32_t detectAbortHoldButtonInMs,
|
|
ButtonComboValueChangedCallback callback);
|
|
|
|
WUPSConfigAPIStatus
|
|
WUPSConfigItemButtonCombo_AddToCategory(WUPSConfigCategoryHandle cat,
|
|
const char *identifier, const char *displayName,
|
|
WUPSButtonCombo_Buttons defaultComboInWUPSButtonComboButtons, WUPSButtonCombo_ComboHandle comboHandle,
|
|
ButtonComboValueChangedCallback callback);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
#include <optional>
|
|
#include <string>
|
|
#include <wups/config/WUPSConfigItem.h>
|
|
|
|
class WUPSConfigItemButtonCombo : public WUPSConfigItem {
|
|
public:
|
|
static std::optional<WUPSConfigItemButtonCombo> CreateEx(const std::optional<std::string> &identifier,
|
|
std::string_view displayName,
|
|
WUPSButtonCombo_Buttons defaultComboInWUPSButtonComboButtons, WUPSButtonCombo_ComboHandle comboHandle,
|
|
uint32_t detectHoldDurationInMs, WUPSButtonCombo_Buttons detectAbortButtonCombo, uint32_t detectAbortHoldButtonInMs,
|
|
ButtonComboValueChangedCallback callback,
|
|
WUPSConfigAPIStatus &err) noexcept;
|
|
|
|
static WUPSConfigItemButtonCombo CreateEx(const std::optional<std::string> &identifier,
|
|
std::string_view displayName,
|
|
WUPSButtonCombo_Buttons defaultComboInWUPSButtonComboButtons, WUPSButtonCombo_ComboHandle comboHandle,
|
|
uint32_t detectHoldDurationInMs, WUPSButtonCombo_Buttons detectAbortButtonCombo, uint32_t detectAbortHoldButtonInMs,
|
|
ButtonComboValueChangedCallback callback);
|
|
|
|
static std::optional<WUPSConfigItemButtonCombo> Create(const std::optional<std::string> &identifier,
|
|
std::string_view displayName,
|
|
WUPSButtonCombo_Buttons defaultComboInWUPSButtonComboButtons, WUPSButtonCombo_ComboHandle comboHandle,
|
|
ButtonComboValueChangedCallback callback,
|
|
WUPSConfigAPIStatus &err) noexcept;
|
|
|
|
static WUPSConfigItemButtonCombo Create(const std::optional<std::string> &identifier,
|
|
std::string_view displayName,
|
|
WUPSButtonCombo_Buttons defaultComboInWUPSButtonComboButtons, WUPSButtonCombo_ComboHandle comboHandle,
|
|
ButtonComboValueChangedCallback callback);
|
|
|
|
private:
|
|
explicit WUPSConfigItemButtonCombo(const WUPSConfigItemHandle itemHandle) : WUPSConfigItem(itemHandle) {
|
|
}
|
|
};
|
|
#endif |