diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index 7e50f9d284..86ed0563a0 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -485,6 +485,27 @@ sigpipe_handler (int sig) } } +static bool ladish_L1_save_request = false; + +static gboolean +maybe_ladish_L1_save (void* /* ignored */) +{ + if (ladish_L1_save_request) { + cout << "ladish L1 save request" << endl; + ladish_L1_save_request = false; + ARDOUR_UI::instance()->save_state(""); + } + + return true; +} + +static void +sigusr1_handler (int sig) +{ + //cout << "SIGUSR1 received!" << endl; + ladish_L1_save_request = true; +} + #ifdef VST_SUPPORT extern int gui_init (int* argc, char** argv[]); @@ -575,6 +596,12 @@ int main (int argc, char* argv[]) cerr << _("Cannot install SIGPIPE error handler") << endl; } + g_timeout_add (300, maybe_ladish_L1_save, 0); + + if (::signal (SIGUSR1, sigusr1_handler)) { + cerr << _("Cannot install SIGUSR1 error handler") << endl; + } + try { ui = new ARDOUR_UI (&argc, &argv); } catch (failed_constructor& err) {