summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-10-25 21:55:02 -0700
committerLen Ovens <len@ovenwerks.net>2017-10-25 21:56:29 -0700
commit27c8c820769d619740dcaa8875d3ca04856aa0b4 (patch)
treecc0361ec564213c0162e3904a250170d2cc19378 /libs/surfaces/osc
parenta2965f585a819bd86952e6feff62d66068d44722 (diff)
OSC: Provide click level control
Diffstat (limited to 'libs/surfaces/osc')
-rw-r--r--libs/surfaces/osc/osc.cc11
-rw-r--r--libs/surfaces/osc/osc.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 45e1e01cba..aa654dc80b 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -473,6 +473,7 @@ OSC::register_callbacks()
REGISTER_CALLBACK (serv, "/mark_out", "f", mark_out);
REGISTER_CALLBACK (serv, "/toggle_click", "", toggle_click);
REGISTER_CALLBACK (serv, "/toggle_click", "f", toggle_click);
+ REGISTER_CALLBACK (serv, "/click/level", "f", click_level);
REGISTER_CALLBACK (serv, "/midi_panic", "", midi_panic);
REGISTER_CALLBACK (serv, "/midi_panic", "f", midi_panic);
REGISTER_CALLBACK (serv, "/toggle_roll", "", toggle_roll);
@@ -2302,6 +2303,16 @@ OSC::jog_mode (float mode, lo_message msg)
}
+int
+OSC::click_level (float position)
+{
+ if (!session) return -1;
+ if (session->click_gain()->gain_control()) {
+ session->click_gain()->gain_control()->set_value (session->click_gain()->gain_control()->interface_to_internal (position), PBD::Controllable::NoGroup);
+ }
+ return 0;
+}
+
// master and monitor calls
int
OSC::master_set_gain (float dB)
diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h
index d9069bf3c3..2f6c661119 100644
--- a/libs/surfaces/osc/osc.h
+++ b/libs/surfaces/osc/osc.h
@@ -423,6 +423,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
PATH_CALLBACK1(monitor_set_mute,i,);
PATH_CALLBACK1(monitor_set_dim,i,);
PATH_CALLBACK1(monitor_set_mono,i,);
+ PATH_CALLBACK1(click_level,f,);
#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) { \
@@ -635,6 +636,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
int scrub (float delta, lo_message msg);
int jog (float delta, lo_message msg);
int jog_mode (float mode, lo_message msg);
+ int click_level (float position);
int master_set_gain (float dB);
int master_set_fader (float position);
int master_delta_gain (float delta);