diff options
| author | Miika Pekkarinen <miipekk@ihme.org> | 2005-12-15 18:44:59 +0000 |
|---|---|---|
| committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-12-15 18:44:59 +0000 |
| commit | 07fd5d9534501ff594bc8cc6b260a41e790a7154 (patch) | |
| tree | 2d7baf59f35f6eb4c153d3580216162d5522f5b2 /apps | |
| parent | 6d89649c42d6923a9213d5682e6c2269e6da72a7 (diff) | |
| download | rockbox-07fd5d9534501ff594bc8cc6b260a41e790a7154.zip rockbox-07fd5d9534501ff594bc8cc6b260a41e790a7154.tar.gz rockbox-07fd5d9534501ff594bc8cc6b260a41e790a7154.tar.bz2 rockbox-07fd5d9534501ff594bc8cc6b260a41e790a7154.tar.xz | |
Fixed a division by zero problem with simulator when crossfade is
disabled.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8245 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/pcmbuf.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/pcmbuf.c b/apps/pcmbuf.c index 474d09e..4277dca 100644 --- a/apps/pcmbuf.c +++ b/apps/pcmbuf.c @@ -442,7 +442,9 @@ static void crossfade_start(void) break ; case CFM_FLUSH: - crossfade_rem = bytesleft /2; + crossfade_rem = (bytesleft - CHUNK_SIZE) /2; + crossfade_fade_in_rem = 0; + crossfade_fade_in_amount = 0; break ; } @@ -537,9 +539,12 @@ int crossfade(short *buf, const short *buf2, int length) crossfade_rem -= size; if (crossfade_rem <= 0) { - size_insert = MAX(0, MIN(crossfade_fade_in_rem, length - size)); - fade_insert(&buf2[size], size_insert*2); - crossfade_fade_in_rem -= size_insert; + if (crossfade_fade_in_rem > 0 && crossfade_fade_in_amount > 0) + { + size_insert = MAX(0, MIN(crossfade_fade_in_rem, length - size)); + fade_insert(&buf2[size], size_insert*2); + crossfade_fade_in_rem -= size_insert; + } if (crossfade_fade_in_rem <= 0) crossfade_active = false; |