ConfigAPI: Some more changes, added C++ Wrapper

This commit is contained in:
Maschell
2023-12-16 17:10:45 +01:00
parent 4d9f28c1ae
commit aed8b5af43
24 changed files with 1285 additions and 292 deletions

View File

@@ -0,0 +1,34 @@
#include "wups/config/WUPSConfigItemIntegerRange.h"
std::optional<WUPSConfigItemIntegerRange> WUPSConfigItemIntegerRange::Create(
std::optional<std::string> identifier,
std::string_view displayName,
int32_t defaultValue, int32_t currentValue,
int32_t minValue, int32_t maxValue,
IntegerRangeValueChangedCallback valuesChangedCallback,
WUPSConfigAPIStatus &err) noexcept {
WUPSConfigItemHandle itemHandle;
if ((err = WUPSConfigItemIntegerRange_Create(identifier ? identifier->c_str() : nullptr,
displayName.data(),
defaultValue, currentValue,
minValue, maxValue,
valuesChangedCallback,
&itemHandle)) != WUPSCONFIG_API_RESULT_SUCCESS) {
return std::nullopt;
}
return WUPSConfigItemIntegerRange(itemHandle);
}
WUPSConfigItemIntegerRange WUPSConfigItemIntegerRange::Create(
std::optional<std::string> identifier,
std::string_view displayName,
int32_t defaultValue, int32_t currentValue,
int32_t minValue, int32_t maxValue,
IntegerRangeValueChangedCallback valuesChangedCallback) {
WUPSConfigAPIStatus err = WUPSCONFIG_API_RESULT_UNKNOWN_ERROR;
auto result = Create(std::move(identifier), displayName, defaultValue, currentValue, minValue, maxValue, valuesChangedCallback, err);
if (!result) {
throw std::runtime_error(std::string("Failed to create WUPSConfigItemIntegerRange: ").append(WUPSConfigAPI_GetStatusStr(err)));
}
return std::move(*result);
}