Mercurial > hg > wabletios
diff scanpath.mm @ 5:085d80989ba7
Release 1.01
author | Robert Tubb <rt300@eecs.qmul.ac.uk> |
---|---|
date | Mon, 10 Dec 2012 16:20:57 +0000 |
parents | 79c7cf39a0a0 |
children | 4ea605899aca |
line wrap: on
line diff
--- a/scanpath.mm Mon Dec 10 13:00:03 2012 +0000 +++ b/scanpath.mm Mon Dec 10 16:20:57 2012 +0000 @@ -159,11 +159,11 @@ void ScanPath::updateWavetables(){ // swap old , new double * temp; - + if(pathElements.size() == 0) return; // TODO THRED MUTEX HERE!?? // this is called from graphics thread // reset the interp between frames - +/* int i = 0; while(audioAccessing){ i++; @@ -172,6 +172,7 @@ cout << "Update wavetables had to wait for audio access " << i << " times\n"; // hardly ever happens } + */ updateAccessing = true; @@ -180,17 +181,17 @@ // now fill with new values for(int i = 0; i < numElements; i++){ // double check - if(pathElements[i].eLump->isInScanPath){ - wavetableUpdate[i] = pathElements[i].eLump->scanRadialDisplacement()/1.5; - } + + wavetableUpdate[i] = pathElements[i].eLump->scanRadialDisplacement(); + } break; case SPEED: for(int i = 0; i < numElements; i++){ - if(pathElements[i].eLump->isInScanPath){ - wavetableUpdate[i] = pathElements[i].eLump->scanLumpSpeed(); - } + + wavetableUpdate[i] = pathElements[i].eLump->scanLumpSpeed(); + } break; case SPRING_FORCE: @@ -233,6 +234,8 @@ double ScanPath::getNextSample(double aPhasor){ // move along path, interpolating between points // move between frames too + if(pathElements.size() == 0) return 0.0; + double alongPath = aPhasor*double(numElements); // indexes for interpolated points @@ -246,13 +249,14 @@ // TODO THRED MUTEX HERE!?? // this is called from audio thread - +/* int i = 0; while(updateAccessing){ i++; } + */ audioAccessing = true; - if(i>0) cout << "Audio thread had to wait for wavetable update " << i << " times\n"; + // if(i>0) cout << "Audio thread had to wait for wavetable update " << i << " times\n"; double oldsample = (1 - frac) * wavetableOld[n0] + frac * wavetableOld[n1];