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];
|
||||
break;
|
||||
case GUI_OSCREF_NOTE_TRIGGER:
|
||||
return keyHit[chan]*5.0f;
|
||||
return keyHit1[chan];
|
||||
break;
|
||||
}
|
||||
return 0.0f;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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()) {
|
||||
|
|
Loading…
Reference in New Issue