diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-08-21 17:38:56 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-08-21 17:38:56 +0000 |
commit | 0c2e9f21e31422942001bf603f3d340b5a648136 (patch) | |
tree | f6ba531b33759edddfaa6c53ed2aa25379750b58 /firmware | |
parent | 84cf9d446c68b577256c92b631d68bbeae6451b8 (diff) | |
download | rockbox-0c2e9f21e31422942001bf603f3d340b5a648136.tar.gz rockbox-0c2e9f21e31422942001bf603f3d340b5a648136.zip |
Stays in pause mode after seek
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1896 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/mpeg.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 0c6a1a3355..0117102e57 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c | |||
@@ -285,7 +285,6 @@ static bool playing = false; | |||
285 | static bool play_pending = false; | 285 | static bool play_pending = false; |
286 | #else | 286 | #else |
287 | static int last_dma_tick = 0; | 287 | static int last_dma_tick = 0; |
288 | static int pause_tick = 0; | ||
289 | 288 | ||
290 | #ifdef HAVE_MAS3507D | 289 | #ifdef HAVE_MAS3507D |
291 | 290 | ||
@@ -683,6 +682,8 @@ static void track_change(void) | |||
683 | 682 | ||
684 | static void mpeg_thread(void) | 683 | static void mpeg_thread(void) |
685 | { | 684 | { |
685 | static int pause_tick = 0; | ||
686 | static unsigned int pause_track = 0; | ||
686 | struct event ev; | 687 | struct event ev; |
687 | int len; | 688 | int len; |
688 | int free_space_left; | 689 | int free_space_left; |
@@ -760,6 +761,7 @@ static void mpeg_thread(void) | |||
760 | paused = true; | 761 | paused = true; |
761 | playing = false; | 762 | playing = false; |
762 | pause_tick = current_tick; | 763 | pause_tick = current_tick; |
764 | pause_track = current_track_counter; | ||
763 | stop_dma(); | 765 | stop_dma(); |
764 | break; | 766 | break; |
765 | 767 | ||
@@ -769,10 +771,13 @@ static void mpeg_thread(void) | |||
769 | paused = false; | 771 | paused = false; |
770 | if (!play_pending) | 772 | if (!play_pending) |
771 | { | 773 | { |
772 | playing = true; | 774 | playing = true; |
773 | last_dma_tick += current_tick - pause_tick; | 775 | if ( current_track_counter == pause_track ) |
774 | pause_tick = 0; | 776 | last_dma_tick += current_tick - pause_tick; |
775 | start_dma(); | 777 | else |
778 | last_dma_tick = current_tick; | ||
779 | pause_tick = 0; | ||
780 | start_dma(); | ||
776 | } | 781 | } |
777 | break; | 782 | break; |
778 | 783 | ||
@@ -1276,7 +1281,7 @@ void mpeg_prev(void) | |||
1276 | #else | 1281 | #else |
1277 | char* file = playlist_next(-1,NULL); | 1282 | char* file = playlist_next(-1,NULL); |
1278 | mp3info(&taginfo, file); | 1283 | mp3info(&taginfo, file); |
1279 | current_track_counter--; | 1284 | current_track_counter++; |
1280 | playing = true; | 1285 | playing = true; |
1281 | #endif | 1286 | #endif |
1282 | } | 1287 | } |