summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc37
1 files changed, 21 insertions, 16 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 85c424e40c..e24b660fb6 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -28,7 +28,6 @@
#include <glibmm/thread.h>
#include "ardour/ardour.h"
-#include "ardour/audio_diskstream.h"
#include "ardour/audioengine.h"
#include "ardour/auditioner.h"
#include "ardour/butler.h"
@@ -37,6 +36,7 @@
#include "ardour/session.h"
#include "ardour/slave.h"
#include "ardour/timestamps.h"
+#include "ardour/port.h"
#include "midi++/manager.h"
@@ -194,20 +194,22 @@ Session::silent_process_routes (nframes_t nframes, bool& need_butler)
}
void
-Session::get_diskstream_statistics ()
+Session::get_track_statistics ()
{
float pworst = 1.0f;
float cworst = 1.0f;
- boost::shared_ptr<DiskstreamList> dsl = diskstreams.reader();
- for (DiskstreamList::iterator i = dsl->begin(); i != dsl->end(); ++i) {
+ boost::shared_ptr<RouteList> rl = routes.reader();
+ for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
- if ((*i)->hidden()) {
+ boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+
+ if (!tr || tr->hidden()) {
continue;
}
- pworst = min (pworst, (*i)->playback_buffer_load());
- cworst = min (cworst, (*i)->capture_buffer_load());
+ pworst = min (pworst, tr->playback_buffer_load());
+ cworst = min (cworst, tr->capture_buffer_load());
}
uint32_t pmin = g_atomic_int_get (&_playback_load);
@@ -639,18 +641,21 @@ Session::track_slave_state (float slave_speed, nframes_t slave_transport_frame,
bool ok = true;
nframes_t frame_delta = slave_transport_frame - _transport_frame;
- boost::shared_ptr<DiskstreamList> dsl = diskstreams.reader();
-
- for (DiskstreamList::iterator i = dsl->begin(); i != dsl->end(); ++i) {
- if (!(*i)->can_internal_playback_seek (frame_delta)) {
+ boost::shared_ptr<RouteList> rl = routes.reader();
+ for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
+ boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+ if (tr && !tr->can_internal_playback_seek (frame_delta)) {
ok = false;
break;
}
}
if (ok) {
- for (DiskstreamList::iterator i = dsl->begin(); i != dsl->end(); ++i) {
- (*i)->internal_playback_seek (frame_delta);
+ for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
+ boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+ if (tr) {
+ tr->internal_playback_seek (frame_delta);
+ }
}
_transport_frame += frame_delta;
@@ -1048,11 +1053,11 @@ Session::process_event (SessionEvent* ev)
break;
case SessionEvent::Overwrite:
- overwrite_some_buffers (static_cast<Diskstream*>(ev->ptr));
+ overwrite_some_buffers (static_cast<Track*>(ev->ptr));
break;
- case SessionEvent::SetDiskstreamSpeed:
- set_diskstream_speed (static_cast<Diskstream*> (ev->ptr), ev->speed);
+ case SessionEvent::SetTrackSpeed:
+ set_track_speed (static_cast<Track*> (ev->ptr), ev->speed);
break;
case SessionEvent::SetSyncSource: