commit 02d02c4d029443c43c546b3aaf4b2f4557f1b94b
parent 294940198b418bfa394db986cff733104fb57baf
Author: fundamental <[email protected]>
Date: Tue, 4 May 2010 13:37:05 -0400
WIP: solving Nio segfault
Diffstat:
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;
}