diff options
Diffstat (limited to 'apps/radio/radio_skin.c')
-rw-r--r-- | apps/radio/radio_skin.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/apps/radio/radio_skin.c b/apps/radio/radio_skin.c index 68314d62b5..2e329230f7 100644 --- a/apps/radio/radio_skin.c +++ b/apps/radio/radio_skin.c | |||
@@ -32,6 +32,10 @@ | |||
32 | #include "appevents.h" | 32 | #include "appevents.h" |
33 | #include "statusbar-skinned.h" | 33 | #include "statusbar-skinned.h" |
34 | #include "option_select.h" | 34 | #include "option_select.h" |
35 | #ifdef HAVE_TOUCHSCREEN | ||
36 | #include "sound.h" | ||
37 | #include "misc.h" | ||
38 | #endif | ||
35 | 39 | ||
36 | 40 | ||
37 | char* default_radio_skin(enum screen_type screen) | 41 | char* default_radio_skin(enum screen_type screen) |
@@ -120,10 +124,23 @@ int fms_do_button_loop(bool update_screen) | |||
120 | case ACTION_SETTINGS_INC: | 124 | case ACTION_SETTINGS_INC: |
121 | case ACTION_SETTINGS_DEC: | 125 | case ACTION_SETTINGS_DEC: |
122 | { | 126 | { |
123 | const struct settings_list *setting = region->extradata; | 127 | const struct settings_list *setting = region->data; |
124 | option_select_next_val(setting, button == ACTION_SETTINGS_DEC, true); | 128 | option_select_next_val(setting, button == ACTION_SETTINGS_DEC, true); |
125 | } | 129 | } |
126 | return ACTION_REDRAW; | 130 | return ACTION_REDRAW; |
131 | case ACTION_TOUCH_MUTE: | ||
132 | { | ||
133 | const int min_vol = sound_min(SOUND_VOLUME); | ||
134 | if (global_settings.volume == min_vol) | ||
135 | global_settings.volume = region->value; | ||
136 | else | ||
137 | { | ||
138 | region->value = global_settings.volume; | ||
139 | global_settings.volume = min_vol; | ||
140 | } | ||
141 | setvol(); | ||
142 | } | ||
143 | return ACTION_REDRAW; | ||
127 | } | 144 | } |
128 | #endif | 145 | #endif |
129 | return button; | 146 | return button; |