new chan osc, part 4

adapt dispatch code to it
This commit is contained in:
tildearrow 2025-03-01 19:49:56 -05:00
parent c0e4552c52
commit a16d20e190
18 changed files with 218 additions and 88 deletions

View file

@ -68,6 +68,9 @@ const char** DivPlatformC140::getRegisterSheet() {
}
void DivPlatformC140::acquire_219(short** buf, size_t len) {
for (int i=0; i<totalChans; i++) {
oscBuf[i]->begin(len);
}
for (size_t h=0; h<len; h++) {
while (!writes.empty()) {
QueuedWrite w=writes.front();
@ -92,15 +95,21 @@ void DivPlatformC140::acquire_219(short** buf, size_t len) {
for (int i=0; i<totalChans; i++) {
if (c219.voice[i].inv_lout) {
oscBuf[i]->data[oscBuf[i]->needle++]=(c219.voice[i].lout-c219.voice[i].rout)>>10;
oscBuf[i]->putSample(h,(c219.voice[i].lout-c219.voice[i].rout)>>10);
} else {
oscBuf[i]->data[oscBuf[i]->needle++]=(c219.voice[i].lout+c219.voice[i].rout)>>10;
oscBuf[i]->putSample(h,(c219.voice[i].lout+c219.voice[i].rout)>>10);
}
}
}
for (int i=0; i<totalChans; i++) {
oscBuf[i]->end(len);
}
}
void DivPlatformC140::acquire_140(short** buf, size_t len) {
for (int i=0; i<totalChans; i++) {
oscBuf[i]->begin(len);
}
for (size_t h=0; h<len; h++) {
while (!writes.empty()) {
QueuedWrite w=writes.front();
@ -124,9 +133,12 @@ void DivPlatformC140::acquire_140(short** buf, size_t len) {
buf[1][h]=c140.rout;
for (int i=0; i<totalChans; i++) {
oscBuf[i]->data[oscBuf[i]->needle++]=(c140.voice[i].lout+c140.voice[i].rout)>>10;
oscBuf[i]->putSample(h,(c140.voice[i].lout+c140.voice[i].rout)>>10);
}
}
for (int i=0; i<totalChans; i++) {
oscBuf[i]->end(len);
}
}
void DivPlatformC140::acquire(short** buf, size_t len) {
@ -752,7 +764,7 @@ void DivPlatformC140::setFlags(const DivConfig& flags) {
c140_bank_type(&c140,bankType);
}
for (int i=0; i<totalChans; i++) {
oscBuf[i]->rate=rate;
oscBuf[i]->setRate(rate);
}
}