diff options
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 ); |