diff options
Diffstat (limited to 'apps/gui/skin_engine')
| -rw-r--r-- | apps/gui/skin_engine/skin_touchsupport.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_touchsupport.c b/apps/gui/skin_engine/skin_touchsupport.c index c16d223..e1a7d06 100644 --- a/apps/gui/skin_engine/skin_touchsupport.c +++ b/apps/gui/skin_engine/skin_touchsupport.c @@ -32,6 +32,7 @@ #include "lang.h" #include "splash.h" #include "playlist.h" +#include "dsp.h" /** Disarms all touchregions. */ void skin_disarm_touchregions(struct wps_data *data) @@ -237,6 +238,29 @@ int skin_get_touchaction(struct wps_data *data, int* edge_offset, returncode = ACTION_REDRAW; } break; + case ACTION_TOUCH_SHUFFLE: /* toggle shuffle mode */ + { + global_settings.playlist_shuffle = + !global_settings.playlist_shuffle; +#if CONFIG_CODEC == SWCODEC + dsp_set_replaygain(); +#endif + if (global_settings.playlist_shuffle) + playlist_randomise(NULL, current_tick, true); + else + playlist_sort(NULL, true); + returncode = ACTION_REDRAW; + } + break; + case ACTION_TOUCH_REPMODE: /* cycle the repeat mode setting */ + { + const struct settings_list *rep_setting = + find_setting(&global_settings.repeat_mode, NULL); + option_select_next_val(rep_setting, false, true); + audio_flush_and_reload_tracks(); + returncode = ACTION_REDRAW; + } + break; } return returncode; } |