2024-12-31 12:52:55 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
|
|
|
#include "defines.h"
|
|
|
|
|
|
|
|
#include <optional>
|
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
namespace WUPSButtonComboAPI {
|
|
|
|
class ButtonCombo {
|
|
|
|
public:
|
|
|
|
static std::optional<ButtonCombo> Create(const WUPSButtonCombo_ComboOptions &options,
|
2024-12-31 12:52:55 +01:00
|
|
|
WUPSButtonCombo_ComboStatus &outStatus,
|
|
|
|
WUPSButtonCombo_Error &outError) noexcept;
|
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
static ButtonCombo Create(const WUPSButtonCombo_ComboOptions &options,
|
2024-12-31 12:52:55 +01:00
|
|
|
WUPSButtonCombo_ComboStatus &outStatus);
|
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
~ButtonCombo();
|
|
|
|
ButtonCombo(const ButtonCombo &) = delete;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
ButtonCombo(ButtonCombo &&other) noexcept;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
ButtonCombo &operator=(const ButtonCombo &) = delete;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
ButtonCombo &operator=(ButtonCombo &&other) noexcept;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
[[nodiscard]] WUPSButtonCombo_ComboHandle getHandle() const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
WUPSButtonCombo_Error GetButtonComboStatus(WUPSButtonCombo_ComboStatus &outStatus) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
[[nodiscard]] WUPSButtonCombo_Error UpdateButtonComboMeta(const WUPSButtonCombo_MetaOptions &metaOptions) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
[[nodiscard]] WUPSButtonCombo_Error UpdateButtonComboCallback(const WUPSButtonCombo_CallbackOptions &callbackOptions) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
[[nodiscard]] WUPSButtonCombo_Error UpdateControllerMask(WUPSButtonCombo_ControllerTypes controllerMask,
|
|
|
|
WUPSButtonCombo_ComboStatus &outStatus) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
[[nodiscard]] WUPSButtonCombo_Error UpdateButtonCombo(WUPSButtonCombo_Buttons combo,
|
|
|
|
WUPSButtonCombo_ComboStatus &outStatus) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
[[nodiscard]] WUPSButtonCombo_Error UpdateHoldDuration(uint32_t holdDurationInFrames) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
[[nodiscard]] WUPSButtonCombo_Error GetButtonComboMeta(WUPSButtonCombo_MetaOptionsOut &outOptions) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
WUPSButtonCombo_Error GetButtonComboCallback(WUPSButtonCombo_CallbackOptions &outOptions) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
WUPSButtonCombo_Error GetButtonComboInfoEx(WUPSButtonCombo_ButtonComboInfoEx &outOptions) const;
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
private:
|
|
|
|
void ReleaseButtonComboHandle();
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
explicit ButtonCombo(WUPSButtonCombo_ComboHandle handle);
|
2024-12-31 12:52:55 +01:00
|
|
|
|
2024-12-31 14:43:31 +01:00
|
|
|
WUPSButtonCombo_ComboHandle mHandle = WUPSButtonCombo_ComboHandle(nullptr);
|
|
|
|
};
|
|
|
|
} // namespace WUPSButtonComboAPI
|
2024-12-31 12:52:55 +01:00
|
|
|
#endif
|