Fixed conflict with Qt because of global "slots" macro

Co-Authored-By: Vitaly Novichkov <6751442+wohlstand@users.noreply.github.com>
Co-Authored-By: nukeykt <alexeytf2@gmail.com>
This commit is contained in:
Jasmine Iwanek
2024-07-10 07:13:25 -04:00
parent 5efc896a44
commit 5209e949ad

View File

@@ -134,7 +134,7 @@ typedef struct slot {
} slot_t;
typedef struct chan {
slot_t *slots[2];
slot_t *slotz[2]; // Don't use "slots" keyword to avoid conflict with Qt applications
struct chan *pair;
struct chip *dev;
int16_t *out[4];
@@ -860,18 +860,18 @@ channel_update_rhythm(nuked_t *dev, uint8_t data)
ch6 = &dev->chan[6];
ch7 = &dev->chan[7];
ch8 = &dev->chan[8];
ch6->out[0] = &ch6->slots[1]->out;
ch6->out[1] = &ch6->slots[1]->out;
ch6->out[0] = &ch6->slotz[1]->out;
ch6->out[1] = &ch6->slotz[1]->out;
ch6->out[2] = &dev->zeromod;
ch6->out[3] = &dev->zeromod;
ch7->out[0] = &ch7->slots[0]->out;
ch7->out[1] = &ch7->slots[0]->out;
ch7->out[2] = &ch7->slots[1]->out;
ch7->out[3] = &ch7->slots[1]->out;
ch8->out[0] = &ch8->slots[0]->out;
ch8->out[1] = &ch8->slots[0]->out;
ch8->out[2] = &ch8->slots[1]->out;
ch8->out[3] = &ch8->slots[1]->out;
ch7->out[0] = &ch7->slotz[0]->out;
ch7->out[1] = &ch7->slotz[0]->out;
ch7->out[2] = &ch7->slotz[1]->out;
ch7->out[3] = &ch7->slotz[1]->out;
ch8->out[0] = &ch8->slotz[0]->out;
ch8->out[1] = &ch8->slotz[0]->out;
ch8->out[2] = &ch8->slotz[1]->out;
ch8->out[3] = &ch8->slotz[1]->out;
for (chnum = 6; chnum < 9; chnum++)
dev->chan[chnum].chtype = ch_drum;
@@ -882,43 +882,43 @@ channel_update_rhythm(nuked_t *dev, uint8_t data)
// hh
if (dev->rhy & 0x01)
env_key_on(ch7->slots[0], egk_drum);
env_key_on(ch7->slotz[0], egk_drum);
else
env_key_off(ch7->slots[0], egk_drum);
env_key_off(ch7->slotz[0], egk_drum);
// tc
if (dev->rhy & 0x02)
env_key_on(ch8->slots[1], egk_drum);
env_key_on(ch8->slotz[1], egk_drum);
else
env_key_off(ch8->slots[1], egk_drum);
env_key_off(ch8->slotz[1], egk_drum);
// tom
if (dev->rhy & 0x04)
env_key_on(ch8->slots[0], egk_drum);
env_key_on(ch8->slotz[0], egk_drum);
else
env_key_off(ch8->slots[0], egk_drum);
env_key_off(ch8->slotz[0], egk_drum);
// sd
if (dev->rhy & 0x08)
env_key_on(ch7->slots[1], egk_drum);
env_key_on(ch7->slotz[1], egk_drum);
else
env_key_off(ch7->slots[1], egk_drum);
env_key_off(ch7->slotz[1], egk_drum);
// bd
if (dev->rhy & 0x10) {
env_key_on(ch6->slots[0], egk_drum);
env_key_on(ch6->slots[1], egk_drum);
env_key_on(ch6->slotz[0], egk_drum);
env_key_on(ch6->slotz[1], egk_drum);
} else {
env_key_off(ch6->slots[0], egk_drum);
env_key_off(ch6->slots[1], egk_drum);
env_key_off(ch6->slotz[0], egk_drum);
env_key_off(ch6->slotz[1], egk_drum);
}
} else {
for (chnum = 6; chnum < 9; chnum++) {
dev->chan[chnum].chtype = ch_2op;
channel_setup_alg(&dev->chan[chnum]);
env_key_off(dev->chan[chnum].slots[0], egk_drum);
env_key_off(dev->chan[chnum].slots[1], egk_drum);
env_key_off(dev->chan[chnum].slotz[0], egk_drum);
env_key_off(dev->chan[chnum].slotz[1], egk_drum);
}
}
}
@@ -933,15 +933,15 @@ channel_write_a0(chan_t *ch, uint8_t data)
ch->ksv = (ch->block << 1)
| ((ch->f_num >> (0x09 - ch->dev->nts)) & 0x01);
env_update_ksl(ch->slots[0]);
env_update_ksl(ch->slots[1]);
env_update_ksl(ch->slotz[0]);
env_update_ksl(ch->slotz[1]);
if (ch->dev->newm && ch->chtype == ch_4op) {
ch->pair->f_num = ch->f_num;
ch->pair->ksv = ch->ksv;
env_update_ksl(ch->pair->slots[0]);
env_update_ksl(ch->pair->slots[1]);
env_update_ksl(ch->pair->slotz[0]);
env_update_ksl(ch->pair->slotz[1]);
}
}
@@ -956,16 +956,16 @@ channel_write_b0(chan_t *ch, uint8_t data)
ch->ksv = (ch->block << 1)
| ((ch->f_num >> (0x09 - ch->dev->nts)) & 0x01);
env_update_ksl(ch->slots[0]);
env_update_ksl(ch->slots[1]);
env_update_ksl(ch->slotz[0]);
env_update_ksl(ch->slotz[1]);
if (ch->dev->newm && ch->chtype == ch_4op) {
ch->pair->f_num = ch->f_num;
ch->pair->block = ch->block;
ch->pair->ksv = ch->ksv;
env_update_ksl(ch->pair->slots[0]);
env_update_ksl(ch->pair->slots[1]);
env_update_ksl(ch->pair->slotz[0]);
env_update_ksl(ch->pair->slotz[1]);
}
}
@@ -974,20 +974,20 @@ channel_setup_alg(chan_t *ch)
{
if (ch->chtype == ch_drum) {
if (ch->ch_num == 7 || ch->ch_num == 8) {
ch->slots[0]->mod = &ch->dev->zeromod;
ch->slots[1]->mod = &ch->dev->zeromod;
ch->slotz[0]->mod = &ch->dev->zeromod;
ch->slotz[1]->mod = &ch->dev->zeromod;
return;
}
switch (ch->alg & 0x01) {
case 0x00:
ch->slots[0]->mod = &ch->slots[0]->fbmod;
ch->slots[1]->mod = &ch->slots[0]->out;
ch->slotz[0]->mod = &ch->slotz[0]->fbmod;
ch->slotz[1]->mod = &ch->slotz[0]->out;
break;
case 0x01:
ch->slots[0]->mod = &ch->slots[0]->fbmod;
ch->slots[1]->mod = &ch->dev->zeromod;
ch->slotz[0]->mod = &ch->slotz[0]->fbmod;
ch->slotz[1]->mod = &ch->dev->zeromod;
break;
default:
@@ -1007,46 +1007,46 @@ channel_setup_alg(chan_t *ch)
switch (ch->alg & 0x03) {
case 0x00:
ch->pair->slots[0]->mod = &ch->pair->slots[0]->fbmod;
ch->pair->slots[1]->mod = &ch->pair->slots[0]->out;
ch->slots[0]->mod = &ch->pair->slots[1]->out;
ch->slots[1]->mod = &ch->slots[0]->out;
ch->out[0] = &ch->slots[1]->out;
ch->pair->slotz[0]->mod = &ch->pair->slotz[0]->fbmod;
ch->pair->slotz[1]->mod = &ch->pair->slotz[0]->out;
ch->slotz[0]->mod = &ch->pair->slotz[1]->out;
ch->slotz[1]->mod = &ch->slotz[0]->out;
ch->out[0] = &ch->slotz[1]->out;
ch->out[1] = &ch->dev->zeromod;
ch->out[2] = &ch->dev->zeromod;
ch->out[3] = &ch->dev->zeromod;
break;
case 0x01:
ch->pair->slots[0]->mod = &ch->pair->slots[0]->fbmod;
ch->pair->slots[1]->mod = &ch->pair->slots[0]->out;
ch->slots[0]->mod = &ch->dev->zeromod;
ch->slots[1]->mod = &ch->slots[0]->out;
ch->out[0] = &ch->pair->slots[1]->out;
ch->out[1] = &ch->slots[1]->out;
ch->pair->slotz[0]->mod = &ch->pair->slotz[0]->fbmod;
ch->pair->slotz[1]->mod = &ch->pair->slotz[0]->out;
ch->slotz[0]->mod = &ch->dev->zeromod;
ch->slotz[1]->mod = &ch->slotz[0]->out;
ch->out[0] = &ch->pair->slotz[1]->out;
ch->out[1] = &ch->slotz[1]->out;
ch->out[2] = &ch->dev->zeromod;
ch->out[3] = &ch->dev->zeromod;
break;
case 0x02:
ch->pair->slots[0]->mod = &ch->pair->slots[0]->fbmod;
ch->pair->slots[1]->mod = &ch->dev->zeromod;
ch->slots[0]->mod = &ch->pair->slots[1]->out;
ch->slots[1]->mod = &ch->slots[0]->out;
ch->out[0] = &ch->pair->slots[0]->out;
ch->out[1] = &ch->slots[1]->out;
ch->pair->slotz[0]->mod = &ch->pair->slotz[0]->fbmod;
ch->pair->slotz[1]->mod = &ch->dev->zeromod;
ch->slotz[0]->mod = &ch->pair->slotz[1]->out;
ch->slotz[1]->mod = &ch->slotz[0]->out;
ch->out[0] = &ch->pair->slotz[0]->out;
ch->out[1] = &ch->slotz[1]->out;
ch->out[2] = &ch->dev->zeromod;
ch->out[3] = &ch->dev->zeromod;
break;
case 0x03:
ch->pair->slots[0]->mod = &ch->pair->slots[0]->fbmod;
ch->pair->slots[1]->mod = &ch->dev->zeromod;
ch->slots[0]->mod = &ch->pair->slots[1]->out;
ch->slots[1]->mod = &ch->dev->zeromod;
ch->out[0] = &ch->pair->slots[0]->out;
ch->out[1] = &ch->slots[0]->out;
ch->out[2] = &ch->slots[1]->out;
ch->pair->slotz[0]->mod = &ch->pair->slotz[0]->fbmod;
ch->pair->slotz[1]->mod = &ch->dev->zeromod;
ch->slotz[0]->mod = &ch->pair->slotz[1]->out;
ch->slotz[1]->mod = &ch->dev->zeromod;
ch->out[0] = &ch->pair->slotz[0]->out;
ch->out[1] = &ch->slotz[0]->out;
ch->out[2] = &ch->slotz[1]->out;
ch->out[3] = &ch->dev->zeromod;
break;
@@ -1056,19 +1056,19 @@ channel_setup_alg(chan_t *ch)
} else
switch (ch->alg & 0x01) {
case 0x00:
ch->slots[0]->mod = &ch->slots[0]->fbmod;
ch->slots[1]->mod = &ch->slots[0]->out;
ch->out[0] = &ch->slots[1]->out;
ch->slotz[0]->mod = &ch->slotz[0]->fbmod;
ch->slotz[1]->mod = &ch->slotz[0]->out;
ch->out[0] = &ch->slotz[1]->out;
ch->out[1] = &ch->dev->zeromod;
ch->out[2] = &ch->dev->zeromod;
ch->out[3] = &ch->dev->zeromod;
break;
case 0x01:
ch->slots[0]->mod = &ch->slots[0]->fbmod;
ch->slots[1]->mod = &ch->dev->zeromod;
ch->out[0] = &ch->slots[0]->out;
ch->out[1] = &ch->slots[1]->out;
ch->slotz[0]->mod = &ch->slotz[0]->fbmod;
ch->slotz[1]->mod = &ch->dev->zeromod;
ch->out[0] = &ch->slotz[0]->out;
ch->out[1] = &ch->slotz[1]->out;
ch->out[2] = &ch->dev->zeromod;
ch->out[3] = &ch->dev->zeromod;
break;
@@ -1139,17 +1139,17 @@ channel_key_on(chan_t *ch)
{
if (ch->dev->newm) {
if (ch->chtype == ch_4op) {
env_key_on(ch->slots[0], egk_norm);
env_key_on(ch->slots[1], egk_norm);
env_key_on(ch->pair->slots[0], egk_norm);
env_key_on(ch->pair->slots[1], egk_norm);
env_key_on(ch->slotz[0], egk_norm);
env_key_on(ch->slotz[1], egk_norm);
env_key_on(ch->pair->slotz[0], egk_norm);
env_key_on(ch->pair->slotz[1], egk_norm);
} else if (ch->chtype == ch_2op || ch->chtype == ch_drum) {
env_key_on(ch->slots[0], egk_norm);
env_key_on(ch->slots[1], egk_norm);
env_key_on(ch->slotz[0], egk_norm);
env_key_on(ch->slotz[1], egk_norm);
}
} else {
env_key_on(ch->slots[0], egk_norm);
env_key_on(ch->slots[1], egk_norm);
env_key_on(ch->slotz[0], egk_norm);
env_key_on(ch->slotz[1], egk_norm);
}
}
@@ -1158,17 +1158,17 @@ channel_key_off(chan_t *ch)
{
if (ch->dev->newm) {
if (ch->chtype == ch_4op) {
env_key_off(ch->slots[0], egk_norm);
env_key_off(ch->slots[1], egk_norm);
env_key_off(ch->pair->slots[0], egk_norm);
env_key_off(ch->pair->slots[1], egk_norm);
env_key_off(ch->slotz[0], egk_norm);
env_key_off(ch->slotz[1], egk_norm);
env_key_off(ch->pair->slotz[0], egk_norm);
env_key_off(ch->pair->slotz[1], egk_norm);
} else if (ch->chtype == ch_2op || ch->chtype == ch_drum) {
env_key_off(ch->slots[0], egk_norm);
env_key_off(ch->slots[1], egk_norm);
env_key_off(ch->slotz[0], egk_norm);
env_key_off(ch->slotz[1], egk_norm);
}
} else {
env_key_off(ch->slots[0], egk_norm);
env_key_off(ch->slots[1], egk_norm);
env_key_off(ch->slotz[0], egk_norm);
env_key_off(ch->slotz[1], egk_norm);
}
}
@@ -1578,8 +1578,8 @@ nuked_init(nuked_t *dev, uint32_t samplerate)
for (i = 0; i < 18; i++) {
ch = &dev->chan[i];
local_ch_slot = ch_slot[i];
ch->slots[0] = &dev->slot[local_ch_slot];
ch->slots[1] = &dev->slot[local_ch_slot + 3u];
ch->slotz[0] = &dev->slot[local_ch_slot];
ch->slotz[1] = &dev->slot[local_ch_slot + 3u];
dev->slot[local_ch_slot].chan = ch;
dev->slot[local_ch_slot + 3u].chan = ch;