not-yet-complete JACK session management patch (TODO: get program name, vary snapshot...
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 2 Apr 2010 18:48:50 +0000 (18:48 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 2 Apr 2010 18:48:50 +0000 (18:48 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@6840 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui_dialogs.cc
gtk2_ardour/opts.cc
gtk2_ardour/opts.h

index 870a068745206fb24d6d92f7089e1ba9c9e22113..58c68860267419a32ff86a256886e6f5ba3aae21 100644 (file)
@@ -328,7 +328,7 @@ ARDOUR_UI::create_engine ()
        loading_message (_("Starting audio engine"));
 
        try {
-               engine = new ARDOUR::AudioEngine (ARDOUR_COMMAND_LINE::jack_client_name);
+               engine = new ARDOUR::AudioEngine (ARDOUR_COMMAND_LINE::jack_client_name, ARDOUR_COMMAND_LINE::jack_session_uuid);
 
        } catch (...) {
 
index c010f695cb3da2ad3d41e4f9807ab92482827d4a..0c1240e4356b49a01b560c0ee76da20cc315710f 100644 (file)
@@ -24,6 +24,7 @@
 */
 
 #include "ardour/session.h"
+#include "ardour/audioengine.h"
 
 #include "actions.h"
 #include "ardour_ui.h"
@@ -124,6 +125,10 @@ ARDOUR_UI::set_session (Session *s)
        _session->locations()->added.connect (_session_connections, MISSING_INVALIDATOR, ui_bind (&ARDOUR_UI::handle_locations_change, this, _1), gui_context());
        _session->locations()->removed.connect (_session_connections, MISSING_INVALIDATOR, ui_bind (&ARDOUR_UI::handle_locations_change, this, _1), gui_context());
 
+#ifdef HAVE_JACK_SESSION
+       engine->JackSessionEvent.connect (*_session, MISSING_INVALIDATOR, ui_bind (&Session::jack_session_event, _session, _1), gui_context());
+#endif
+
        /* Clocks are on by default after we are connected to a session, so show that here.
        */
 
index 3a0794e65ab8c925f667eb4277569437f970a928..1392cb3f4829ba40c90acfe5a251aa06cbc3fda6 100644 (file)
@@ -44,6 +44,7 @@ string ARDOUR_COMMAND_LINE::keybindings_path = ""; /* empty means use builtin de
 Glib::ustring ARDOUR_COMMAND_LINE::menus_file = "ardour.menus";
 bool ARDOUR_COMMAND_LINE::finder_invoked_ardour = false;
 string ARDOUR_COMMAND_LINE::immediate_save;
+string ARDOUR_COMMAND_LINE::jack_session_uuid;
 
 using namespace ARDOUR_COMMAND_LINE;
 
@@ -105,6 +106,7 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
                { "sync", 0, 0, 'S' },
                { "curvetest", 1, 0, 'C' },
                { "save", 1, 0, 'E' },
+               { "uuid", 1, 0, 'U' },
                { 0, 0, 0, 0 }
        };
 
@@ -192,6 +194,9 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[])
                        immediate_save = optarg;
                        break;
 
+               case 'U':
+                       jack_session_uuid = optarg;
+
                default:
                        return print_help(execname);
                }
index 826fc53880e616430c79c562fd47070c48b933f5..ffb309a0883c790a282657e7a8bdeb29b6102b29 100644 (file)
@@ -39,6 +39,7 @@ extern std::string keybindings_path;
 extern Glib::ustring menus_file;
 extern bool   finder_invoked_ardour;
 extern std::string immediate_save;
+extern std::string jack_session_uuid;
 
 extern int32_t parse_opts (int argc, char *argv[]);