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) ) { if ( availableRead >= sizeof(EventMetronomeActive) ) {
EventMetronomeActive ev(false); EventMetronomeActive ev(false);
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMetronomeActive) ); jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMetronomeActive) );
jack->getLogic()->metronomeEnable(ev.active); if(!jack->getFreeRecMode()) {
jack->getLogic()
->metronomeEnable(
ev.active);
}
} }
break; break;
} }

View File

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

View File

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

View File

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

View File

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