diff options
author | Hardeep Sidhu <dyp@pobox.com> | 2003-08-29 04:36:35 +0000 |
---|---|---|
committer | Hardeep Sidhu <dyp@pobox.com> | 2003-08-29 04:36:35 +0000 |
commit | 4160b75456bc42adaa0857bf62fa89f01ba951d2 (patch) | |
tree | 6df5ae025d188425b59ba6c36b91b9470484977e | |
parent | 20ac4a281af78077ce56271e11d11e151fe9cd3e (diff) | |
download | rockbox-4160b75456bc42adaa0857bf62fa89f01ba951d2.tar.gz rockbox-4160b75456bc42adaa0857bf62fa89f01ba951d2.zip |
Pass actual time instead of offset to mpeg_ff_rewind. Fixes ff/rew to wrong time when mpeg thread is busy loading data.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3943 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/wps.c | 4 | ||||
-rw-r--r-- | firmware/export/mpeg.h | 2 | ||||
-rw-r--r-- | firmware/mpeg.c | 8 |
3 files changed, 7 insertions, 7 deletions
diff --git a/apps/wps.c b/apps/wps.c index ca1d80fe28..d41413c179 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -391,7 +391,7 @@ static bool ffwd_rew(int button) | |||
391 | 391 | ||
392 | case BUTTON_LEFT | BUTTON_REL: | 392 | case BUTTON_LEFT | BUTTON_REL: |
393 | case BUTTON_RIGHT | BUTTON_REL: | 393 | case BUTTON_RIGHT | BUTTON_REL: |
394 | mpeg_ff_rewind(ff_rewind_count); | 394 | mpeg_ff_rewind(id3->elapsed+ff_rewind_count); |
395 | ff_rewind_count = 0; | 395 | ff_rewind_count = 0; |
396 | ff_rewind = false; | 396 | ff_rewind = false; |
397 | if (paused) | 397 | if (paused) |
@@ -855,7 +855,7 @@ int wps_show(void) | |||
855 | if (!paused) | 855 | if (!paused) |
856 | mpeg_pause(); | 856 | mpeg_pause(); |
857 | 857 | ||
858 | mpeg_ff_rewind(-(id3->elapsed)); | 858 | mpeg_ff_rewind(0); |
859 | 859 | ||
860 | if (!paused) | 860 | if (!paused) |
861 | mpeg_resume(); | 861 | mpeg_resume(); |
diff --git a/firmware/export/mpeg.h b/firmware/export/mpeg.h index 9f266bf9e5..bdf65dd7a8 100644 --- a/firmware/export/mpeg.h +++ b/firmware/export/mpeg.h | |||
@@ -67,7 +67,7 @@ void mpeg_pause(void); | |||
67 | void mpeg_resume(void); | 67 | void mpeg_resume(void); |
68 | void mpeg_next(void); | 68 | void mpeg_next(void); |
69 | void mpeg_prev(void); | 69 | void mpeg_prev(void); |
70 | void mpeg_ff_rewind(int change); | 70 | void mpeg_ff_rewind(int newtime); |
71 | void mpeg_flush_and_reload_tracks(void); | 71 | void mpeg_flush_and_reload_tracks(void); |
72 | void mpeg_sound_set(int setting, int value); | 72 | void mpeg_sound_set(int setting, int value); |
73 | int mpeg_sound_min(int setting); | 73 | int mpeg_sound_min(int setting); |
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index ec5a8b3684..347e8ded21 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c | |||
@@ -1497,7 +1497,7 @@ static void mpeg_thread(void) | |||
1497 | case MPEG_FF_REWIND: { | 1497 | case MPEG_FF_REWIND: { |
1498 | struct mp3entry *id3 = mpeg_current_track(); | 1498 | struct mp3entry *id3 = mpeg_current_track(); |
1499 | unsigned int oldtime = id3->elapsed; | 1499 | unsigned int oldtime = id3->elapsed; |
1500 | unsigned int newtime = oldtime + (int)ev.data; | 1500 | unsigned int newtime = (unsigned int)ev.data; |
1501 | int curpos, newpos, diffpos; | 1501 | int curpos, newpos, diffpos; |
1502 | DEBUGF("MPEG_FF_REWIND\n"); | 1502 | DEBUGF("MPEG_FF_REWIND\n"); |
1503 | 1503 | ||
@@ -2450,12 +2450,12 @@ void mpeg_prev(void) | |||
2450 | #endif | 2450 | #endif |
2451 | } | 2451 | } |
2452 | 2452 | ||
2453 | void mpeg_ff_rewind(int change) | 2453 | void mpeg_ff_rewind(int newtime) |
2454 | { | 2454 | { |
2455 | #ifndef SIMULATOR | 2455 | #ifndef SIMULATOR |
2456 | queue_post(&mpeg_queue, MPEG_FF_REWIND, (void *)change); | 2456 | queue_post(&mpeg_queue, MPEG_FF_REWIND, (void *)newtime); |
2457 | #else | 2457 | #else |
2458 | (void)change; | 2458 | (void)newtime; |
2459 | #endif | 2459 | #endif |
2460 | } | 2460 | } |
2461 | 2461 | ||