diff options
author | Len Ovens <len@ovenwerks.net> | 2017-03-18 20:05:04 -0700 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2017-03-18 20:05:04 -0700 |
commit | b0e5ab1b81d10d29d4c4812f2033495f6f8f6b91 (patch) | |
tree | a47d061d6b7eb1b46c35f0aba82a0f657201e9e6 /libs/surfaces/osc | |
parent | 1bfa74c0f98fb370f1ee4eac6fd6898a24616ccc (diff) |
OSC add /monitor/mute,dim,mono
Diffstat (limited to 'libs/surfaces/osc')
-rw-r--r-- | libs/surfaces/osc/osc.cc | 40 | ||||
-rw-r--r-- | libs/surfaces/osc/osc.h | 6 |
2 files changed, 45 insertions, 1 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index cfa0598102..d6463411da 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -478,7 +478,6 @@ OSC::register_callbacks() REGISTER_CALLBACK (serv, "/set_loop_range", "f", set_loop_range); REGISTER_CALLBACK (serv, "/set_session_range", "", set_session_range); REGISTER_CALLBACK (serv, "/set_session_range", "f", set_session_range); - // /toggle_monitor_* not working (comented out) REGISTER_CALLBACK (serv, "/toggle_monitor_mute", "", toggle_monitor_mute); REGISTER_CALLBACK (serv, "/toggle_monitor_mute", "f", toggle_monitor_mute); REGISTER_CALLBACK (serv, "/toggle_monitor_dim", "", toggle_monitor_dim); @@ -542,6 +541,9 @@ OSC::register_callbacks() REGISTER_CALLBACK (serv, "/master/pan_stereo_position", "f", master_set_pan_stereo_position); REGISTER_CALLBACK (serv, "/monitor/gain", "f", monitor_set_gain); REGISTER_CALLBACK (serv, "/monitor/fader", "f", monitor_set_fader); + REGISTER_CALLBACK (serv, "/monitor/mute", "i", monitor_set_mute); + REGISTER_CALLBACK (serv, "/monitor/dim", "i", monitor_set_dim); + REGISTER_CALLBACK (serv, "/monitor/mono", "i", monitor_set_mono); // Controls for the Selected strip REGISTER_CALLBACK (serv, "/select/recenable", "i", sel_recenable); @@ -1809,6 +1811,42 @@ OSC::monitor_set_fader (float position) } int +OSC::monitor_set_mute (uint32_t state) +{ + if (!session) return -1; + + if (session->monitor_out()) { + boost::shared_ptr<MonitorProcessor> mon = session->monitor_out()->monitor_control(); + mon->set_cut_all (state); + } + return 0; +} + +int +OSC::monitor_set_dim (uint32_t state) +{ + if (!session) return -1; + + if (session->monitor_out()) { + boost::shared_ptr<MonitorProcessor> mon = session->monitor_out()->monitor_control(); + mon->set_dim_all (state); + } + return 0; +} + +int +OSC::monitor_set_mono (uint32_t state) +{ + if (!session) return -1; + + if (session->monitor_out()) { + boost::shared_ptr<MonitorProcessor> mon = session->monitor_out()->monitor_control(); + mon->set_mono (state); + } + return 0; +} + +int OSC::route_get_sends(lo_message msg) { if (!session) { return -1; diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index 134593b1e5..c3722bd7d5 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -351,6 +351,9 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest> PATH_CALLBACK1(master_set_mute,i,); PATH_CALLBACK1(monitor_set_gain,f,); PATH_CALLBACK1(monitor_set_fader,f,); + PATH_CALLBACK1(monitor_set_mute,i,); + PATH_CALLBACK1(monitor_set_dim,i,); + PATH_CALLBACK1(monitor_set_mono,i,); #define PATH_CALLBACK1_MSG(name,arg1type) \ static int _ ## name (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { \ @@ -546,6 +549,9 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest> int master_set_mute (uint32_t state); int monitor_set_gain (float dB); int monitor_set_fader (float position); + int monitor_set_mute (uint32_t state); + int monitor_set_dim (uint32_t state); + int monitor_set_mono (uint32_t state); int sel_recenable (uint32_t state, lo_message msg); int sel_recsafe (uint32_t state, lo_message msg); int sel_mute (uint32_t state, lo_message msg); |