OSC: group commands should feedback all off if no group
This commit is contained in:
parent
899641dfc5
commit
74c4e4a6d8
@ -2559,7 +2559,6 @@ OSC::parse_sel_group (const char *path, const char* types, lo_arg **argv, int ar
|
|||||||
RouteGroup *rg = rt->route_group();
|
RouteGroup *rg = rt->route_group();
|
||||||
if (!rg) {
|
if (!rg) {
|
||||||
PBD::warning << "OSC: This strip is not part of a group." << endmsg;
|
PBD::warning << "OSC: This strip is not part of a group." << endmsg;
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
float value = 0;
|
float value = 0;
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
@ -2569,13 +2568,10 @@ OSC::parse_sel_group (const char *path, const char* types, lo_arg **argv, int ar
|
|||||||
value = (uint32_t) argv[0]->i;
|
value = (uint32_t) argv[0]->i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!strncmp (path, X_("/select/group/enable"), 20)) {
|
if (!strncmp (path, X_("/select/group/only"), 18)) {
|
||||||
if (argc == 1) {
|
if (!rg) {
|
||||||
rg->set_active (value, this);
|
return ret;
|
||||||
ret = 0;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else if (!strncmp (path, X_("/select/group/only"), 18)) {
|
|
||||||
if ((argc == 1 && value) || !argc) {
|
if ((argc == 1 && value) || !argc) {
|
||||||
// fill sur->strips with routes from this group and hit bank1
|
// fill sur->strips with routes from this group and hit bank1
|
||||||
sur->temp_strips.clear();
|
sur->temp_strips.clear();
|
||||||
@ -2593,58 +2589,104 @@ OSC::parse_sel_group (const char *path, const char* types, lo_arg **argv, int ar
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (!strncmp (path, X_("/select/group/enable"), 20)) {
|
||||||
|
if (rg) {
|
||||||
|
if (argc == 1) {
|
||||||
|
rg->set_active (value, this);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/enable"), 0, get_address (msg));
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (strcmp (path, X_("/select/group/gain")) == 0) {
|
else if (strcmp (path, X_("/select/group/gain")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_gain ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_gain ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/gain"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/relative")) == 0) {
|
else if (strcmp (path, X_("/select/group/relative")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_relative ((bool) value, this);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_relative ((bool) value, this);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/relative"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/mute")) == 0) {
|
else if (strcmp (path, X_("/select/group/mute")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_mute ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_mute ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/mute"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/solo")) == 0) {
|
else if (strcmp (path, X_("/select/group/solo")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_solo ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_solo ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/solo"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/recenable")) == 0) {
|
else if (strcmp (path, X_("/select/group/recenable")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_recenable ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_recenable ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/recenable"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/select")) == 0) {
|
else if (strcmp (path, X_("/select/group/select")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_select ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_select ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/select"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/active")) == 0) {
|
else if (strcmp (path, X_("/select/group/active")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_route_active ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_route_active ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/active"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/color")) == 0) {
|
else if (strcmp (path, X_("/select/group/color")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_color ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_color ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/color"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp (path, X_("/select/group/monitoring")) == 0) {
|
else if (strcmp (path, X_("/select/group/monitoring")) == 0) {
|
||||||
if (argc == 1) {
|
if (rg) {
|
||||||
rg->set_monitoring ((bool) value);
|
if (argc == 1) {
|
||||||
ret = 0;
|
rg->set_monitoring ((bool) value);
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
int_message (X_("/select/group/monitoring"), 0, get_address (msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -313,6 +313,7 @@ OSCSelectObserver::clear_observer ()
|
|||||||
_osc.int_message (X_("/select/group/active"), 0, addr);
|
_osc.int_message (X_("/select/group/active"), 0, addr);
|
||||||
_osc.int_message (X_("/select/group/color"), 0, addr);
|
_osc.int_message (X_("/select/group/color"), 0, addr);
|
||||||
_osc.int_message (X_("/select/group/monitoring"), 0, addr);
|
_osc.int_message (X_("/select/group/monitoring"), 0, addr);
|
||||||
|
_osc.int_message (X_("/select/group/enable"), 0, addr);
|
||||||
if (gainmode) {
|
if (gainmode) {
|
||||||
_osc.float_message (X_("/select/fader"), 0, addr);
|
_osc.float_message (X_("/select/fader"), 0, addr);
|
||||||
} else {
|
} else {
|
||||||
@ -736,6 +737,10 @@ OSCSelectObserver::group_sharing (RouteGroup *rgc)
|
|||||||
_group_sharing[8] = rg->is_monitoring ();
|
_group_sharing[8] = rg->is_monitoring ();
|
||||||
_osc.int_message (X_("/select/group/monitoring"), _group_sharing[8], addr);
|
_osc.int_message (X_("/select/group/monitoring"), _group_sharing[8], addr);
|
||||||
}
|
}
|
||||||
|
if (rg->is_active () != _group_sharing[9] || _group_sharing[15]) {
|
||||||
|
_group_sharing[9] = rg->is_active ();
|
||||||
|
_osc.int_message (X_("/select/group/enable"), _group_sharing[9], addr);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
_osc.int_message (X_("/select/group/gain"), 0, addr);
|
_osc.int_message (X_("/select/group/gain"), 0, addr);
|
||||||
_osc.int_message (X_("/select/group/relative"), 0, addr);
|
_osc.int_message (X_("/select/group/relative"), 0, addr);
|
||||||
@ -746,6 +751,7 @@ OSCSelectObserver::group_sharing (RouteGroup *rgc)
|
|||||||
_osc.int_message (X_("/select/group/active"), 0, addr);
|
_osc.int_message (X_("/select/group/active"), 0, addr);
|
||||||
_osc.int_message (X_("/select/group/color"), 0, addr);
|
_osc.int_message (X_("/select/group/color"), 0, addr);
|
||||||
_osc.int_message (X_("/select/group/monitoring"), 0, addr);
|
_osc.int_message (X_("/select/group/monitoring"), 0, addr);
|
||||||
|
_osc.int_message (X_("/select/group/enable"), 0, addr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_group_sharing[15] = 0;
|
_group_sharing[15] = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user