OSC: make temp modes work with linked surfaces too
This commit is contained in:
parent
2d40773755
commit
3322e6f5a5
@ -824,6 +824,7 @@ OSC::catchall (const char *path, const char* types, lo_arg **argv, int argc, lo_
|
|||||||
sur->custom_strips = set->custom_strips;
|
sur->custom_strips = set->custom_strips;
|
||||||
sur->temp_mode = set->temp_mode;
|
sur->temp_mode = set->temp_mode;
|
||||||
sur->temp_strips = set->temp_strips;
|
sur->temp_strips = set->temp_strips;
|
||||||
|
sur->temp_master = set->temp_master;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strstr (path, X_("/automation"))) {
|
if (strstr (path, X_("/automation"))) {
|
||||||
@ -1653,6 +1654,7 @@ OSC::link_strip_types (uint32_t linkset, uint32_t striptypes)
|
|||||||
}
|
}
|
||||||
ls = &link_sets[linkset];
|
ls = &link_sets[linkset];
|
||||||
ls->strip_types = striptypes;
|
ls->strip_types = striptypes;
|
||||||
|
ls->temp_mode = TempOff;
|
||||||
for (uint32_t dv = 1; dv < ls->urls.size(); dv++) {
|
for (uint32_t dv = 1; dv < ls->urls.size(); dv++) {
|
||||||
OSCSurface *su;
|
OSCSurface *su;
|
||||||
|
|
||||||
@ -2249,6 +2251,7 @@ OSC::strip_feedback (OSCSurface* sur, bool new_bank_size)
|
|||||||
sur->custom_strips = set->custom_strips;
|
sur->custom_strips = set->custom_strips;
|
||||||
sur->temp_mode = set->temp_mode;
|
sur->temp_mode = set->temp_mode;
|
||||||
sur->temp_strips = set->temp_strips;
|
sur->temp_strips = set->temp_strips;
|
||||||
|
sur->temp_master = set->temp_master;
|
||||||
}
|
}
|
||||||
if (!sur->temp_mode) {
|
if (!sur->temp_mode) {
|
||||||
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, sur->custom_mode, sur->custom_strips);
|
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, sur->custom_mode, sur->custom_strips);
|
||||||
@ -2830,15 +2833,6 @@ OSC::set_temp_mode (lo_address addr)
|
|||||||
}
|
}
|
||||||
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, 1, sur->temp_strips);
|
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, 1, sur->temp_strips);
|
||||||
sur->nstrips = sur->temp_strips.size();
|
sur->nstrips = sur->temp_strips.size();
|
||||||
LinkSet *set;
|
|
||||||
uint32_t ls = sur->linkset;
|
|
||||||
if (ls) {
|
|
||||||
set = &(link_sets[ls]);
|
|
||||||
set->temp_mode = GroupOnly;
|
|
||||||
set->temp_strips.clear ();
|
|
||||||
set->temp_strips = sur->temp_strips;
|
|
||||||
set->strips = sur->strips;
|
|
||||||
}
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2857,15 +2851,6 @@ OSC::set_temp_mode (lo_address addr)
|
|||||||
sur->temp_strips.push_back(s);
|
sur->temp_strips.push_back(s);
|
||||||
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, 1, sur->temp_strips);
|
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, 1, sur->temp_strips);
|
||||||
sur->nstrips = sur->temp_strips.size();
|
sur->nstrips = sur->temp_strips.size();
|
||||||
LinkSet *set;
|
|
||||||
uint32_t ls = sur->linkset;
|
|
||||||
if (ls) {
|
|
||||||
set = &(link_sets[ls]);
|
|
||||||
set->temp_mode = VCAOnly;
|
|
||||||
set->temp_strips.clear ();
|
|
||||||
set->temp_strips = sur->temp_strips;
|
|
||||||
set->strips = sur->strips;
|
|
||||||
}
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
} else if (sur->temp_mode == BusOnly) {
|
} else if (sur->temp_mode == BusOnly) {
|
||||||
@ -2887,15 +2872,6 @@ OSC::set_temp_mode (lo_address addr)
|
|||||||
sur->temp_strips.push_back(s);
|
sur->temp_strips.push_back(s);
|
||||||
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, 1, sur->temp_strips);
|
sur->strips = get_sorted_stripables(sur->strip_types, sur->cue, 1, sur->temp_strips);
|
||||||
sur->nstrips = sur->temp_strips.size();
|
sur->nstrips = sur->temp_strips.size();
|
||||||
LinkSet *set;
|
|
||||||
uint32_t ls = sur->linkset;
|
|
||||||
if (ls) {
|
|
||||||
set = &(link_sets[ls]);
|
|
||||||
set->temp_mode = BusOnly;
|
|
||||||
set->temp_strips.clear ();
|
|
||||||
set->temp_strips = sur->temp_strips;
|
|
||||||
set->strips = sur->strips;
|
|
||||||
}
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2904,6 +2880,16 @@ OSC::set_temp_mode (lo_address addr)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
LinkSet *set;
|
||||||
|
uint32_t ls = sur->linkset;
|
||||||
|
if (ls) {
|
||||||
|
set = &(link_sets[ls]);
|
||||||
|
set->temp_mode = sur->temp_mode;
|
||||||
|
set->temp_strips.clear ();
|
||||||
|
set->temp_strips = sur->temp_strips;
|
||||||
|
set->temp_master = sur->temp_master;
|
||||||
|
set->strips = sur->strips;
|
||||||
|
}
|
||||||
if (ret) {
|
if (ret) {
|
||||||
sur->temp_mode = TempOff;
|
sur->temp_mode = TempOff;
|
||||||
}
|
}
|
||||||
|
@ -217,6 +217,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
|||||||
uint32_t custom_mode; // use custom strip list
|
uint32_t custom_mode; // use custom strip list
|
||||||
OSCTempMode temp_mode; // use custom strip list
|
OSCTempMode temp_mode; // use custom strip list
|
||||||
Sorted temp_strips; // temp strip list for grouponly, vcaonly, auxonly
|
Sorted temp_strips; // temp strip list for grouponly, vcaonly, auxonly
|
||||||
|
boost::shared_ptr<ARDOUR::Stripable> temp_master; // temp master stripable
|
||||||
std::bitset<32> strip_types; // strip_types for this linkset
|
std::bitset<32> strip_types; // strip_types for this linkset
|
||||||
Sorted strips; // list of valid strips in order for this set
|
Sorted strips; // list of valid strips in order for this set
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user