diff --git a/gtk2_ardour/video_timeline.cc b/gtk2_ardour/video_timeline.cc index 74f54be21f..56ae98e9d8 100644 --- a/gtk2_ardour/video_timeline.cc +++ b/gtk2_ardour/video_timeline.cc @@ -158,7 +158,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_("POSIX")); XMLNode* node = _session->extra_xml (X_("Videotimeline")); diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index c007c01360..f0438ffc0a 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -451,7 +451,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 9025a12f8f..e6a50c58b3 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -739,7 +739,7 @@ Session::save_state (string snapshot_name, bool pending, bool switch_to_snapshot } } - SaveSession (); /* EMIT SIGNAL */ + SessionSaveUnderway (); /* EMIT SIGNAL */ tree.set_root (&get_state());