zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 02d02c4d029443c43c546b3aaf4b2f4557f1b94b
parent 294940198b418bfa394db986cff733104fb57baf
Author: fundamental <[email protected]>
Date:   Tue,  4 May 2010 13:37:05 -0400

WIP: solving Nio segfault

Diffstat:
Msrc/Nio/OutMgr.cpp | 19+++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/Nio/OutMgr.cpp b/src/Nio/OutMgr.cpp @@ -114,19 +114,26 @@ void OutMgr::addSmps(REALTYPE *l, REALTYPE *r) memcpy(priBuffCurrent.r(), smps.r().c_buf(), SOUND_BUFFER_SIZE*sizeof(REALTYPE)); priBuffCurrent.l() += SOUND_BUFFER_SIZE; priBuffCurrent.r() += SOUND_BUFFER_SIZE; + stales += SOUND_BUFFER_SIZE; } void OutMgr::makeStale(unsigned int size) { - stales = size; + //stales = size; } void OutMgr::removeStaleSmps() { - int toShift = priBuf.l() + stales - priBuffCurrent.l(); - memmove(priBuf.l(), priBuf.l()+stales, toShift); - memmove(priBuf.r(), priBuf.r()+stales, toShift); - priBuffCurrent.l() = toShift + priBuf.l(); - priBuffCurrent.r() = toShift + priBuf.r(); + int toShift = storedSmps() - stales; + cout << "Beta toShift" << toShift << endl << "stales:" << stales << endl; + if(!stales) + return; + cout << "toShift" << toShift << endl << "stales:" << stales << endl; + + memmove(priBuf.l(), priBuf.l()+stales, stales*sizeof(float)); + memmove(priBuf.r(), priBuf.r()+stales, stales*sizeof(float)); + priBuffCurrent.l() -= stales; + priBuffCurrent.r() -= stales; + stales = 0; }