diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2011-09-04 13:17:09 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2011-09-04 13:17:09 +0000 |
commit | 89973217774f93f8dabcf41a559a5910b7b27f64 (patch) | |
tree | 316347c1fd4c1c0d063eead4b5e816e08f57f737 | |
parent | 060b3fa4f12b3325f29ff8303e22dd318632bd87 (diff) | |
download | rockbox-89973217774f93f8dabcf41a559a5910b7b27f64.tar.gz rockbox-89973217774f93f8dabcf41a559a5910b7b27f64.zip |
Remove duplicated code to search for a setting by its cfg name
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30428 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/gui/skin_engine/skin_parser.c | 17 | ||||
-rw-r--r-- | apps/settings.c | 14 | ||||
-rw-r--r-- | apps/settings.h | 1 |
3 files changed, 19 insertions, 13 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 59c7e92d90..adac487e27 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c | |||
@@ -620,13 +620,8 @@ static int parse_setting_and_lang(struct skin_element *element, | |||
620 | } | 620 | } |
621 | else | 621 | else |
622 | { | 622 | { |
623 | /* Find the setting */ | ||
624 | for (i=0; i<nb_settings; i++) | ||
625 | if (settings[i].cfg_name && | ||
626 | !strcmp(settings[i].cfg_name, temp)) | ||
627 | break; | ||
628 | #ifndef __PCTOOL__ | 623 | #ifndef __PCTOOL__ |
629 | if (i == nb_settings) | 624 | if (find_setting_by_cfgname(temp, &i) == NULL) |
630 | return WPS_ERROR_INVALID_PARAM; | 625 | return WPS_ERROR_INVALID_PARAM; |
631 | #endif | 626 | #endif |
632 | } | 627 | } |
@@ -1148,14 +1143,10 @@ static int touchregion_setup_setting(struct skin_element *element, int param_no, | |||
1148 | int p = param_no; | 1143 | int p = param_no; |
1149 | char *name = element->params[p++].data.text; | 1144 | char *name = element->params[p++].data.text; |
1150 | int j; | 1145 | int j; |
1151 | /* Find the setting */ | 1146 | |
1152 | for (j=0; j<nb_settings; j++) | 1147 | region->setting_data.setting = find_setting_by_cfgname(name, &j); |
1153 | if (settings[j].cfg_name && | 1148 | if (region->setting_data.setting == NULL) |
1154 | !strcmp(settings[j].cfg_name, name)) | ||
1155 | break; | ||
1156 | if (j==nb_settings) | ||
1157 | return WPS_ERROR_INVALID_PARAM; | 1149 | return WPS_ERROR_INVALID_PARAM; |
1158 | region->setting_data.setting = (void*)&settings[j]; | ||
1159 | if (region->action == ACTION_SETTINGS_SET) | 1150 | if (region->action == ACTION_SETTINGS_SET) |
1160 | { | 1151 | { |
1161 | char* text; | 1152 | char* text; |
diff --git a/apps/settings.c b/apps/settings.c index 623bc5b2a0..258facee38 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -1087,6 +1087,20 @@ const struct settings_list* find_setting(const void* variable, int *id) | |||
1087 | } | 1087 | } |
1088 | return NULL; | 1088 | return NULL; |
1089 | } | 1089 | } |
1090 | const struct settings_list* find_setting_by_cfgname(const char* name, int *id) | ||
1091 | { | ||
1092 | int i; | ||
1093 | for (i=0; i<nb_settings; i++) | ||
1094 | { | ||
1095 | if (settings[i].cfg_name && | ||
1096 | !strcmp(settings[i].cfg_name, name)) | ||
1097 | { | ||
1098 | if (id) *id = i; | ||
1099 | return &settings[i]; | ||
1100 | } | ||
1101 | } | ||
1102 | return NULL; | ||
1103 | } | ||
1090 | 1104 | ||
1091 | bool set_bool(const char* string, const bool* variable ) | 1105 | bool set_bool(const char* string, const bool* variable ) |
1092 | { | 1106 | { |
diff --git a/apps/settings.h b/apps/settings.h index 05965b3119..f48dd5debc 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -231,6 +231,7 @@ void settings_display(void); | |||
231 | enum optiontype { INT, BOOL }; | 231 | enum optiontype { INT, BOOL }; |
232 | 232 | ||
233 | const struct settings_list* find_setting(const void* variable, int *id); | 233 | const struct settings_list* find_setting(const void* variable, int *id); |
234 | const struct settings_list* find_setting_by_cfgname(const char* name, int *id); | ||
234 | bool cfg_int_to_string(int setting_id, int val, char* buf, int buf_len); | 235 | bool cfg_int_to_string(int setting_id, int val, char* buf, int buf_len); |
235 | bool cfg_string_to_int(int setting_id, int* out, const char* str); | 236 | bool cfg_string_to_int(int setting_id, int* out, const char* str); |
236 | bool cfg_to_string(int setting_id, char* buf, int buf_len); | 237 | bool cfg_to_string(int setting_id, char* buf, int buf_len); |