ARDOUR::Session::AskAboutSampleRateMismatch.connect_same_thread (forever_connections, boost::bind (&ARDOUR_UI::sr_mismatch_dialog, this, _1, _2));
+ /* handle requests to quit (coming from JACK session) */
+
+ ARDOUR::Session::Quit.connect (forever_connections, MISSING_INVALIDATOR, ui_bind (&ARDOUR_UI::finish, this), gui_context ());
+
/* lets get this party started */
try {
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);
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);
jack_session_reply (_engine.jack(), event);
if (event->type == JackSessionSaveAndQuit) {
- // TODO: make ardour quit.
+ Quit (); /* EMIT SIGNAL */
}
jack_session_event_free( event );