summaryrefslogtreecommitdiff
path: root/libs/ardour/port_manager.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-05-07 17:22:40 +0200
committerRobin Gareus <robin@gareus.org>2020-05-07 20:42:53 +0200
commitd9caa7fd9a55e5b21a35971f17e26d8c26838a6b (patch)
treea43073baca894a5659237751c0edd548f19cec4d /libs/ardour/port_manager.cc
parent9604e64c35bfd13bcf22a29f60db3fbc26411a80 (diff)
Prepare timecode-generator direct-out
Generator ports (like TransportMaster slaves), should not be re-sampled when vari-speeding. Instead the Timecode/Clock should directly use the engine-speed. For this to happen, they need to be special-cased: no re-sampler latency, direct access to engine-buffers.
Diffstat (limited to 'libs/ardour/port_manager.cc')
-rw-r--r--libs/ardour/port_manager.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/libs/ardour/port_manager.cc b/libs/ardour/port_manager.cc
index 24148e6a77..3807b868fa 100644
--- a/libs/ardour/port_manager.cc
+++ b/libs/ardour/port_manager.cc
@@ -395,7 +395,7 @@ PortManager::register_port (DataType dtype, const string& portname, bool input,
/* limit the possible flags that can be set */
- flags = PortFlags (flags & (Hidden|Shadow|IsTerminal|TransportMasterPort));
+ flags = PortFlags (flags & (Hidden|Shadow|IsTerminal|TransportSyncPort));
try {
if (dtype == DataType::AUDIO) {
@@ -809,14 +809,14 @@ PortManager::cycle_start (pframes_t nframes, Session* s)
if (s && s->rt_tasklist () && fabs (Port::speed_ratio ()) != 1.0) {
RTTaskList::TaskList tl;
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
- if (!(p->second->flags() & TransportMasterPort)) {
+ if (!(p->second->flags() & TransportSyncPort)) {
tl.push_back (boost::bind (&Port::cycle_start, p->second, nframes));
}
}
s->rt_tasklist()->process (tl);
} else {
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
- if (!(p->second->flags() & TransportMasterPort)) {
+ if (!(p->second->flags() & TransportSyncPort)) {
p->second->cycle_start (nframes);
}
}
@@ -830,14 +830,14 @@ PortManager::cycle_end (pframes_t nframes, Session* s)
if (0 && s && s->rt_tasklist () && fabs (Port::speed_ratio ()) != 1.0) {
RTTaskList::TaskList tl;
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
- if (!(p->second->flags() & TransportMasterPort)) {
+ if (!(p->second->flags() & TransportSyncPort)) {
tl.push_back (boost::bind (&Port::cycle_end, p->second, nframes));
}
}
s->rt_tasklist()->process (tl);
} else {
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
- if (!(p->second->flags() & TransportMasterPort)) {
+ if (!(p->second->flags() & TransportSyncPort)) {
p->second->cycle_end (nframes);
}
}
@@ -939,14 +939,14 @@ PortManager::cycle_end_fade_out (gain_t base_gain, gain_t gain_step, pframes_t n
if (0 && s && s->rt_tasklist () && fabs (Port::speed_ratio ()) != 1.0) {
RTTaskList::TaskList tl;
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
- if (!(p->second->flags() & TransportMasterPort)) {
+ if (!(p->second->flags() & TransportSyncPort)) {
tl.push_back (boost::bind (&Port::cycle_end, p->second, nframes));
}
}
s->rt_tasklist()->process (tl);
} else {
for (Ports::iterator p = _cycle_ports->begin(); p != _cycle_ports->end(); ++p) {
- if (!(p->second->flags() & TransportMasterPort)) {
+ if (!(p->second->flags() & TransportSyncPort)) {
p->second->cycle_end (nframes);
}
}