chip flags rewrite, part 4 - DO NOT USE

the next part is to drop systemFlagsOld completely
and then to fix the GUI
This commit is contained in:
tildearrow 2022-09-29 20:13:40 -05:00
parent ee6e0aa0e0
commit 48db9a1d0c
109 changed files with 532 additions and 377 deletions

View file

@ -3467,12 +3467,77 @@ void DivEngine::setOrder(unsigned char order) {
BUSY_END;
}
void DivEngine::setSysFlags(int system, unsigned int flags, bool restart) {
void DivEngine::setSysFlags(int system, String key, bool value, bool restart) {
BUSY_BEGIN_SOFT;
saveLock.lock();
song.systemFlagsOld[system]=flags;
song.systemFlags[system].set(key,value);
saveLock.unlock();
disCont[system].dispatch->setFlags(song.systemFlagsOld[system]);
disCont[system].dispatch->setFlags(song.systemFlags[system]);
disCont[system].setRates(got.rate);
if (restart && isPlaying()) {
playSub(false);
}
BUSY_END;
}
void DivEngine::setSysFlags(int system, String key, int value, bool restart) {
BUSY_BEGIN_SOFT;
saveLock.lock();
song.systemFlags[system].set(key,value);
saveLock.unlock();
disCont[system].dispatch->setFlags(song.systemFlags[system]);
disCont[system].setRates(got.rate);
if (restart && isPlaying()) {
playSub(false);
}
BUSY_END;
}
void DivEngine::setSysFlags(int system, String key, float value, bool restart) {
BUSY_BEGIN_SOFT;
saveLock.lock();
song.systemFlags[system].set(key,value);
saveLock.unlock();
disCont[system].dispatch->setFlags(song.systemFlags[system]);
disCont[system].setRates(got.rate);
if (restart && isPlaying()) {
playSub(false);
}
BUSY_END;
}
void DivEngine::setSysFlags(int system, String key, double value, bool restart) {
BUSY_BEGIN_SOFT;
saveLock.lock();
song.systemFlags[system].set(key,value);
saveLock.unlock();
disCont[system].dispatch->setFlags(song.systemFlags[system]);
disCont[system].setRates(got.rate);
if (restart && isPlaying()) {
playSub(false);
}
BUSY_END;
}
void DivEngine::setSysFlags(int system, String key, const char* value, bool restart) {
BUSY_BEGIN_SOFT;
saveLock.lock();
song.systemFlags[system].set(key,value);
saveLock.unlock();
disCont[system].dispatch->setFlags(song.systemFlags[system]);
disCont[system].setRates(got.rate);
if (restart && isPlaying()) {
playSub(false);
}
BUSY_END;
}
void DivEngine::setSysFlags(int system, String key, String value, bool restart) {
BUSY_BEGIN_SOFT;
saveLock.lock();
song.systemFlags[system].set(key,value);
saveLock.unlock();
disCont[system].dispatch->setFlags(song.systemFlags[system]);
disCont[system].setRates(got.rate);
if (restart && isPlaying()) {
playSub(false);
@ -3630,7 +3695,7 @@ void DivEngine::rescanAudioDevices() {
void DivEngine::initDispatch() {
BUSY_BEGIN;
for (int i=0; i<song.systemLen; i++) {
disCont[i].init(song.system[i],this,getChannelCount(song.system[i]),got.rate,song.systemFlagsOld[i]);
disCont[i].init(song.system[i],this,getChannelCount(song.system[i]),got.rate,song.systemFlags[i]);
disCont[i].setRates(got.rate);
disCont[i].setQuality(lowQuality);
}