summaryrefslogtreecommitdiff
path: root/libs/ardour/port_manager.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-05-25 19:20:09 +0200
committerRobin Gareus <robin@gareus.org>2016-05-25 19:20:09 +0200
commit1d48648a734423d2a1b1689efaa32e7f6452c5ea (patch)
tree4e2c6259391904cc2772fe5aa66f8aa57d589925 /libs/ardour/port_manager.cc
parentad7295f5e19017bfffbab4f83312adc9d08c365d (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.cc12
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);
}