diff options
author | Jens Arnold <amiconn@rockbox.org> | 2005-05-13 00:16:14 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2005-05-13 00:16:14 +0000 |
commit | 03d08ecc250ee095f46a77848bde28f162493276 (patch) | |
tree | 2076b2d4ce8551be8ae47fcfb577250bb16cdca8 /firmware/mp3_playback.c | |
parent | 61aa15969cce7a40ecac5243998ffe05129502b0 (diff) | |
download | rockbox-03d08ecc250ee095f46a77848bde28f162493276.tar.gz rockbox-03d08ecc250ee095f46a77848bde28f162493276.zip |
(1) Wait for the MAS to run out of buffered data on fade out. Fixes bug #778930/#1189756. (2) Fade in/out from/to zero. (3) Always fade in 30 steps, independent of the global volume.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6463 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/mp3_playback.c')
-rw-r--r-- | firmware/mp3_playback.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/firmware/mp3_playback.c b/firmware/mp3_playback.c index 67a5ff739b..a8d2d698eb 100644 --- a/firmware/mp3_playback.c +++ b/firmware/mp3_playback.c | |||
@@ -542,6 +542,19 @@ void mp3_play_pause(bool play) | |||
542 | paused = true; | 542 | paused = true; |
543 | cumulative_ticks += current_tick - playstart_tick; | 543 | cumulative_ticks += current_tick - playstart_tick; |
544 | } | 544 | } |
545 | } | ||
546 | |||
547 | bool mp3_pause_done(void) | ||
548 | { | ||
549 | unsigned long frame_count; | ||
550 | |||
551 | if (!paused) | ||
552 | return false; | ||
553 | |||
554 | mas_readmem(MAS_BANK_D0, MAS_D0_MPEG_FRAME_COUNT, &frame_count, 1); | ||
555 | /* This works because the frame counter never wraps, | ||
556 | * i.e. zero always means lost sync. */ | ||
557 | return frame_count == 0; | ||
545 | } | 558 | } |
546 | 559 | ||
547 | void mp3_play_stop(void) | 560 | void mp3_play_stop(void) |