summaryrefslogtreecommitdiff
path: root/libs/ardour/session_state.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-01-29 18:59:40 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2015-06-29 14:18:12 -0400
commitca09a4a3554ce44edf5a2b751e84ba839e35cd48 (patch)
treefe3d0ab9be2e30f113f50e27f704d8daac657e56 /libs/ardour/session_state.cc
parent1caf54ee7f6754181037a6a05a5667acd0b3e9b1 (diff)
more tweaks for varifill model, and avoid filling playback buffers during session loading
Conflicts: libs/ardour/diskstream.cc libs/ardour/session.cc libs/ardour/session_state.cc Conflicts: libs/ardour/session.cc
Diffstat (limited to 'libs/ardour/session_state.cc')
-rw-r--r--libs/ardour/session_state.cc38
1 files changed, 29 insertions, 9 deletions
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 891c37e04c..7f2e22af1a 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -343,16 +343,36 @@ Session::post_engine_init ()
Port::set_connecting_blocked (false);
DirtyChanged (); /* EMIT SIGNAL */
+}
- if (_is_new) {
- save_state ("");
- } else if (state_was_pending) {
- save_state ("");
- remove_pending_capture_state ();
- state_was_pending = false;
- }
-
- return 0;
+void
+Session::session_loaded ()
+{
+ SessionLoaded();
+
+ _state_of_the_state = Clean;
+
+ DirtyChanged (); /* EMIT SIGNAL */
+
+ if (_is_new) {
+ save_state ("");
+ } else if (state_was_pending) {
+ save_state ("");
+ remove_pending_capture_state ();
+ state_was_pending = false;
+ }
+
+ /* Now, finally, we can fill the playback buffers */
+
+ BootMessage (_("Filling playback buffers"));
+
+ boost::shared_ptr<RouteList> rl = routes.reader();
+ for (RouteList::iterator r = rl->begin(); r != rl->end(); ++r) {
+ boost::shared_ptr<Track> trk = boost::dynamic_pointer_cast<Track> (*r);
+ if (trk && !trk->hidden()) {
+ trk->seek (_transport_frame, true);
+ }
+ }
}
void