summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-10-25 08:34:02 -0700
committerLen Ovens <len@ovenwerks.net>2017-10-25 08:34:02 -0700
commit8f13a0a13bb6854fa3deb677eb4f1b98bff5c36f (patch)
tree9634a37f44e704f52a5c0845ac5c27ebebca9643 /libs
parentea1f0ba825fb9843f85bb31b3d0593668317954b (diff)
OSC: fix monitor input/disk buttons so both can be on
Diffstat (limited to 'libs')
-rw-r--r--libs/surfaces/osc/osc.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 64ef0b6019..45e1e01cba 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -3052,7 +3052,9 @@ OSC::route_monitor_input (int ssid, int yn, lo_message msg)
boost::shared_ptr<Track> track = boost::dynamic_pointer_cast<Track> (s);
if (track) {
if (track->monitoring_control()) {
- track->monitoring_control()->set_value (yn ? 1.0 : 0.0, sur->usegroup);
+ std::bitset<32> value = track->monitoring_control()->get_value ();
+ value[0] = yn ? 1 : 0;
+ track->monitoring_control()->set_value (value.to_ulong(), sur->usegroup);
return 0;
}
}
@@ -3075,7 +3077,9 @@ OSC::sel_monitor_input (uint32_t yn, lo_message msg)
boost::shared_ptr<Track> track = boost::dynamic_pointer_cast<Track> (s);
if (track) {
if (track->monitoring_control()) {
- track->monitoring_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
+ std::bitset<32> value = track->monitoring_control()->get_value ();
+ value[0] = yn ? 1 : 0;
+ track->monitoring_control()->set_value (value.to_ulong(), sur->usegroup);
return 0;
}
}
@@ -3094,7 +3098,9 @@ OSC::route_monitor_disk (int ssid, int yn, lo_message msg)
boost::shared_ptr<Track> track = boost::dynamic_pointer_cast<Track> (s);
if (track) {
if (track->monitoring_control()) {
- track->monitoring_control()->set_value (yn ? 2.0 : 0.0, sur->usegroup);
+ std::bitset<32> value = track->monitoring_control()->get_value ();
+ value[1] = yn ? 1 : 0;
+ track->monitoring_control()->set_value (value.to_ulong(), sur->usegroup);
return 0;
}
}
@@ -3117,7 +3123,9 @@ OSC::sel_monitor_disk (uint32_t yn, lo_message msg)
boost::shared_ptr<Track> track = boost::dynamic_pointer_cast<Track> (s);
if (track) {
if (track->monitoring_control()) {
- track->monitoring_control()->set_value (yn ? 2.0 : 0.0, PBD::Controllable::NoGroup);
+ std::bitset<32> value = track->monitoring_control()->get_value ();
+ value[1] = yn ? 1 : 0;
+ track->monitoring_control()->set_value (value.to_ulong(), sur->usegroup);
return 0;
}
}