fix JACK transport state control

This commit is contained in:
Harry van Haaren 2016-09-20 20:10:51 +01:00
parent cfd0dc36d9
commit c289c6a997
3 changed files with 14 additions and 1 deletions

View file

@ -267,7 +267,14 @@ Jack::~Jack()
void Jack::activate() void Jack::activate()
{ {
jack_activate( client ); jack_activate( client );
//jack_transport_start(client); }
void Jack::transportRolling(bool rolling)
{
if(rolling)
jack_transport_start(client);
else
jack_transport_stop(client);
} }
void Jack::quit() void Jack::quit()

View file

@ -80,6 +80,8 @@ class Jack
GridLogic* getGridLogic(){return gridLogic;} GridLogic* getGridLogic(){return gridLogic;}
TimeManager* getTimeManager(){return timeManager;} TimeManager* getTimeManager(){return timeManager;}
ControllerUpdater* getControllerUpdater(){return controllerUpdater;} ControllerUpdater* getControllerUpdater(){return controllerUpdater;}
void transportRolling(bool rolling);
/// register a MIDI observer /// register a MIDI observer
void registerMidiIO( MidiIO* mo ); void registerMidiIO( MidiIO* mo );

View file

@ -162,6 +162,10 @@ int TimeManager::getNframesToBeat()
void TimeManager::setTransportState( TRANSPORT_STATE s ) void TimeManager::setTransportState( TRANSPORT_STATE s )
{ {
transportState = s; transportState = s;
if(transportState == TRANSPORT_STOPPED)
jack->transportRolling(false);
else
jack->transportRolling(true);
} }
void TimeManager::process(Buffers* buffers) void TimeManager::process(Buffers* buffers)