REGISTER_CALLBACK (serv, "/bank_up", "f", bank_delta);
REGISTER_CALLBACK (serv, "/bank_down", "", bank_down);
REGISTER_CALLBACK (serv, "/bank_down", "f", bank_down);
+ REGISTER_CALLBACK (serv, "/use_group", "f", use_group);
// controls for "special" strips
REGISTER_CALLBACK (serv, "/master/gain", "f", master_set_gain);
s->strip_types = strips;
s->feedback = fb;
s->gainmode = gm;
+ if (s->strip_types[10]) {
+ s->usegroup = PBD::Controllable::UseGroup;
+ } else {
+ s->usegroup = PBD::Controllable::NoGroup;
+ }
s->send_page_size = se_size;
s->plug_page_size = pi_size;
// set bank and strip feedback
{
OSCSurface *s = get_surface(get_address (msg));
s->strip_types = st;
+ if (s->strip_types[10]) {
+ s->usegroup = PBD::Controllable::UseGroup;
+ } else {
+ s->usegroup = PBD::Controllable::NoGroup;
+ }
// set bank and strip feedback
set_bank(s->bank, msg);
s.no_clear = false;
s.jogmode = JOG;
s.bank = 1;
- s.bank_size = default_banksize; // need to find out how many strips there are
- s.strip_types = default_strip; // 159 is tracks, busses, and VCAs (no master/monitor)
+ s.bank_size = default_banksize;
+ s.strip_types = default_strip;
s.feedback = default_feedback;
s.gainmode = default_gainmode;
+ s.usegroup = PBD::Controllable::NoGroup;
s.sel_obs = 0;
s.expand = 0;
s.expand_enable = false;
return 0;
}
+int
+OSC::use_group (float value, lo_message msg)
+{
+ if (!session) {
+ return -1;
+ }
+ OSCSurface *s = get_surface(get_address (msg));
+ if (value) {
+ s->usegroup = PBD::Controllable::UseGroup;
+ } else {
+ s->usegroup = PBD::Controllable::NoGroup;
+ }
+ return 0;
+}
+
uint32_t
OSC::get_sid (boost::shared_ptr<ARDOUR::Stripable> strip, lo_address addr)
{
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->mute_control()) {
- s->mute_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
+ s->mute_control()->set_value (yn ? 1.0 : 0.0, sur->usegroup);
return 0;
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->solo_control()) {
- s->solo_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
+ s->solo_control()->set_value (yn ? 1.0 : 0.0, sur->usegroup);
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->solo_isolate_control()) {
- s->solo_isolate_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
+ s->solo_isolate_control()->set_value (yn ? 1.0 : 0.0, sur->usegroup);
return 0;
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, lo_message_get_source (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->solo_safe_control()) {
- s->solo_safe_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
+ s->solo_safe_control()->set_value (yn ? 1.0 : 0.0, sur->usegroup);
return 0;
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->rec_enable_control()) {
- s->rec_enable_control()->set_value (yn, PBD::Controllable::NoGroup);
+ s->rec_enable_control()->set_value (yn, sur->usegroup);
if (s->rec_enable_control()->get_value()) {
return 0;
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->rec_safe_control()) {
- s->rec_safe_control()->set_value (yn, PBD::Controllable::NoGroup);
+ s->rec_safe_control()->set_value (yn, sur->usegroup);
if (s->rec_safe_control()->get_value()) {
return 0;
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
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);
+ track->monitoring_control()->set_value (yn ? 1.0 : 0.0, sur->usegroup);
return 0;
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
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);
+ track->monitoring_control()->set_value (yn ? 2.0 : 0.0, sur->usegroup);
return 0;
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->phase_control()) {
- s->phase_control()->set_value (yn ? 1.0 : 0.0, PBD::Controllable::NoGroup);
+ s->phase_control()->set_value (yn ? 1.0 : 0.0, sur->usegroup);
return 0;
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->gain_control()) {
fake_touch (s->gain_control());
- s->gain_control()->set_value (level, PBD::Controllable::NoGroup);
+ s->gain_control()->set_value (level, sur->usegroup);
} else {
return 1;
}
return -1;
}
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->gain_control()) {
fake_touch (s->gain_control());
- s->gain_control()->set_value (s->gain_control()->interface_to_internal (pos), PBD::Controllable::NoGroup);
+ s->gain_control()->set_value (s->gain_control()->interface_to_internal (pos), sur->usegroup);
} else {
return route_send_fail ("fader", ssid, 0, get_address (msg));
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
float db = accurate_coefficient_to_dB (s->gain_control()->get_value()) + delta;
float abs;
abs = top;
}
}
- s->gain_control()->set_value (abs, PBD::Controllable::NoGroup);
+ s->gain_control()->set_value (abs, sur->usegroup);
return 0;
}
return -1;
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->trim_control()) {
- s->trim_control()->set_value (level, PBD::Controllable::NoGroup);
+ s->trim_control()->set_value (level, sur->usegroup);
return 0;
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if(s->pan_azimuth_control()) {
- s->pan_azimuth_control()->set_value (s->pan_azimuth_control()->interface_to_internal (pos), PBD::Controllable::NoGroup);
+ s->pan_azimuth_control()->set_value (s->pan_azimuth_control()->interface_to_internal (pos), sur->usegroup);
return 0;
}
}
{
if (!session) return -1;
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
if (s->pan_width_control()) {
- s->pan_width_control()->set_value (pos, PBD::Controllable::NoGroup);
+ s->pan_width_control()->set_value (pos, sur->usegroup);
return 0;
}
}
return -1;
}
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
float abs;
if (s) {
if (id > 0) {
}
#endif
if (s->send_level_controllable (id)) {
- s->send_level_controllable (id)->set_value (abs, PBD::Controllable::NoGroup);
+ s->send_level_controllable (id)->set_value (abs, sur->usegroup);
return 0;
}
}
return -1;
}
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
float abs;
if (s) {
if (s->send_level_controllable (id)) {
abs = s->send_level_controllable(id)->interface_to_internal (val);
- s->send_level_controllable (id)->set_value (abs, PBD::Controllable::NoGroup);
+ s->send_level_controllable (id)->set_value (abs, sur->usegroup);
return 0;
}
}
return -1;
}
boost::shared_ptr<Stripable> s = get_strip (ssid, get_address (msg));
+ OSCSurface *sur = get_surface(get_address (msg));
if (s) {
}
if (s->send_enable_controllable (sid)) {
- s->send_enable_controllable (sid)->set_value (val, PBD::Controllable::NoGroup);
+ s->send_enable_controllable (sid)->set_value (val, sur->usegroup);
return 0;
}