GUI: fix some thread problems with keyHit
This commit is contained in:
parent
e1890173b2
commit
a58529a49b
|
@ -63,7 +63,7 @@ float FurnaceGUI::computeGradPos(int type, int chan) {
|
||||||
return chanOscBright[chan];
|
return chanOscBright[chan];
|
||||||
break;
|
break;
|
||||||
case GUI_OSCREF_NOTE_TRIGGER:
|
case GUI_OSCREF_NOTE_TRIGGER:
|
||||||
return keyHit[chan]*5.0f;
|
return keyHit1[chan];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
|
|
@ -3548,12 +3548,6 @@ bool FurnaceGUI::loop() {
|
||||||
drawEffectList();
|
drawEffectList();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i=0; i<e->getTotalChannelCount(); i++) {
|
|
||||||
if (e->keyHit[i]) {
|
|
||||||
e->keyHit[i]=false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (inspectorOpen) ImGui::ShowMetricsWindow(&inspectorOpen);
|
if (inspectorOpen) ImGui::ShowMetricsWindow(&inspectorOpen);
|
||||||
|
|
||||||
if (firstFrame) {
|
if (firstFrame) {
|
||||||
|
@ -5462,6 +5456,9 @@ FurnaceGUI::FurnaceGUI():
|
||||||
waveGenFMCon2[0]=true;
|
waveGenFMCon2[0]=true;
|
||||||
waveGenFMCon3[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(pianoKeyHit,0,sizeof(float)*180);
|
||||||
memset(pianoKeyPressed,0,sizeof(bool)*180);
|
memset(pianoKeyPressed,0,sizeof(bool)*180);
|
||||||
|
|
||||||
|
|
|
@ -477,6 +477,7 @@ void FurnaceGUI::drawPattern() {
|
||||||
ImVec4 chanHeadBase=chanHead;
|
ImVec4 chanHeadBase=chanHead;
|
||||||
|
|
||||||
if (e->keyHit[i]) {
|
if (e->keyHit[i]) {
|
||||||
|
keyHit1[i]=1.0f;
|
||||||
if (settings.channelFeedbackStyle==1) {
|
if (settings.channelFeedbackStyle==1) {
|
||||||
keyHit[i]=0.2;
|
keyHit[i]=0.2;
|
||||||
if (!muted) {
|
if (!muted) {
|
||||||
|
@ -486,6 +487,7 @@ void FurnaceGUI::drawPattern() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
e->keyHit[i]=false;
|
||||||
}
|
}
|
||||||
if (settings.channelFeedbackStyle==2 && e->isRunning()) {
|
if (settings.channelFeedbackStyle==2 && e->isRunning()) {
|
||||||
float amount=((float)(e->getChanState(i)->volume>>8)/(float)e->getMaxVolumeChan(i));
|
float amount=((float)(e->getChanState(i)->volume>>8)/(float)e->getMaxVolumeChan(i));
|
||||||
|
@ -699,6 +701,7 @@ void FurnaceGUI::drawPattern() {
|
||||||
|
|
||||||
if (e->keyHit[i]) {
|
if (e->keyHit[i]) {
|
||||||
keyHit1[i]=1.0f;
|
keyHit1[i]=1.0f;
|
||||||
|
e->keyHit[i]=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e->isRunning()) {
|
if (e->isRunning()) {
|
||||||
|
|
Loading…
Reference in a new issue