+void
+OSCSelectObserver::group_name ()
+{
+ boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip);
+ RouteGroup *rg = rt->route_group();
+ 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);
+ }
+ if (rg->is_relative () != _group_sharing[1] || _group_sharing[15]) {
+ _group_sharing[1] = rg->is_relative ();
+ _osc.int_message (X_("/select/group/relative"), _group_sharing[1], addr);
+ }
+ if (rg->is_mute () != _group_sharing[2] || _group_sharing[15]) {
+ _group_sharing[2] = rg->is_mute ();
+ _osc.int_message (X_("/select/group/mute"), _group_sharing[2], addr);
+ }
+ if (rg->is_solo () != _group_sharing[3] || _group_sharing[15]) {
+ _group_sharing[3] = rg->is_solo ();
+ _osc.int_message (X_("/select/group/solo"), _group_sharing[3], addr);
+ }
+ if (rg->is_recenable () != _group_sharing[4] || _group_sharing[15]) {
+ _group_sharing[4] = rg->is_recenable ();
+ _osc.int_message (X_("/select/group/recenable"), _group_sharing[4], addr);
+ }
+ if (rg->is_select () != _group_sharing[5] || _group_sharing[15]) {
+ _group_sharing[5] = rg->is_select ();
+ _osc.int_message (X_("/select/group/select"), _group_sharing[5], addr);
+ }
+ if (rg->is_route_active () != _group_sharing[6] || _group_sharing[15]) {
+ _group_sharing[6] = rg->is_route_active ();
+ _osc.int_message (X_("/select/group/active"), _group_sharing[6], addr);
+ }
+ if (rg->is_color () != _group_sharing[7] || _group_sharing[15]) {
+ _group_sharing[7] = rg->is_color ();
+ _osc.int_message (X_("/select/group/color"), _group_sharing[7], addr);
+ }
+ if (rg->is_monitoring () != _group_sharing[8] || _group_sharing[15]) {
+ _group_sharing[8] = rg->is_monitoring ();
+ _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 {
+ _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);
+ _osc.int_message (X_("/select/group/solo"), 0, addr);
+ _osc.int_message (X_("/select/group/recenable"), 0, addr);
+ _osc.int_message (X_("/select/group/select"), 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/monitoring"), 0, addr);
+ _osc.int_message (X_("/select/group/enable"), 0, addr);
+ }
+ _group_sharing[15] = 0;
+}
+
+void
+OSCSelectObserver::comment_changed ()
+{
+ boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (_strip);
+ if (rt) {
+ _osc.text_message (X_("/select/comment"), rt->comment(), addr);
+ }
+}
+
+void
+OSCSelectObserver::pi_changed (PBD::PropertyChange const& what_changed)
+{
+ if (!what_changed.contains (ARDOUR::Properties::hidden)) {
+ return;
+ }
+ _osc.float_message (X_("/select/hide"), _strip->is_hidden (), addr);
+}
+