diff --git a/gtk2_ardour/video_timeline.cc b/gtk2_ardour/video_timeline.cc index 0e58534772..eed09fdb23 100644 --- a/gtk2_ardour/video_timeline.cc +++ b/gtk2_ardour/video_timeline.cc @@ -142,7 +142,7 @@ VideoTimeLine::set_session (ARDOUR::Session *s) SessionHandlePtr::set_session (s); if (!_session) { return ; } - _session->SaveSession.connect_same_thread (sessionsave, boost::bind (&VideoTimeLine::save_session, this)); + _session->SessionSaveUnderway.connect_same_thread (sessionsave, boost::bind (&VideoTimeLine::save_session, this)); LocaleGuard lg (X_("C")); XMLNode* node = _session->extra_xml (X_("Videotimeline")); diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 895bbd6f17..d1b64f2e5c 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -408,7 +408,21 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop PBD::Signal1 StateSaved; PBD::Signal0 StateReady; - PBD::Signal0 SaveSession; + + /* emitted when session needs to be saved due to some internal + * event or condition (i.e. not in response to a user request). + * + * Only one object should + * connect to this signal and take responsibility. + * + * Argument is the snapshot name to use when saving. + */ + PBD::Signal1 SaveSessionRequested; + + /* emitted during a session save to allow other entities to add state, via + * extra XML, to the session state + */ + PBD::Signal0 SessionSaveUnderway; std::vector possible_states() const; static std::vector possible_states (std::string path); diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 29825b5505..c626e792ea 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -698,7 +698,7 @@ Session::save_state (string snapshot_name, bool pending, bool switch_to_snapshot } } - SaveSession (); /* EMIT SIGNAL */ + SessionSaveUnderway (); /* EMIT SIGNAL */ tree.set_root (&get_state());