feat(config): include line number in error reporting

This commit is contained in:
Ash Logan 2026-07-28 22:49:56 +10:00
commit df01b5b1dd

View file

@ -47,8 +47,8 @@ bool Config::is_wiiu_menu = false;
uint32_t Config::language = 13; uint32_t Config::language = 13;
inkay_language Config::current_language = English; inkay_language Config::current_language = English;
static WUPSConfigAPICallbackStatus report_error(WUPSConfigAPIStatus err) { static WUPSConfigAPICallbackStatus report_error(WUPSConfigAPIStatus err, int line) {
DEBUG_FUNCTION_LINE_VERBOSE("WUPS config error: %s", WUPSConfigAPI_GetStatusStr(err)); DEBUG_FUNCTION_LINE_VERBOSE("WUPS config error: %s (L%04d)", WUPSConfigAPI_GetStatusStr(err), line);
return WUPSCONFIG_API_CALLBACK_RESULT_ERROR; return WUPSCONFIG_API_CALLBACK_RESULT_ERROR;
} }
@ -155,16 +155,16 @@ static WUPSConfigAPICallbackStatus ConfigMenuOpenedCallback(WUPSConfigCategoryHa
WUPSConfigCategoryHandle network_cat; WUPSConfigCategoryHandle network_cat;
err = WUPSConfigAPI_Category_Create({strings.network_category.data()}, &network_cat); err = WUPSConfigAPI_Category_Create({strings.network_category.data()}, &network_cat);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
WUPSConfigItemHandle connect_item; WUPSConfigItemHandle connect_item;
err = WUPSConfigItemBoolean_CreateEx( err = WUPSConfigItemBoolean_CreateEx(
"connect_to_network", strings.connect_to_network_setting.data(), true, Config::connect_to_network, "connect_to_network", strings.connect_to_network_setting.data(), true, Config::connect_to_network,
&connect_to_network_changed, strings.setting_yes.data(), strings.setting_no.data(), &connect_item); &connect_to_network_changed, strings.setting_yes.data(), strings.setting_no.data(), &connect_item);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
err = WUPSConfigAPI_Category_AddItem(network_cat, connect_item); err = WUPSConfigAPI_Category_AddItem(network_cat, connect_item);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
const uint16_t port = get_console_peertopeer_port(); const uint16_t port = get_console_peertopeer_port();
char buffer[256]; char buffer[256];
@ -172,14 +172,14 @@ static WUPSConfigAPICallbackStatus ConfigMenuOpenedCallback(WUPSConfigCategoryHa
WUPSConfigItemHandle multiplayer_port_display; WUPSConfigItemHandle multiplayer_port_display;
err = WUPSConfigItemStub_Create(buffer, &multiplayer_port_display); err = WUPSConfigItemStub_Create(buffer, &multiplayer_port_display);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
err = WUPSConfigAPI_Category_AddItem(network_cat, multiplayer_port_display); err = WUPSConfigAPI_Category_AddItem(network_cat, multiplayer_port_display);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
// Add to root and finish // Add to root and finish
err = WUPSConfigAPI_Category_AddCategory(root_cat, network_cat); err = WUPSConfigAPI_Category_AddCategory(root_cat, network_cat);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
// Other category // Other category
// Reset Wara Wara Plaza Press A // Reset Wara Wara Plaza Press A
@ -188,7 +188,7 @@ static WUPSConfigAPICallbackStatus ConfigMenuOpenedCallback(WUPSConfigCategoryHa
WUPSConfigCategoryHandle other_cat; WUPSConfigCategoryHandle other_cat;
err = WUPSConfigAPI_Category_Create({strings.other_category.data()}, &other_cat); err = WUPSConfigAPI_Category_Create({strings.other_category.data()}, &other_cat);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
WUPSConfigItemHandle unregisterTasksItem; WUPSConfigItemHandle unregisterTasksItem;
err = WUPSConfigAPI_Item_Create({ err = WUPSConfigAPI_Item_Create({
@ -206,10 +206,10 @@ static WUPSConfigAPICallbackStatus ConfigMenuOpenedCallback(WUPSConfigCategoryHa
.onDelete = nullptr .onDelete = nullptr
}, },
}, &unregisterTasksItem); }, &unregisterTasksItem);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
err = WUPSConfigAPI_Category_AddItem(other_cat, unregisterTasksItem); err = WUPSConfigAPI_Category_AddItem(other_cat, unregisterTasksItem);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
// TODO localise these! // TODO localise these!
constexpr std::array<ConfigItemMultipleValuesPair, 14> languages = { constexpr std::array<ConfigItemMultipleValuesPair, 14> languages = {
@ -243,23 +243,23 @@ static WUPSConfigAPICallbackStatus ConfigMenuOpenedCallback(WUPSConfigCategoryHa
current_language, current_language,
const_cast<ConfigItemMultipleValuesPair *>(languages.data()), // Yikes! const_cast<ConfigItemMultipleValuesPair *>(languages.data()), // Yikes!
languages.size(), &language_changed, &language_item); languages.size(), &language_changed, &language_item);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
err = WUPSConfigAPI_Category_AddItem(other_cat, language_item); err = WUPSConfigAPI_Category_AddItem(other_cat, language_item);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
WUPSConfigItemHandle startup_toast_item; WUPSConfigItemHandle startup_toast_item;
err = WUPSConfigItemBoolean_CreateEx("show_startup_toast", strings.show_startup_toast_setting.data(), true, err = WUPSConfigItemBoolean_CreateEx("show_startup_toast", strings.show_startup_toast_setting.data(), true,
Config::show_startup_toast, &show_startup_toast_changed, Config::show_startup_toast, &show_startup_toast_changed,
strings.setting_yes.data(), strings.setting_no.data(), &startup_toast_item); strings.setting_yes.data(), strings.setting_no.data(), &startup_toast_item);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
err = WUPSConfigAPI_Category_AddItem(other_cat, startup_toast_item); err = WUPSConfigAPI_Category_AddItem(other_cat, startup_toast_item);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
// finish up // finish up
err = WUPSConfigAPI_Category_AddCategory(root_cat, other_cat); err = WUPSConfigAPI_Category_AddCategory(root_cat, other_cat);
if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err); if (err != WUPSCONFIG_API_RESULT_SUCCESS) return report_error(err, __LINE__);
return WUPSCONFIG_API_CALLBACK_RESULT_SUCCESS; return WUPSCONFIG_API_CALLBACK_RESULT_SUCCESS;
} }
@ -281,7 +281,7 @@ void Config::Init() {
// Init the config api // Init the config api
WUPSConfigAPIStatus cres = WUPSConfigAPIStatus cres =
WUPSConfigAPI_Init({.name = "Inkay"}, ConfigMenuOpenedCallback, ConfigMenuClosedCallback); WUPSConfigAPI_Init({.name = "Inkay"}, ConfigMenuOpenedCallback, ConfigMenuClosedCallback);
if (cres != WUPSCONFIG_API_RESULT_SUCCESS) return (void) report_error(cres); if (cres != WUPSCONFIG_API_RESULT_SUCCESS) return (void) report_error(cres, __LINE__);
WUPSStorageError res; WUPSStorageError res;
// Try to get values from storage // Try to get values from storage