From 3b0c5e35411fdb1a22eae54c8c574668b62f9c56 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 7 Oct 2010 12:12:16 +0000 Subject: Respond to JACK session quit request. Fixes #3491. git-svn-id: svn://localhost/ardour2/branches/3.0@7878 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/session.h | 3 +++ libs/ardour/session.cc | 1 + libs/ardour/session_state.cc | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) (limited to 'libs') 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 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 Session::AutoBindingOn; PBD::Signal0 Session::AutoBindingOff; PBD::Signal2 Session::Exported; PBD::Signal1 > Session::AskAboutPlaylistDeletion; +PBD::Signal0 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 ); -- cgit v1.2.3