diff options
author | Carl Hetherington <carl@carlh.net> | 2010-10-07 12:12:16 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-10-07 12:12:16 +0000 |
commit | 3b0c5e35411fdb1a22eae54c8c574668b62f9c56 (patch) | |
tree | 826ddc7b06531eb40bd793ce3fbfae7191d00942 /libs/ardour | |
parent | 2d082739873b49f291a288c3217a4f06ef6fde01 (diff) |
Respond to JACK session quit request. Fixes #3491.
git-svn-id: svn://localhost/ardour2/branches/3.0@7878 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/session.h | 3 | ||||
-rw-r--r-- | libs/ardour/session.cc | 1 | ||||
-rw-r--r-- | libs/ardour/session_state.cc | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 93d15b8439..d10e01d18f 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -785,6 +785,9 @@ class Session : public PBD::StatefulDestructible, public PBD::ScopedConnectionLi void request_resume_timecode_transmission (); bool timecode_transmission_suspended () const; + /** Emitted when the session wants Ardour to quit */ + static PBD::Signal0<void> Quit; + protected: friend class AudioEngine; void set_block_size (nframes_t nframes); diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index fb8649d1a0..8a3eb6a6c6 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -125,6 +125,7 @@ PBD::Signal0<void> Session::AutoBindingOn; PBD::Signal0<void> Session::AutoBindingOff; PBD::Signal2<void,std::string, std::string> Session::Exported; PBD::Signal1<int,boost::shared_ptr<Playlist> > Session::AskAboutPlaylistDeletion; +PBD::Signal0<void> Session::Quit; static void clean_up_session_event (SessionEvent* ev) { delete ev; } const SessionEvent::RTeventCallback Session::rt_cleanup (clean_up_session_event); diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index 097fd2a116..4ae4065329 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -746,7 +746,7 @@ Session::jack_session_event (jack_session_event_t * event) jack_session_reply (_engine.jack(), event); if (event->type == JackSessionSaveAndQuit) { - // TODO: make ardour quit. + Quit (); /* EMIT SIGNAL */ } jack_session_event_free( event ); |