GUI: fix some thread problems with keyHit

This commit is contained in:
tildearrow 2022-09-20 02:57:56 -05:00
parent e1890173b2
commit a58529a49b
3 changed files with 7 additions and 7 deletions

View File

@ -63,7 +63,7 @@ float FurnaceGUI::computeGradPos(int type, int chan) {
return chanOscBright[chan];
break;
case GUI_OSCREF_NOTE_TRIGGER:
return keyHit[chan]*5.0f;
return keyHit1[chan];
break;
}
return 0.0f;

View File

@ -3548,12 +3548,6 @@ bool FurnaceGUI::loop() {
drawEffectList();
}
for (int i=0; i<e->getTotalChannelCount(); i++) {
if (e->keyHit[i]) {
e->keyHit[i]=false;
}
}
if (inspectorOpen) ImGui::ShowMetricsWindow(&inspectorOpen);
if (firstFrame) {
@ -5462,6 +5456,9 @@ FurnaceGUI::FurnaceGUI():
waveGenFMCon2[0]=true;
waveGenFMCon3[0]=true;
memset(keyHit,0,sizeof(float)*DIV_MAX_CHANS);
memset(keyHit1,0,sizeof(float)*DIV_MAX_CHANS);
memset(pianoKeyHit,0,sizeof(float)*180);
memset(pianoKeyPressed,0,sizeof(bool)*180);

View File

@ -477,6 +477,7 @@ void FurnaceGUI::drawPattern() {
ImVec4 chanHeadBase=chanHead;
if (e->keyHit[i]) {
keyHit1[i]=1.0f;
if (settings.channelFeedbackStyle==1) {
keyHit[i]=0.2;
if (!muted) {
@ -486,6 +487,7 @@ void FurnaceGUI::drawPattern() {
}
}
}
e->keyHit[i]=false;
}
if (settings.channelFeedbackStyle==2 && e->isRunning()) {
float amount=((float)(e->getChanState(i)->volume>>8)/(float)e->getMaxVolumeChan(i));
@ -699,6 +701,7 @@ void FurnaceGUI::drawPattern() {
if (e->keyHit[i]) {
keyHit1[i]=1.0f;
e->keyHit[i]=false;
}
if (e->isRunning()) {