summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-08-21 17:38:56 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-08-21 17:38:56 +0000
commit0c2e9f21e31422942001bf603f3d340b5a648136 (patch)
treef6ba531b33759edddfaa6c53ed2aa25379750b58 /firmware
parent84cf9d446c68b577256c92b631d68bbeae6451b8 (diff)
downloadrockbox-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.c17
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;
285static bool play_pending = false; 285static bool play_pending = false;
286#else 286#else
287static int last_dma_tick = 0; 287static int last_dma_tick = 0;
288static 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
684static void mpeg_thread(void) 683static 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}