new chan osc, part 7

i am done
This commit is contained in:
tildearrow 2025-03-02 16:14:49 -05:00
parent 6265d2cd39
commit 49a8693dcb
35 changed files with 606 additions and 217 deletions

View file

@ -29,6 +29,10 @@
void DivPlatformSegaPCM::acquire(short** buf, size_t len) {
thread_local int os[2];
for (int i=0; i<16; i++) {
oscBuf[i]->begin(len);
}
for (size_t h=0; h<len; h++) {
while (!writes.empty()) {
QueuedWrite w=writes.front();
@ -49,9 +53,13 @@ void DivPlatformSegaPCM::acquire(short** buf, size_t len) {
buf[1][h]=os[1];
for (int i=0; i<16; i++) {
oscBuf[i]->data[oscBuf[i]->needle++]=(pcm.lastOut[i][0]+pcm.lastOut[i][1])>>1;
oscBuf[i]->putSample(h,(pcm.lastOut[i][0]+pcm.lastOut[i][1])>>1);
}
}
for (int i=0; i<16; i++) {
oscBuf[i]->end(len);
}
}
void DivPlatformSegaPCM::tick(bool sysTick) {
@ -551,7 +559,7 @@ void DivPlatformSegaPCM::setFlags(const DivConfig& flags) {
CHECK_CUSTOM_CLOCK;
rate=chipClock/256;
for (int i=0; i<16; i++) {
oscBuf[i]->rate=rate;
oscBuf[i]->setRate(rate);
}
oldSlides=flags.getBool("oldSlides",false);