summaryrefslogtreecommitdiff
path: root/gtk2_ardour/engine_dialog.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-09-09 16:48:27 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-09-09 16:48:27 -0400
commitecfeeda4b8b1f5d342a08d4155250c2e66198ce3 (patch)
tree861673ee019f81924ee48bb787ea0bfa89f7446b /gtk2_ardour/engine_dialog.cc
parentf06187735d9518623a6f1f3da573b401e77401bb (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.cc40
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);
}
}