OSC: Make sure group name for select gets updated
authorLen Ovens <len@ovenwerks.net>
Mon, 2 Jul 2018 15:18:42 +0000 (08:18 -0700)
committerLen Ovens <len@ovenwerks.net>
Mon, 2 Jul 2018 15:18:42 +0000 (08:18 -0700)
libs/surfaces/osc/osc_select_observer.cc
libs/surfaces/osc/osc_select_observer.h

index 62c11be30d85d073e11e2500baab2ade1686251b..67d3b8db8920fdd6db963fbbdde6df8eea89dd20 100644 (file)
@@ -78,7 +78,6 @@ OSCSelectObserver::OSCSelectObserver (OSC& o, ARDOUR::Session& s, ArdourSurface:
        } else {
                plug_id = -1;
        }
-       _group_name = "\n";
        _group_sharing[15] = 1;
        refresh_strip (sur->select, sur->nsends, gainmode, true);
        set_expand (sur->expand_enable);
@@ -680,29 +679,24 @@ void
 OSCSelectObserver::group_name ()
 {
        boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip);
-       string new_name = " ";
        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);
 }
 
 void
 OSCSelectObserver::group_sharing (RouteGroup *rgc)
 {
+       _group_sharing[15] = 1;
        boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip);
+       string new_name = "none";
        RouteGroup *rg;
        if (rt) {
                rg = rt->route_group();
        }
        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]) {
                        _group_sharing[0] = rg->is_gain ();
                        _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);
                }
        } 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/relative"), 0, addr);
                _osc.int_message (X_("/select/group/mute"), 0, addr);
index 3f5bf963dcf61410ea2dbdbfd82ea0d46f246ee9..0481fe18ebbcff3dcfb59f2a8e5ac325c5c08111 100644 (file)
@@ -58,7 +58,7 @@ class OSCSelectObserver
   private:
        boost::shared_ptr<ARDOUR::Stripable> _strip;
        ArdourSurface::OSC& _osc;
-       
+
        PBD::ScopedConnectionList strip_connections;
        // sends, plugins and eq need their own
        PBD::ScopedConnectionList send_connections;
@@ -93,7 +93,6 @@ class OSCSelectObserver
        std::vector<int> plug_params;
        int eq_bands;
        uint32_t _expand;
-       std::string _group_name;
        std::bitset<16> _group_sharing;
        bool _tick_busy;
        ARDOUR::Session* session;