diff options
author | Stéphane Doyon <s.doyon@videotron.ca> | 2007-10-12 04:20:20 +0000 |
---|---|---|
committer | Stéphane Doyon <s.doyon@videotron.ca> | 2007-10-12 04:20:20 +0000 |
commit | 6d08116691cb56c96fbe88028dfe05e2c6198fef (patch) | |
tree | cbf63f38b061d9447c9c92024f75d51a09703b08 /apps | |
parent | 84ed3fd50fa2685c02c58e45a28b9cae247645ef (diff) | |
download | rockbox-6d08116691cb56c96fbe88028dfe05e2c6198fef.tar.gz rockbox-6d08116691cb56c96fbe88028dfe05e2c6198fef.zip |
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
Diffstat (limited to 'apps')
-rw-r--r-- | apps/playlist.c | 6 | ||||
-rw-r--r-- | apps/root_menu.c | 9 | ||||
-rw-r--r-- | apps/root_menu.h | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/apps/playlist.c b/apps/playlist.c index 99b8c68eb4..47a1f3730d 100644 --- a/apps/playlist.c +++ b/apps/playlist.c | |||
@@ -99,6 +99,7 @@ | |||
99 | #include "talk.h" | 99 | #include "talk.h" |
100 | #include "splash.h" | 100 | #include "splash.h" |
101 | #include "rbunicode.h" | 101 | #include "rbunicode.h" |
102 | #include "root_menu.h" | ||
102 | 103 | ||
103 | #define PLAYLIST_CONTROL_FILE ROCKBOX_DIR "/.playlist_control" | 104 | #define PLAYLIST_CONTROL_FILE ROCKBOX_DIR "/.playlist_control" |
104 | #define PLAYLIST_CONTROL_FILE_VERSION 2 | 105 | #define PLAYLIST_CONTROL_FILE_VERSION 2 |
@@ -2387,6 +2388,11 @@ int playlist_start(int start_index, int offset) | |||
2387 | { | 2388 | { |
2388 | struct playlist_info* playlist = ¤t_playlist; | 2389 | struct playlist_info* playlist = ¤t_playlist; |
2389 | 2390 | ||
2391 | /* Cancel FM radio selection as previous music. For cases where we start | ||
2392 | playback without going to the WPS, such as playlist insert.. or | ||
2393 | playlist catalog. */ | ||
2394 | previous_music_is_wps(); | ||
2395 | |||
2390 | playlist->index = start_index; | 2396 | playlist->index = start_index; |
2391 | 2397 | ||
2392 | #if CONFIG_CODEC != SWCODEC | 2398 | #if CONFIG_CODEC != SWCODEC |
diff --git a/apps/root_menu.c b/apps/root_menu.c index 358dc0bed6..1c6c868bfc 100644 --- a/apps/root_menu.c +++ b/apps/root_menu.c | |||
@@ -487,10 +487,17 @@ static int load_context_screen(int selection) | |||
487 | else | 487 | else |
488 | return GO_TO_PREVIOUS; | 488 | return GO_TO_PREVIOUS; |
489 | } | 489 | } |
490 | |||
491 | static int previous_music = GO_TO_WPS; | ||
492 | |||
493 | void previous_music_is_wps(void) | ||
494 | { | ||
495 | previous_music = GO_TO_WPS; | ||
496 | } | ||
497 | |||
490 | void root_menu(void) | 498 | void root_menu(void) |
491 | { | 499 | { |
492 | int previous_browser = GO_TO_FILEBROWSER; | 500 | int previous_browser = GO_TO_FILEBROWSER; |
493 | int previous_music = GO_TO_WPS; | ||
494 | int next_screen = GO_TO_ROOT; | 501 | int next_screen = GO_TO_ROOT; |
495 | int selected = 0; | 502 | int selected = 0; |
496 | 503 | ||
diff --git a/apps/root_menu.h b/apps/root_menu.h index 0e189f84fc..4513674447 100644 --- a/apps/root_menu.h +++ b/apps/root_menu.h | |||
@@ -51,4 +51,6 @@ enum { | |||
51 | 51 | ||
52 | extern const struct menu_item_ex root_menu_; | 52 | extern const struct menu_item_ex root_menu_; |
53 | 53 | ||
54 | extern void previous_music_is_wps(void); | ||
55 | |||
54 | #endif /* __ROOT_MENU_H__ */ | 56 | #endif /* __ROOT_MENU_H__ */ |