Add a new signal (not yet used) to initiate session saves; alter signal name for existing signal used to allow other objects to add XML state to session

This commit is contained in:
Paul Davis 2015-01-24 19:06:31 -05:00
parent 3068e55e51
commit ab3ec791ea
3 changed files with 17 additions and 3 deletions

View File

@ -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"));

View File

@ -408,7 +408,21 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
PBD::Signal1<void,std::string> StateSaved;
PBD::Signal0<void> StateReady;
PBD::Signal0<void> 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<void,std::string> SaveSessionRequested;
/* emitted during a session save to allow other entities to add state, via
* extra XML, to the session state
*/
PBD::Signal0<void> SessionSaveUnderway;
std::vector<std::string> possible_states() const;
static std::vector<std::string> possible_states (std::string path);

View File

@ -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());