summaryrefslogtreecommitdiff
path: root/apps/gui/option_select.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/option_select.c')
-rw-r--r--apps/gui/option_select.c32
1 files changed, 14 insertions, 18 deletions
diff --git a/apps/gui/option_select.c b/apps/gui/option_select.c
index ffa8f1b0a1..288bf9098b 100644
--- a/apps/gui/option_select.c
+++ b/apps/gui/option_select.c
@@ -146,21 +146,24 @@ char *option_get_valuestring(struct settings_list *setting,
146 } 146 }
147 return buffer; 147 return buffer;
148} 148}
149void option_talk_value(const struct settings_list *setting, int value, bool enqueue) 149
150static int option_talk(int selected_item, void * data)
150{ 151{
152 struct settings_list *setting = (struct settings_list *)data;
153 int temp_var = selection_to_val(setting, selected_item);
151 if ((setting->flags & F_BOOL_SETTING) == F_BOOL_SETTING) 154 if ((setting->flags & F_BOOL_SETTING) == F_BOOL_SETTING)
152 { 155 {
153 bool val = value==1?true:false; 156 bool val = temp_var==1?true:false;
154 talk_id(val? setting->bool_setting->lang_yes : 157 talk_id(val? setting->bool_setting->lang_yes :
155 setting->bool_setting->lang_no, enqueue); 158 setting->bool_setting->lang_no, false);
156 } 159 }
157#if 0 /* probably dont need this one */ 160#if 0 /* probably dont need this one */
158 else if ((setting->flags & F_FILENAME) == F_FILENAME) 161 else if ((setting->flags & F_FILENAME) == F_FILENAME)
159 { 162 {
160} 163 }
161#endif 164#endif
162 else if (((setting->flags & F_INT_SETTING) == F_INT_SETTING) || 165 else if (((setting->flags & F_INT_SETTING) == F_INT_SETTING) ||
163 ((setting->flags & F_TABLE_SETTING) == F_TABLE_SETTING)) 166 ((setting->flags & F_TABLE_SETTING) == F_TABLE_SETTING))
164 { 167 {
165 const struct int_setting *int_info = setting->int_setting; 168 const struct int_setting *int_info = setting->int_setting;
166 const struct table_setting *tbl_info = setting->table_setting; 169 const struct table_setting *tbl_info = setting->table_setting;
@@ -177,9 +180,9 @@ void option_talk_value(const struct settings_list *setting, int value, bool enqu
177 get_talk_id = tbl_info->get_talk_id; 180 get_talk_id = tbl_info->get_talk_id;
178 } 181 }
179 if (get_talk_id) 182 if (get_talk_id)
180 talk_id(get_talk_id((int)value, unit), enqueue); 183 talk_id(get_talk_id((int)temp_var, unit), false);
181 else 184 else
182 talk_value((int)value, unit, enqueue); 185 talk_value((int)temp_var, unit, false);
183 } 186 }
184 else if ((setting->flags & F_T_SOUND) == F_T_SOUND) 187 else if ((setting->flags & F_T_SOUND) == F_T_SOUND)
185 { 188 {
@@ -191,27 +194,20 @@ void option_talk_value(const struct settings_list *setting, int value, bool enqu
191 talkunit = UNIT_PERCENT; 194 talkunit = UNIT_PERCENT;
192 else if (!strcmp(unit, "Hz")) 195 else if (!strcmp(unit, "Hz"))
193 talkunit = UNIT_HERTZ; 196 talkunit = UNIT_HERTZ;
194 talk_value((int)value, talkunit, false); 197 talk_value((int)temp_var, talkunit, false);
195 } 198 }
196 else if ((setting->flags & F_CHOICE_SETTING) == F_CHOICE_SETTING) 199 else if ((setting->flags & F_CHOICE_SETTING) == F_CHOICE_SETTING)
197 { 200 {
198 int value = (int)value; 201 int value = (int)temp_var;
199 if (setting->flags & F_CHOICETALKS) 202 if (setting->flags & F_CHOICETALKS)
200 { 203 {
201 talk_id(setting->choice_setting->talks[value], enqueue); 204 talk_id(setting->choice_setting->talks[value], false);
202 } 205 }
203 else 206 else
204 { 207 {
205 talk_id(P2ID(setting->choice_setting->desc[value]), enqueue); 208 talk_id(P2ID(setting->choice_setting->desc[value]), false);
206 } 209 }
207 } 210 }
208}
209
210static int option_talk(int selected_item, void * data)
211{
212 struct settings_list *setting = (struct settings_list *)data;
213 int temp_var = selection_to_val(setting, selected_item);
214 option_talk_value(setting, temp_var, false);
215 return 0; 211 return 0;
216} 212}
217 213