Disable Metronome in Free Record Mode

main
Georg Krause 2019-06-06 14:54:44 +02:00
parent 994ead34ff
commit 7d217629a9
5 changed files with 19 additions and 7 deletions

View File

@ -232,7 +232,11 @@ void handleDspEvents()
if ( availableRead >= sizeof(EventMetronomeActive) ) {
EventMetronomeActive ev(false);
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMetronomeActive) );
jack->getLogic()->metronomeEnable(ev.active);
if(!jack->getFreeRecMode()) {
jack->getLogic()
->metronomeEnable(
ev.active);
}
}
break;
}

View File

@ -120,7 +120,7 @@ void handleGuiEvents()
if ( availableRead >= sizeof(EventMetronomeActive) ) {
EventMetronomeActive ev(false);
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventMetronomeActive) );
gui->getMasterTrack()->metronomeEnable(ev.active);
gui->getMasterTrack()->metronomeActivate(ev.active);
}
break;
}
@ -143,6 +143,7 @@ void handleGuiEvents()
sizeof(EventFreeRecordMode));
gui->getMasterTrack()->setFreeRecMode(
e.enable);
gui->getMasterTrack()->metronomeEnable(!e.enable);
}
break;
}

View File

@ -162,8 +162,7 @@ static void gmastertrack_button_callback(Fl_Widget *w, void *data)
writeToDspRingbuffer( &e );
} else {
Avtk::LightButton* b = (Avtk::LightButton*)w;
b->value( !b->value() );
EventMetronomeActive e = EventMetronomeActive( b->value() );
EventMetronomeActive e = EventMetronomeActive( !b->value() );
writeToDspRingbuffer( &e );
}
@ -367,9 +366,15 @@ void GMasterTrack::setInputToActive(int to, bool f)
inputToSidechainKey.value( f );
}
void GMasterTrack::metronomeEnable( bool b )
{
metronomeButton.value( b );
void GMasterTrack::metronomeEnable(bool b) {
if(b)
metronomeButton.activate();
else
metronomeButton.deactivate();
}
void GMasterTrack::metronomeActivate(bool b) {
metronomeButton.value(b);
}
void

View File

@ -59,6 +59,7 @@ public:
void setInputToActive(int to, bool f);
void metronomeEnable( bool b );
void metronomeActivate(bool b);
void
setClipLength(int l);
void setFreeRecMode(bool e);

View File

@ -790,4 +790,5 @@ void Jack::setFreeRecMode(bool e)
EventFreeRecordMode ev = EventFreeRecordMode(e);
writeToGuiRingbuffer(&ev);
getLogic()->metronomeEnable(false);
}