diff options
Diffstat (limited to 'libs/ardour/session_state.cc')
-rw-r--r-- | libs/ardour/session_state.cc | 38 |
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 |