Update WUPSConfigItemIPAddress to take a currentValue

This commit is contained in:
Maschell 2026-02-08 12:14:29 +01:00
parent 05940ce93f
commit 3e25970f3e
3 changed files with 24 additions and 13 deletions

View File

@ -33,7 +33,8 @@ typedef void (*IPAddressValueChangedCallback)(ConfigItemIPAddress *item, uint32_
WUPSConfigAPIStatus
WUPSConfigItemIPAddress_Create(const char *identifier,
const char *displayName,
uint32_t defaultIPAddress,
uint32_t defaultValue,
uint32_t currentValue,
IPAddressValueChangedCallback callback,
WUPSConfigItemHandle *outItemHandle);
@ -41,7 +42,8 @@ WUPSConfigItemIPAddress_Create(const char *identifier,
WUPSConfigAPIStatus
WUPSConfigItemIPAddress_AddToCategory(WUPSConfigCategoryHandle cat,
const char *identifier, const char *displayName,
uint32_t defaultIPAddress,
uint32_t defaultValue,
uint32_t currentValue,
IPAddressValueChangedCallback callback);
#ifdef __cplusplus
}
@ -56,13 +58,16 @@ WUPSConfigItemIPAddress_AddToCategory(WUPSConfigCategoryHandle cat,
class WUPSConfigItemIPAddress : public WUPSConfigItem {
public:
static std::optional<WUPSConfigItemIPAddress> Create(const std::optional<std::string> &identifier,
std::string_view displayName, uint32_t defaultIPAddress,
std::string_view displayName,
uint32_t defaultValue,
uint32_t currentValue,
IPAddressValueChangedCallback callback,
WUPSConfigAPIStatus &err) noexcept;
static WUPSConfigItemIPAddress Create(const std::optional<std::string> &identifier,
std::string_view displayName,
uint32_t defaultIPAddress,
uint32_t defaultValue,
uint32_t currentValue,
IPAddressValueChangedCallback callback);
private:

View File

@ -187,7 +187,8 @@ static void WUPSConfigItemIPAddress_onDelete(void *context) {
WUPSConfigAPIStatus
WUPSConfigItemIPAddress_Create(const char *identifier,
const char *displayName,
const uint32_t defaultIPAddress,
const uint32_t defaultValue,
const uint32_t currentValue,
IPAddressValueChangedCallback callback,
WUPSConfigItemHandle *outItemHandle) {
if (outItemHandle == nullptr) {
@ -205,9 +206,9 @@ WUPSConfigItemIPAddress_Create(const char *identifier,
item->identifier = nullptr;
}
item->currentValue = defaultIPAddress;
item->defaultValue = defaultIPAddress;
item->valueAtCreation = defaultIPAddress;
item->currentValue = currentValue;
item->defaultValue = defaultValue;
item->valueAtCreation = currentValue;
item->valueChangedCallback = reinterpret_cast<void *>(callback);
item->itemState = WUPS_CONFIG_ITEM_IP_ADDRESS_STATE_NONE;
@ -244,13 +245,15 @@ WUPSConfigItemIPAddress_Create(const char *identifier,
WUPSConfigAPIStatus
WUPSConfigItemIPAddress_AddToCategory(const WUPSConfigCategoryHandle cat,
const char *identifier, const char *displayName,
const uint32_t defaultIPAddress,
const uint32_t defaultValue,
const uint32_t currentValue,
const IPAddressValueChangedCallback callback) {
WUPSConfigItemHandle itemHandle;
WUPSConfigAPIStatus res;
if ((res = WUPSConfigItemIPAddress_Create(identifier,
displayName,
defaultIPAddress,
defaultValue,
currentValue,
callback, &itemHandle)) != WUPSCONFIG_API_RESULT_SUCCESS) {
return res;
}

View File

@ -4,13 +4,15 @@
std::optional<WUPSConfigItemIPAddress> WUPSConfigItemIPAddress::Create(const std::optional<std::string> &identifier,
const std::string_view displayName,
uint32_t defaultValue,
const uint32_t defaultValue,
const uint32_t currentValue,
const IPAddressValueChangedCallback callback,
WUPSConfigAPIStatus &err) noexcept {
WUPSConfigItemHandle itemHandle;
if ((err = WUPSConfigItemIPAddress_Create(identifier ? identifier->data() : nullptr,
displayName.data(),
defaultValue,
currentValue,
callback,
&itemHandle)) != WUPSCONFIG_API_RESULT_SUCCESS) {
return std::nullopt;
@ -20,10 +22,11 @@ std::optional<WUPSConfigItemIPAddress> WUPSConfigItemIPAddress::Create(const std
WUPSConfigItemIPAddress WUPSConfigItemIPAddress::Create(const std::optional<std::string> &identifier,
const std::string_view displayName,
uint32_t defaultValue,
const uint32_t defaultValue,
const uint32_t currentValue,
const IPAddressValueChangedCallback callback) {
WUPSConfigAPIStatus err = WUPSCONFIG_API_RESULT_UNKNOWN_ERROR;
auto res = Create(identifier, displayName, defaultValue, callback, err);
auto res = Create(identifier, displayName, defaultValue, currentValue, callback, err);
if (!res) {
throw std::runtime_error(std::string("Failed to create WUPSConfigItemIPAddress: ").append(WUPSConfigAPI_GetStatusStr(err)));
}