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