mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
allow the user to change the shuffle and repeat modes from the touchscreen, update the mr500 default wps to show how to do it (hint, press the shuffle/rep icon)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20937 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
33d08e8315
commit
c1267dc700
4 changed files with 39 additions and 2 deletions
|
@ -228,6 +228,14 @@ enum {
|
|||
ACTION_KBD_DOWN,
|
||||
ACTION_KBD_MORSE_INPUT,
|
||||
ACTION_KBD_MORSE_SELECT,
|
||||
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
/* the following are helper actions for touchscreen targets,
|
||||
* These are for actions which are not doable or required if buttons are
|
||||
* being used, but are nice additions if the touchscreen is used */
|
||||
ACTION_TOUCH_SHUFFLE,
|
||||
ACTION_TOUCH_REPMODE,
|
||||
#endif
|
||||
|
||||
|
||||
LAST_ACTION_PLACEHOLDER, /* custom actions should be this + something */
|
||||
|
|
|
@ -64,6 +64,8 @@
|
|||
#include "appevents.h"
|
||||
#include "viewport.h"
|
||||
#include "pcmbuf.h"
|
||||
#include "option_select.h"
|
||||
#include "dsp.h"
|
||||
|
||||
#define RESTORE_WPS_INSTANTLY 0l
|
||||
#define RESTORE_WPS_NEXT_SECOND ((long)(HZ+current_tick))
|
||||
|
@ -732,7 +734,29 @@ long gui_wps_show(void)
|
|||
restore = true;
|
||||
}
|
||||
break;
|
||||
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
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);
|
||||
}
|
||||
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();
|
||||
}
|
||||
break;
|
||||
#endif /* HAVE_TOUCHSCREEN */
|
||||
case ACTION_REDRAW: /* yes are locked, just redraw */
|
||||
/* fall througgh */
|
||||
case ACTION_NONE: /* Timeout, do an partial update */
|
||||
|
|
|
@ -1162,7 +1162,8 @@ struct touchaction {char* s; int action;};
|
|||
static struct touchaction touchactions[] = {
|
||||
{"play", ACTION_WPS_PLAY }, {"stop", ACTION_WPS_STOP },
|
||||
{"prev", ACTION_WPS_SKIPPREV }, {"next", ACTION_WPS_SKIPNEXT },
|
||||
{"menu", ACTION_WPS_MENU }, {"browse", ACTION_WPS_BROWSE }
|
||||
{"menu", ACTION_WPS_MENU }, {"browse", ACTION_WPS_BROWSE },
|
||||
{"shuffle", ACTION_TOUCH_SHUFFLE }, {"repmode", ACTION_TOUCH_REPMODE }
|
||||
};
|
||||
static int parse_touchregion(const char *wps_bufptr,
|
||||
struct wps_token *token, struct wps_data *wps_data)
|
||||
|
@ -1184,6 +1185,8 @@ static int parse_touchregion(const char *wps_bufptr,
|
|||
* rwd
|
||||
* menu - go back to the main menu
|
||||
* browse - go back to the file/db browser
|
||||
* shuffle - toggle shuffle mode
|
||||
* repmode - cycle the repeat mode
|
||||
*/
|
||||
|
||||
if ((wps_data->touchregion_count +1 >= MAX_TOUCHREGIONS) || (*ptr != '|'))
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
%wd
|
||||
%T|286|207|24|24|play|
|
||||
%T|0|207|84|24|menu|
|
||||
%T|218|211|24|24|shuffle|
|
||||
%T|261|207|24|24|repmode|
|
||||
%X|wpsbackdrop-320x240x16.bmp|
|
||||
%xl|A|lock-320x240x16.bmp|91|207|2|
|
||||
%xl|B|battery-320x240x16.bmp|126|207|10|
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue