diff options
author | Robin Gareus <robin@gareus.org> | 2016-05-25 19:20:09 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-05-25 19:20:09 +0200 |
commit | 1d48648a734423d2a1b1689efaa32e7f6452c5ea (patch) | |
tree | 4e2c6259391904cc2772fe5aa66f8aa57d589925 /libs/ardour/port_manager.cc | |
parent | ad7295f5e19017bfffbab4f83312adc9d08c365d (diff) |
fix timecode update after locate.
Various session rt-events set "_send_timecode_update" to true,
but at the same time queue post-transport-work.
The timecode-update is generated, but due to pending transport work
session->silent() is true and the timecode was never sent.
Diffstat (limited to 'libs/ardour/port_manager.cc')
-rw-r--r-- | libs/ardour/port_manager.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/ardour/port_manager.cc b/libs/ardour/port_manager.cc index 93cb5fbb1a..1eafca0574 100644 --- a/libs/ardour/port_manager.cc +++ b/libs/ardour/port_manager.cc @@ -28,6 +28,7 @@ #include "ardour/midiport_manager.h" #include "ardour/port_manager.h" #include "ardour/profile.h" +#include "ardour/session.h" #include "i18n.h" @@ -665,9 +666,18 @@ PortManager::cycle_end (pframes_t nframes) } void -PortManager::silence (pframes_t nframes) +PortManager::silence (pframes_t nframes, Session *s) { for (Ports::iterator i = _cycle_ports->begin(); i != _cycle_ports->end(); ++i) { + if (s && i->second == s->mtc_output_port ()) { + continue; + } + if (s && i->second == s->midi_clock_output_port ()) { + continue; + } + if (s && i->second == s->ltc_output_port ()) { + continue; + } if (i->second->sends_output()) { i->second->get_buffer(nframes).silence(nframes); } |