#include "ardour/slave.h"
#include "ardour/ticker.h"
#include "ardour/types.h"
+#include "ardour/vca.h"
+#include "ardour/vca_manager.h"
#include "midi++/mmc.h"
ltc_tx_send_time_code_for_cycle (_transport_frame, end_frame, _target_transport_speed, _transport_speed, nframes);
+ VCAList v = _vca_manager->vcas ();
+ for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) {
+ (*i)->automation_run (_transport_frame, nframes);
+ }
+
if (_process_graph) {
DEBUG_TRACE(DEBUG::ProcessThreads,"calling graph/no-roll\n");
_process_graph->routes_no_roll( nframes, _transport_frame, end_frame, non_realtime_work_pending(), declick);
const framepos_t start_frame = _transport_frame;
const framepos_t end_frame = _transport_frame + floor (nframes * _transport_speed);
+ VCAList v = _vca_manager->vcas ();
+ for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) {
+ (*i)->automation_run (start_frame, nframes);
+ }
+
if (_process_graph) {
DEBUG_TRACE(DEBUG::ProcessThreads,"calling graph/process-routes\n");
if (_process_graph->process_routes (nframes, start_frame, end_frame, declick, need_butler) < 0) {
}
if (b) {
+ DEBUG_TRACE (DEBUG::Butler, string_compose ("%1 rolled and needs butler\n", (*i)->name()));
need_butler = true;
}
}
const framepos_t start_frame = _transport_frame;
const framepos_t end_frame = _transport_frame + lrintf(nframes * _transport_speed);
+ VCAList v = _vca_manager->vcas ();
+ for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) {
+ (*i)->automation_run (start_frame, nframes);
+ }
+
if (_process_graph) {
_process_graph->silent_process_routes (nframes, start_frame, end_frame, need_butler);
} else {
} /* implicit release of route lock */
if (session_needs_butler) {
+ DEBUG_TRACE (DEBUG::Butler, "p-with-events: session needs butler, call it\n");
_butler->summon ();
}
}
get_track_statistics ();
if (need_butler) {
+ DEBUG_TRACE (DEBUG::Butler, "f-slave-silently: session needs butler, call it\n");
_butler->summon ();
}
check_declick_out ();
if (session_needs_butler) {
+ DEBUG_TRACE (DEBUG::Butler, "p-without-events: session needs butler, call it\n");
_butler->summon ();
}
}
/* run the auditioner, and if it says we need butler service, ask for it */
if (auditioner->play_audition (nframes) > 0) {
+ DEBUG_TRACE (DEBUG::Butler, "auditioner needs butler, call it\n");
_butler->summon ();
}
} else if (_state_of_the_state & Loading) {
merge_event (ev);
} else {
+ Glib::Threads::Mutex::Lock lm (rb_write_lock);
pending_events.write (&ev, 1);
}
}
overwrite_some_buffers (static_cast<Track*>(ev->ptr));
break;
- case SessionEvent::SetTrackSpeed:
- set_track_speed (static_cast<Track*> (ev->ptr), ev->speed);
- break;
-
case SessionEvent::SetSyncSource:
DEBUG_TRACE (DEBUG::Slave, "seen request for new slave\n");
use_sync_source (ev->slave);
ev->region.reset ();
break;
- case SessionEvent::InputConfigurationChange:
- add_post_transport_work (PostTransportInputChange);
- _butler->schedule_transport_work ();
- break;
-
case SessionEvent::SetPlayAudioRange:
set_play_range (ev->audio_range, (ev->speed == 1.0f));
break;