13
0

OSC: Make sure group name for select gets updated

This commit is contained in:
Len Ovens 2018-07-02 08:18:42 -07:00
parent f30add4c0e
commit 9d99cc8b01
2 changed files with 7 additions and 13 deletions

View File

@ -78,7 +78,6 @@ OSCSelectObserver::OSCSelectObserver (OSC& o, ARDOUR::Session& s, ArdourSurface:
} else { } else {
plug_id = -1; plug_id = -1;
} }
_group_name = "\n";
_group_sharing[15] = 1; _group_sharing[15] = 1;
refresh_strip (sur->select, sur->nsends, gainmode, true); refresh_strip (sur->select, sur->nsends, gainmode, true);
set_expand (sur->expand_enable); set_expand (sur->expand_enable);
@ -680,29 +679,24 @@ void
OSCSelectObserver::group_name () OSCSelectObserver::group_name ()
{ {
boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip); boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip);
string new_name = " ";
RouteGroup *rg = rt->route_group(); RouteGroup *rg = rt->route_group();
if (rg) {
new_name = rg->name();
}
if (new_name != _group_name) {
_osc.text_message (X_("/select/group"), new_name, addr);
_group_name = new_name;
_group_sharing[15] = 1;
}
_osc.send_group_list (addr);
group_sharing (rg); group_sharing (rg);
} }
void void
OSCSelectObserver::group_sharing (RouteGroup *rgc) OSCSelectObserver::group_sharing (RouteGroup *rgc)
{ {
_group_sharing[15] = 1;
boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip); boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip);
string new_name = "none";
RouteGroup *rg; RouteGroup *rg;
if (rt) { if (rt) {
rg = rt->route_group(); rg = rt->route_group();
} }
if (rg && rt) { if (rg && rt) {
new_name = rg->name();
_osc.text_message (X_("/select/group"), new_name, addr);
_osc.send_group_list (addr);
if (rg->is_gain () != _group_sharing[0] || _group_sharing[15]) { if (rg->is_gain () != _group_sharing[0] || _group_sharing[15]) {
_group_sharing[0] = rg->is_gain (); _group_sharing[0] = rg->is_gain ();
_osc.int_message (X_("/select/group/gain"), _group_sharing[0], addr); _osc.int_message (X_("/select/group/gain"), _group_sharing[0], addr);
@ -744,6 +738,7 @@ OSCSelectObserver::group_sharing (RouteGroup *rgc)
_osc.int_message (X_("/select/group/enable"), _group_sharing[9], addr); _osc.int_message (X_("/select/group/enable"), _group_sharing[9], addr);
} }
} else { } else {
_osc.text_message (X_("/select/group"), new_name, addr);
_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);
_osc.int_message (X_("/select/group/mute"), 0, addr); _osc.int_message (X_("/select/group/mute"), 0, addr);

View File

@ -58,7 +58,7 @@ class OSCSelectObserver
private: private:
boost::shared_ptr<ARDOUR::Stripable> _strip; boost::shared_ptr<ARDOUR::Stripable> _strip;
ArdourSurface::OSC& _osc; ArdourSurface::OSC& _osc;
PBD::ScopedConnectionList strip_connections; PBD::ScopedConnectionList strip_connections;
// sends, plugins and eq need their own // sends, plugins and eq need their own
PBD::ScopedConnectionList send_connections; PBD::ScopedConnectionList send_connections;
@ -93,7 +93,6 @@ class OSCSelectObserver
std::vector<int> plug_params; std::vector<int> plug_params;
int eq_bands; int eq_bands;
uint32_t _expand; uint32_t _expand;
std::string _group_name;
std::bitset<16> _group_sharing; std::bitset<16> _group_sharing;
bool _tick_busy; bool _tick_busy;
ARDOUR::Session* session; ARDOUR::Session* session;