diff --git a/apps/action.h b/apps/action.h index b0725ddb41..5a8168ea80 100644 --- a/apps/action.h +++ b/apps/action.h @@ -111,7 +111,11 @@ enum { ACTION_WPS_CONTEXT, ACTION_WPS_QUICKSCREEN,/* optional */ ACTION_WPS_MENU, /*this should be the same as ACTION_STD_MENU */ - ACTION_WPSAB_SINGLE, /* No targets use this, but leave n just-in-case! */ +#if 0 + ACTION_WPSAB_SINGLE, /* This needs to be #defined in + the config-.h to one of the ACTION_WPS_ actions + so it can be used */ +#endif ACTION_WPS_ABSETA_PREVDIR, /* these should be safe to put together seen as */ ACTION_WPS_ABSETB_NEXTDIR, /* you shouldnt want to change dir in ab-mode */ ACTION_WPSAB_RESET, diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c index ec9a5351ea..7128a958f7 100644 --- a/apps/gui/gwps.c +++ b/apps/gui/gwps.c @@ -208,7 +208,28 @@ long gui_wps_show(void) from F1 */ if (!audio_status()) exit = true; - +#ifdef ACTION_WPSAB_SINGLE + if (!global_settings.party_mode && ab_repeat_mode_enabled()) + { + static int wps_ab_state = 0; + if (button == ACTION_WPSAB_SINGLE) + { + switch (wps_ab_state) + { + case 0: /* set the A spot */ + button = ACTION_WPS_ABSETA_PREVDIR; + break; + case 1: /* set the B spot */ + button = ACTION_WPS_ABSETB_NEXTDIR; + break; + case 2: + button = ACTION_WPSAB_RESET; + break; + } + wps_ab_state = (wps_ab_state+1) % 3; + } + } +#endif switch(button) { case ACTION_WPS_CONTEXT: @@ -507,25 +528,6 @@ long gui_wps_show(void) #endif /* HAVE_PITCHSCREEN */ #ifdef AB_REPEAT_ENABLE - case ACTION_WPSAB_SINGLE: -/* If we are using the menu option to enable ab_repeat mode, don't do anything - * when it's disabled */ -#if (AB_REPEAT_ENABLE == 1) - if (!ab_repeat_mode_enabled()) - break; -#endif - if (ab_A_marker_set()) { - update_track = true; - if (ab_B_marker_set()) { - ab_reset_markers(); - break; - } - ab_set_B_marker(wps_state.id3->elapsed); - ab_jump_to_A_marker(); - break; - } - ab_set_A_marker(wps_state.id3->elapsed); - break; /* reset A&B markers */ case ACTION_WPSAB_RESET: if (ab_repeat_mode_enabled()) diff --git a/firmware/export/config-ipod4g.h b/firmware/export/config-ipod4g.h index 142a2ebabb..65d0df1b87 100644 --- a/firmware/export/config-ipod4g.h +++ b/firmware/export/config-ipod4g.h @@ -69,6 +69,7 @@ #define HAVE_WM8975 #define AB_REPEAT_ENABLE 1 +#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE /* Define this for LCD backlight available */ #define CONFIG_BACKLIGHT BL_IPOD4G /* port controlled */ diff --git a/firmware/export/config-ipodcolor.h b/firmware/export/config-ipodcolor.h index af2a89cf6f..36adcd22c2 100644 --- a/firmware/export/config-ipodcolor.h +++ b/firmware/export/config-ipodcolor.h @@ -60,6 +60,7 @@ #define HAVE_WM8975 #define AB_REPEAT_ENABLE 1 +#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE /* Define this for LCD backlight available */ #define CONFIG_BACKLIGHT BL_IPOD4G /* port controlled */ diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h index 6ffb8637ff..d51d97a073 100644 --- a/firmware/export/config-ipodmini.h +++ b/firmware/export/config-ipodmini.h @@ -63,6 +63,7 @@ #define HAVE_WM8721 /* actually WM8731 but no recording */ #define AB_REPEAT_ENABLE 1 +#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE /* Define this for LCD backlight available */ #define CONFIG_BACKLIGHT BL_IPODMINI /* port controlled */ diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h index c0822baef4..edcf095c13 100755 --- a/firmware/export/config-ipodmini2g.h +++ b/firmware/export/config-ipodmini2g.h @@ -63,6 +63,7 @@ #define HAVE_WM8721 /* actually WM8731 but no recording */ #define AB_REPEAT_ENABLE 1 +#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE /* Define this for LCD backlight available */ #define CONFIG_BACKLIGHT BL_IPODMINI /* port controlled */ diff --git a/firmware/export/config-ipodnano.h b/firmware/export/config-ipodnano.h index f72603a2da..e1b856eed8 100644 --- a/firmware/export/config-ipodnano.h +++ b/firmware/export/config-ipodnano.h @@ -60,6 +60,7 @@ #define HAVE_WM8975 #define AB_REPEAT_ENABLE 1 +#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE /* Define this for LCD backlight available */ #define CONFIG_BACKLIGHT BL_IPODNANO /* port controlled */ diff --git a/firmware/export/config-ipodvideo.h b/firmware/export/config-ipodvideo.h index fa78c5c7ee..1ed7f93a69 100644 --- a/firmware/export/config-ipodvideo.h +++ b/firmware/export/config-ipodvideo.h @@ -60,6 +60,7 @@ #define HAVE_WM8758 #define AB_REPEAT_ENABLE 1 +#define ACTION_WPSAB_SINGLE ACTION_WPS_BROWSE /* Define this for LCD backlight available */ #define CONFIG_BACKLIGHT BL_IPODNANO /* port controlled */