Fix a bug whereby ACTION_TREE_WPS (GO_TO_PREVIOUS_MUSIC) brings us to the

radio, despite playback having been started since we last visited the radio.

To reproduce:
-go to the radio,
-stop and exit it,
-go to the browser, and do a playlist insert,
    or start a playlist from the playlist catalog,
    anything that starts playback without going to the WPS.
-Press ACTION_TREE_WPS.
Find yourself back into the radio.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15085 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Stéphane Doyon 2007-10-12 04:20:20 +00:00
parent 84ed3fd50f
commit 6d08116691
3 changed files with 16 additions and 1 deletions

View file

@ -99,6 +99,7 @@
#include "talk.h" #include "talk.h"
#include "splash.h" #include "splash.h"
#include "rbunicode.h" #include "rbunicode.h"
#include "root_menu.h"
#define PLAYLIST_CONTROL_FILE ROCKBOX_DIR "/.playlist_control" #define PLAYLIST_CONTROL_FILE ROCKBOX_DIR "/.playlist_control"
#define PLAYLIST_CONTROL_FILE_VERSION 2 #define PLAYLIST_CONTROL_FILE_VERSION 2
@ -2387,6 +2388,11 @@ int playlist_start(int start_index, int offset)
{ {
struct playlist_info* playlist = &current_playlist; struct playlist_info* playlist = &current_playlist;
/* Cancel FM radio selection as previous music. For cases where we start
playback without going to the WPS, such as playlist insert.. or
playlist catalog. */
previous_music_is_wps();
playlist->index = start_index; playlist->index = start_index;
#if CONFIG_CODEC != SWCODEC #if CONFIG_CODEC != SWCODEC

View file

@ -487,10 +487,17 @@ static int load_context_screen(int selection)
else else
return GO_TO_PREVIOUS; return GO_TO_PREVIOUS;
} }
static int previous_music = GO_TO_WPS;
void previous_music_is_wps(void)
{
previous_music = GO_TO_WPS;
}
void root_menu(void) void root_menu(void)
{ {
int previous_browser = GO_TO_FILEBROWSER; int previous_browser = GO_TO_FILEBROWSER;
int previous_music = GO_TO_WPS;
int next_screen = GO_TO_ROOT; int next_screen = GO_TO_ROOT;
int selected = 0; int selected = 0;

View file

@ -51,4 +51,6 @@ enum {
extern const struct menu_item_ex root_menu_; extern const struct menu_item_ex root_menu_;
extern void previous_music_is_wps(void);
#endif /* __ROOT_MENU_H__ */ #endif /* __ROOT_MENU_H__ */