summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-01-02 04:58:23 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-01-02 04:58:30 -0500
commit9e3299f97da874a48f67dc5ff0e0f87a6a54768a (patch)
tree460d8bd46c20c72fbaac2ea917da32bb95d42124 /libs/surfaces
parent38f199e35565e58d48f68eafa3e5873d9787c55c (diff)
change Controllable::set_value() API to include grouped control consideration.
This also removes Route::group_gain_control() and associated machinery. Not yet tested with Mackie or other surfaces. More work to done to start using the group capabilities, and also potentially to add or derive more controls as RouteAutomationControls
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/faderport/operations.cc5
-rw-r--r--libs/surfaces/generic_midi/midicontrollable.cc40
-rw-r--r--libs/surfaces/mackie/controls.cc2
-rw-r--r--libs/surfaces/mackie/strip.cc32
-rw-r--r--libs/surfaces/osc/osc.cc2
5 files changed, 41 insertions, 40 deletions
diff --git a/libs/surfaces/faderport/operations.cc b/libs/surfaces/faderport/operations.cc
index e7f8284527..1fed68566f 100644
--- a/libs/surfaces/faderport/operations.cc
+++ b/libs/surfaces/faderport/operations.cc
@@ -30,6 +30,7 @@
using namespace ARDOUR;
using namespace ArdourSurface;
+using namespace PBD;
/* this value is chosen to given smooth motion from 0..1.0 in about 270 degrees
* of encoder rotation.
@@ -232,7 +233,7 @@ FaderPort::ardour_pan_azimuth (int delta)
return;
}
- azimuth->set_value (azimuth->interface_to_internal (azimuth->internal_to_interface (azimuth->get_value()) + (delta / encoder_divider)));
+ azimuth->set_value (azimuth->interface_to_internal (azimuth->internal_to_interface (azimuth->get_value()) + (delta / encoder_divider)), Controllable::NoGroup);
}
@@ -255,7 +256,7 @@ FaderPort::ardour_pan_width(int delta)
return;
}
- width->set_value (width->interface_to_internal (width->internal_to_interface (width->get_value()) + (delta / encoder_divider)));
+ width->set_value (width->interface_to_internal (width->internal_to_interface (width->get_value()) + (delta / encoder_divider)), Controllable::NoGroup);
}
void
diff --git a/libs/surfaces/generic_midi/midicontrollable.cc b/libs/surfaces/generic_midi/midicontrollable.cc
index f4025b591f..8945463e97 100644
--- a/libs/surfaces/generic_midi/midicontrollable.cc
+++ b/libs/surfaces/generic_midi/midicontrollable.cc
@@ -280,13 +280,13 @@ MIDIControllable::midi_sense_note (Parser &, EventTwoBytes *msg, bool /*is_on*/)
if (!controllable->is_toggle()) {
if (control_additional == msg->note_number) {
- controllable->set_value (midi_to_control (msg->velocity));
+ controllable->set_value (midi_to_control (msg->velocity), Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Note %1 value %2 %3\n", (int) msg->note_number, (float) midi_to_control (msg->velocity), current_uri() ));
}
} else {
if (control_additional == msg->note_number) {
float new_value = controllable->get_value() > 0.5f ? 0.0f : 1.0f;
- controllable->set_value (new_value);
+ controllable->set_value (new_value, Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Note %1 Value %2 %3\n", (int) msg->note_number, (float) new_value, current_uri()));
}
}
@@ -331,7 +331,7 @@ MIDIControllable::midi_sense_controller (Parser &, EventTwoBytes *msg)
*/
if (in_sync || _surface->motorised ()) {
- controllable->set_value (midi_to_control (new_value));
+ controllable->set_value (midi_to_control (new_value), Controllable::NoGroup);
}
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("MIDI CC %1 value %2 %3\n", (int) msg->controller_number, (float) midi_to_control(new_value), current_uri() ));
@@ -341,30 +341,30 @@ MIDIControllable::midi_sense_controller (Parser &, EventTwoBytes *msg)
switch (get_encoder()) {
case Enc_L:
if (msg->value > 0x40) {
- controllable->set_value (midi_to_control (last_value - offset + 1));
+ controllable->set_value (midi_to_control (last_value - offset + 1), Controllable::NoGroup);
} else {
- controllable->set_value (midi_to_control (last_value + offset + 1));
+ controllable->set_value (midi_to_control (last_value + offset + 1), Controllable::NoGroup);
}
break;
case Enc_R:
if (msg->value > 0x40) {
- controllable->set_value (midi_to_control (last_value + offset + 1));
+ controllable->set_value (midi_to_control (last_value + offset + 1), Controllable::NoGroup);
} else {
- controllable->set_value (midi_to_control (last_value - offset + 1));
+ controllable->set_value (midi_to_control (last_value - offset + 1), Controllable::NoGroup);
}
break;
case Enc_2:
if (msg->value > 0x40) {
- controllable->set_value (midi_to_control (last_value - (0x7f - msg->value) + 1));
+ controllable->set_value (midi_to_control (last_value - (0x7f - msg->value) + 1), Controllable::NoGroup);
} else {
- controllable->set_value (midi_to_control (last_value + offset + 1));
+ controllable->set_value (midi_to_control (last_value + offset + 1), Controllable::NoGroup);
}
break;
case Enc_B:
if (msg->value > 0x40) {
- controllable->set_value (midi_to_control (last_value + offset + 1));
+ controllable->set_value (midi_to_control (last_value + offset + 1), Controllable::NoGroup);
} else {
- controllable->set_value (midi_to_control (last_value - (0x40 - offset)));
+ controllable->set_value (midi_to_control (last_value - (0x40 - offset)), Controllable::NoGroup);
}
break;
default:
@@ -375,10 +375,10 @@ MIDIControllable::midi_sense_controller (Parser &, EventTwoBytes *msg)
}
} else {
if (msg->value > 64.0f) {
- controllable->set_value (1);
+ controllable->set_value (1, Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Midi CC %1 value 1 %2\n", (int) msg->controller_number, current_uri()));
} else {
- controllable->set_value (0);
+ controllable->set_value (0, Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Midi CC %1 value 0 %2\n", (int) msg->controller_number, current_uri()));
}
}
@@ -398,11 +398,11 @@ MIDIControllable::midi_sense_program_change (Parser &, MIDI::byte msg)
if (msg == control_additional) {
if (!controllable->is_toggle()) {
- controllable->set_value (1.0);
+ controllable->set_value (1.0, Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("MIDI program %1 value 1.0 %3\n", (int) msg, current_uri() ));
} else {
float new_value = controllable->get_value() > 0.5f ? 0.0f : 1.0f;
- controllable->set_value (new_value);
+ controllable->set_value (new_value, Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("MIDI program %1 value %2 %3\n", (int) msg, (float) new_value, current_uri()));
}
}
@@ -420,14 +420,14 @@ MIDIControllable::midi_sense_pitchbend (Parser &, pitchbend_t pb)
}
if (!controllable->is_toggle()) {
- controllable->set_value (midi_to_control (pb));
+ controllable->set_value (midi_to_control (pb), Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("MIDI pitchbend %1 value %2 %3\n", (int) control_channel, (float) midi_to_control (pb), current_uri() ));
} else {
if (pb > 8065.0f) {
- controllable->set_value (1);
+ controllable->set_value (1, Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Midi pitchbend %1 value 1 %2\n", (int) control_channel, current_uri()));
} else {
- controllable->set_value (0);
+ controllable->set_value (0, Controllable::NoGroup);
DEBUG_TRACE (DEBUG::GenericMidi, string_compose ("Midi pitchbend %1 value 0 %2\n", (int) control_channel, current_uri()));
}
}
@@ -457,7 +457,7 @@ MIDIControllable::rpn_value_change (Parser&, uint16_t rpn, float val)
{
if (control_rpn == rpn) {
if (controllable) {
- controllable->set_value (val);
+ controllable->set_value (val, Controllable::NoGroup);
}
}
}
@@ -467,7 +467,7 @@ MIDIControllable::nrpn_value_change (Parser&, uint16_t nrpn, float val)
{
if (control_nrpn == nrpn) {
if (controllable) {
- controllable->set_value (val);
+ controllable->set_value (val, Controllable::NoGroup);
}
}
}
diff --git a/libs/surfaces/mackie/controls.cc b/libs/surfaces/mackie/controls.cc
index bbe1029f30..8ed0bad311 100644
--- a/libs/surfaces/mackie/controls.cc
+++ b/libs/surfaces/mackie/controls.cc
@@ -81,7 +81,7 @@ void
Control::set_value (float val)
{
if (normal_ac) {
- normal_ac->set_value (normal_ac->interface_to_internal (val));
+ normal_ac->set_value (normal_ac->interface_to_internal (val), PBD::Controllable::NoGroup);
}
}
diff --git a/libs/surfaces/mackie/strip.cc b/libs/surfaces/mackie/strip.cc
index 59d99fb711..f2c56d80de 100644
--- a/libs/surfaces/mackie/strip.cc
+++ b/libs/surfaces/mackie/strip.cc
@@ -756,7 +756,7 @@ Strip::select_event (Button&, ButtonState bs)
/* reset to default */
boost::shared_ptr<AutomationControl> ac = _fader->control ();
if (ac) {
- ac->set_value (ac->normal());
+ ac->set_value (ac->normal(), Controllable::NoGroup);
}
return;
}
@@ -789,7 +789,7 @@ Strip::vselect_event (Button&, ButtonState bs)
if (control->toggled()) {
if (control->toggled()) {
- control->set_value (!control->get_value());
+ control->set_value (!control->get_value(), Controllable::NoGroup);
}
}
@@ -807,7 +807,7 @@ Strip::vselect_event (Button&, ButtonState bs)
if (ac) {
/* reset to default/normal value */
- ac->set_value (ac->normal());
+ ac->set_value (ac->normal(), Controllable::NoGroup);
}
} else {
@@ -830,7 +830,7 @@ Strip::fader_touch_event (Button&, ButtonState bs)
if (_surface->mcp().main_modifier_state() & MackieControlProtocol::MODIFIER_SHIFT) {
if (ac) {
- ac->set_value (ac->normal());
+ ac->set_value (ac->normal(), Controllable::NoGroup);
}
} else {
@@ -907,7 +907,7 @@ Strip::handle_button (Button& button, ButtonState bs)
/* apply change */
for (MackieControlProtocol::ControlList::iterator c = controls.begin(); c != controls.end(); ++c) {
- (*c)->set_value (new_value);
+ (*c)->set_value (new_value, Controllable::NoGroup);
}
} else {
@@ -1778,7 +1778,7 @@ Strip::set_vpot_parameter (AutomationType p)
_pan_mode = PanAzimuthAutomation;
if (_surface->mcp().flip_mode() != MackieControlProtocol::Normal) {
/* gain to vpot, pan azi to fader */
- _vpot->set_control (_route->group_gain_control());
+ _vpot->set_control (_route->gain_control());
vpot_parameter = GainAutomation;
control_by_parameter[GainAutomation] = _vpot;
_fader->set_control (pan_control);
@@ -1790,7 +1790,7 @@ Strip::set_vpot_parameter (AutomationType p)
} else {
/* gain to fader, pan azi to vpot */
vpot_parameter = PanAzimuthAutomation;
- _fader->set_control (_route->group_gain_control());
+ _fader->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _fader;
_vpot->set_control (pan_control);
control_by_parameter[PanAzimuthAutomation] = _vpot;
@@ -1807,7 +1807,7 @@ Strip::set_vpot_parameter (AutomationType p)
_pan_mode = PanWidthAutomation;
if (_surface->mcp().flip_mode() != MackieControlProtocol::Normal) {
/* gain to vpot, pan width to fader */
- _vpot->set_control (_route->group_gain_control());
+ _vpot->set_control (_route->gain_control());
vpot_parameter = GainAutomation;
control_by_parameter[GainAutomation] = _vpot;
_fader->set_control (pan_control);
@@ -1819,7 +1819,7 @@ Strip::set_vpot_parameter (AutomationType p)
} else {
/* gain to fader, pan width to vpot */
vpot_parameter = PanWidthAutomation;
- _fader->set_control (_route->group_gain_control());
+ _fader->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _fader;
_vpot->set_control (pan_control);
control_by_parameter[PanWidthAutomation] = _vpot;
@@ -1841,7 +1841,7 @@ Strip::set_vpot_parameter (AutomationType p)
vpot_parameter = TrimAutomation;
if (_surface->mcp().flip_mode() != MackieControlProtocol::Normal) {
/* gain to vpot, trim to fader */
- _vpot->set_control (_route->group_gain_control());
+ _vpot->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _vpot;
if (_route->trim() && route()->trim()->active()) {
_fader->set_control (_route->trim_control());
@@ -1852,7 +1852,7 @@ Strip::set_vpot_parameter (AutomationType p)
}
} else {
/* gain to fader, trim to vpot */
- _fader->set_control (_route->group_gain_control());
+ _fader->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _fader;
if (_route->trim() && route()->trim()->active()) {
_vpot->set_control (_route->trim_control());
@@ -1868,7 +1868,7 @@ Strip::set_vpot_parameter (AutomationType p)
vpot_parameter = PhaseAutomation;
if (_surface->mcp().flip_mode() != MackieControlProtocol::Normal) {
/* gain to vpot, phase to fader */
- _vpot->set_control (_route->group_gain_control());
+ _vpot->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _vpot;
if (_route->phase_invert().size()) {
_fader->set_control (_route->phase_control());
@@ -1879,7 +1879,7 @@ Strip::set_vpot_parameter (AutomationType p)
}
} else {
/* gain to fader, phase to vpot */
- _fader->set_control (_route->group_gain_control());
+ _fader->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _fader;
if (_route->phase_invert().size()) {
_vpot->set_control (_route->phase_control());
@@ -1894,7 +1894,7 @@ Strip::set_vpot_parameter (AutomationType p)
if (!Profile->get_mixbus()) {
if (_surface->mcp().flip_mode() != MackieControlProtocol::Normal) {
// gain to vpot, send to fader
- _vpot->set_control (_route->group_gain_control());
+ _vpot->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _vpot;
// test for send to control
boost::shared_ptr<Processor> p = _route->nth_send (_current_send);
@@ -1912,7 +1912,7 @@ Strip::set_vpot_parameter (AutomationType p)
}
} else {
// gain to fader, send to vpot
- _fader->set_control (_route->group_gain_control());
+ _fader->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _fader;
boost::shared_ptr<Processor> p = _route->nth_send (_current_send);
if (p && p->name() != "Monitor 1") {
@@ -1925,7 +1925,7 @@ Strip::set_vpot_parameter (AutomationType p)
control_by_parameter[SendAutomation] = _vpot;
} else {
// gain to fader, send to vpot
- _fader->set_control (_route->group_gain_control());
+ _fader->set_control (_route->gain_control());
control_by_parameter[GainAutomation] = _fader;
boost::shared_ptr<Processor> p = _route->nth_send (_current_send);
if (p && p->name() != "Monitor 1") {
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 49c8bcc57c..c29469667c 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -1108,7 +1108,7 @@ OSC::route_plugin_parameter (int rid, int piid, int par, float val)
boost::shared_ptr<AutomationControl> c = pi->automation_control (Evoral::Parameter(PluginAutomation, 0, controlid));
// cerr << "parameter:" << redi->describe_parameter(controlid) << " val:" << val << "\n";
- c->set_value (val);
+ c->set_value (val, PBD::Controllable::NoGroup);
} else {
PBD::warning << "OSC: Parameter # " << par << " for plugin # " << piid << " on RID '" << rid << "' is out of range" << endmsg;
PBD::info << "OSC: Valid range min=" << pd.lower << " max=" << pd.upper << endmsg;