diff options
| author | Stepan Moskovchenko <stevenm@rockbox.org> | 2006-05-03 05:18:18 +0000 |
|---|---|---|
| committer | Stepan Moskovchenko <stevenm@rockbox.org> | 2006-05-03 05:18:18 +0000 |
| commit | 47efba8bbfd17cb6d95ce1039e0114dc24a9dc68 (patch) | |
| tree | 4d42a46b6c0d66d7b53ec82dfc7a0ce826b5ba98 /apps/plugins/midi/synth.c | |
| parent | 224b0bf1ffe3d5ec0f61dd2df20c13c48d1644b4 (diff) | |
| download | rockbox-47efba8bbfd17cb6d95ce1039e0114dc24a9dc68.zip rockbox-47efba8bbfd17cb6d95ce1039e0114dc24a9dc68.tar.gz rockbox-47efba8bbfd17cb6d95ce1039e0114dc24a9dc68.tar.bz2 rockbox-47efba8bbfd17cb6d95ce1039e0114dc24a9dc68.tar.xz | |
Fix file descriptor leak that would cause a hard lockup every 7 files
played. A few other cosmetic changes. please, please no red build =)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9865 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/midi/synth.c')
| -rw-r--r-- | apps/plugins/midi/synth.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/apps/plugins/midi/synth.c b/apps/plugins/midi/synth.c index 44417b2..a364889 100644 --- a/apps/plugins/midi/synth.c +++ b/apps/plugins/midi/synth.c @@ -272,7 +272,7 @@ signed short int synthVoice(struct SynthObject * so) so->cp += so->delta; } - cpShifted = so->cp >> 10; //Was 10 + cpShifted = so->cp >> FRACTSIZE; //Was 10 if( (cpShifted > (wf->numSamples) && (so->state != STATE_RAMPDOWN))) { @@ -286,7 +286,7 @@ signed short int synthVoice(struct SynthObject * so) { if(wf->mode & LOOP_REVERSE) { - so->cp = (wf->endLoop)<<10; //Was 10 + so->cp = (wf->endLoop)<<FRACTSIZE; //Was 10 cpShifted = wf->endLoop; s2=getSample((cpShifted), wf); } @@ -302,7 +302,7 @@ signed short int synthVoice(struct SynthObject * so) so->loopState = STATE_LOOPING; if((wf->mode & (24)) == 0) { - so->cp = (wf->startLoop)<<10; //Was 10 + so->cp = (wf->startLoop)<<FRACTSIZE; //Was 10 cpShifted = wf->startLoop; s2=getSample((cpShifted), wf); } @@ -315,8 +315,8 @@ signed short int synthVoice(struct SynthObject * so) /* Better, working, linear interpolation */ s1=getSample((cpShifted), wf); //\|/ Was 1023)) >> 10 - s = s1 + ((signed)((s2 - s1) * (so->cp & 1023))>>10); //Was 10 - +// s = s1 + ((signed)((s2 - s1) * (so->cp & (1023)))>>10); //Was 10 + s = s1 + ((signed)((s2 - s1) * (so->cp & ((1<<FRACTSIZE)-1)))>>FRACTSIZE); //Was 10 /* ADSR COMMENT WOULD GO FROM HERE.........*/ |