From 356e026efbb6e8c67c8e1a7625de8c97ea190a1a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 30 Jan 2015 10:35:06 +0100 Subject: [PATCH] Bind UINT settings --- menu/menu_action.c | 6 ++---- settings_data.c | 16 ++++++++++++---- settings_data.h | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/menu/menu_action.c b/menu/menu_action.c index 65da749bdd..d30232c1ce 100644 --- a/menu/menu_action.c +++ b/menu/menu_action.c @@ -122,10 +122,8 @@ rarch_setting_t *menu_action_find_setting(const char *label) void menu_action_setting_get_representation(rarch_setting_t *setting, char *type_str, size_t type_str_size) { - if (!setting) - return; - - setting_data_get_string_representation(setting, type_str, type_str_size); + if (setting) + setting_data_get_string_representation(setting, type_str, type_str_size); } int menu_action_setting_set(unsigned type, const char *label, unsigned action) diff --git a/settings_data.c b/settings_data.c index f665a60863..eff51ad3b8 100644 --- a/settings_data.c +++ b/settings_data.c @@ -253,9 +253,10 @@ static void menu_common_setting_set_label_st_float(rarch_setting_t *setting, * * Get a setting value's string representation. **/ -void setting_data_get_string_representation(rarch_setting_t* setting, +void setting_data_get_string_representation(void *data, char* buf, size_t sizeof_buf) { + rarch_setting_t* setting = (rarch_setting_t*)data; if (!setting || !buf || !sizeof_buf) return; @@ -267,9 +268,6 @@ void setting_data_get_string_representation(rarch_setting_t* setting, case ST_INT: snprintf(buf, sizeof_buf, "%d", *setting->value.integer); break; - case ST_UINT: - menu_common_setting_set_label_st_uint(setting, buf, sizeof_buf); - break; case ST_FLOAT: menu_common_setting_set_label_st_float(setting, buf, sizeof_buf); break; @@ -296,6 +294,7 @@ void setting_data_get_string_representation(rarch_setting_t* setting, input_get_bind_string(buf, keybind, auto_bind, sizeof_buf); } break; + case ST_UINT: case ST_ACTION: if (setting->get_string_representation) setting->get_string_representation(setting, buf, sizeof_buf); @@ -1150,6 +1149,13 @@ static void menu_common_setting_set_label_st_bool(rarch_setting_t *setting, setting->boolean.off_label, type_str_size); } +static void setting_data_get_string_representation_uint(void *data, + char *type_str, size_t type_str_size) +{ + rarch_setting_t *setting = (rarch_setting_t*)data; + menu_common_setting_set_label_st_uint(setting, type_str, type_str_size); +} + /** * menu_common_setting_set_label_st_uint: * @setting : pointer to setting @@ -1621,6 +1627,7 @@ rarch_setting_t setting_data_uint_setting(const char* name, result.action_toggle = setting_data_uint_action_toggle_default; result.action_ok = setting_data_uint_action_ok_default; result.action_cancel = NULL; + result.get_string_representation = &setting_data_get_string_representation_uint; return result; } @@ -2789,6 +2796,7 @@ static void get_string_representation_bind_device(void * data, char *type_str, strlcpy(type_str, "Disabled", type_str_size); } + static void get_string_representation_savestate(void * data, char *type_str, size_t type_str_size) { diff --git a/settings_data.h b/settings_data.h index f285ad2f7c..091c2855f2 100644 --- a/settings_data.h +++ b/settings_data.h @@ -75,7 +75,7 @@ void setting_data_set_with_string_representation( * * Get a setting value's string representation. **/ -void setting_data_get_string_representation(rarch_setting_t* setting, +void setting_data_get_string_representation(void *data, char* buf, size_t sizeof_buf); /**