diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-09 16:48:27 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-09-09 16:48:27 -0400 |
commit | ecfeeda4b8b1f5d342a08d4155250c2e66198ce3 (patch) | |
tree | 861673ee019f81924ee48bb787ea0bfa89f7446b /gtk2_ardour/engine_dialog.cc | |
parent | f06187735d9518623a6f1f3da573b401e77401bb (diff) |
launching control app is now responsibility of ardour GUI, not audio backend; use ARDOUR_DEVICE_CONTROL_APP if set in the environment
Diffstat (limited to 'gtk2_ardour/engine_dialog.cc')
-rw-r--r-- | gtk2_ardour/engine_dialog.cc | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/gtk2_ardour/engine_dialog.cc b/gtk2_ardour/engine_dialog.cc index b5a59af642..989f2802c3 100644 --- a/gtk2_ardour/engine_dialog.cc +++ b/gtk2_ardour/engine_dialog.cc @@ -25,7 +25,7 @@ #include <boost/scoped_ptr.hpp> -#include <glibmm.h> +#include <glibmm/spawn.h> #include <gtkmm/messagedialog.h> #include "pbd/error.h" @@ -790,22 +790,46 @@ EngineControl::get_device_name () const void EngineControl::control_app_button_clicked () { - boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); - if (!backend) { + const string appname = g_getenv ("ARDOUR_DEVICE_CONTROL_APP"); + + if (appname.empty()) { + boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); + + if (!backend) { + return; + } + + string appname = backend->control_app_name(); + } + + if (appname.empty()) { return; } - backend->launch_control_app(); + std::list<string> args; + args.push_back (appname); + Glib::spawn_async ("", args, Glib::SPAWN_SEARCH_PATH); } void EngineControl::manage_control_app_sensitivity () { - boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); - if (backend && backend->have_control_app()) { - control_app_button.set_sensitive (true); - } else { + const string appname = g_getenv ("ARDOUR_DEVICE_CONTROL_APP"); + + if (appname.empty()) { + boost::shared_ptr<ARDOUR::AudioBackend> backend = ARDOUR::AudioEngine::instance()->current_backend(); + + if (!backend) { + return; + } + + string appname = backend->control_app_name(); + } + + if (appname.empty()) { control_app_button.set_sensitive (false); + } else { + control_app_button.set_sensitive (true); } } |