+
+}
+
+void
+OSCRouteObserver::send_trim_message (string path, boost::shared_ptr<Controllable> controllable)
+{
+ if (gainmode) {
+ text_with_id ("/strip/name", ssid, string_compose ("%1%2%3", std::fixed, std::setprecision(2), accurate_coefficient_to_dB (controllable->get_value())));
+ trim_timeout = 8;
+ }
+
+ lo_message msg = lo_message_new ();
+
+ if (feedback[2]) {
+ path = set_path (path);
+ } else {
+ lo_message_add_int32 (msg, ssid);
+ }
+
+ lo_message_add_float (msg, (float) accurate_coefficient_to_dB (controllable->get_value()));
+
+ lo_send_message (addr, path.c_str(), msg);
+ lo_message_free (msg);
+}
+
+void
+OSCRouteObserver::send_gain_message (string path, boost::shared_ptr<Controllable> controllable)
+{
+ lo_message msg = lo_message_new ();
+
+ if (feedback[2]) {
+ path = set_path (path);
+ } else {
+ lo_message_add_int32 (msg, ssid);
+ }
+
+ if (gainmode) {
+ lo_message_add_float (msg, gain_to_slider_position (controllable->get_value()));
+ text_with_id ("/strip/name", ssid, string_compose ("%1%2%3", std::fixed, std::setprecision(2), accurate_coefficient_to_dB (controllable->get_value())));
+ gain_timeout = 8;
+ } else {
+ if (controllable->get_value() < 1e-15) {
+ lo_message_add_float (msg, -200);
+ } else {
+ lo_message_add_float (msg, accurate_coefficient_to_dB (controllable->get_value()));
+ }
+ }
+
+ lo_send_message (addr, path.c_str(), msg);
+ lo_message_free (msg);
+}
+
+string
+OSCRouteObserver::set_path (string path)
+{
+ if (feedback[2]) {
+ path = string_compose ("%1/%2", path, ssid);
+ }
+ return path;
+}
+
+void
+OSCRouteObserver::clear_strip (string path, float val)
+{
+ lo_message msg = lo_message_new ();
+ if (feedback[2]) {
+ path = set_path (path);
+ } else {
+ lo_message_add_int32 (msg, ssid);
+ }
+ lo_message_add_float (msg, val);
+
+ lo_send_message (addr, path.c_str(), msg);
+ lo_message_free (msg);
+
+}
+
+void
+OSCRouteObserver::send_select_status (const PropertyChange& what)
+{
+ if (what == PropertyChange(ARDOUR::Properties::selected)) {
+ if (_strip) {
+ string path = "/strip/select";
+
+ lo_message msg = lo_message_new ();
+ if (feedback[2]) {
+ path = set_path (path);
+ } else {
+ lo_message_add_int32 (msg, ssid);
+ }
+ lo_message_add_float (msg, _strip->is_selected());
+ lo_send_message (addr, path.c_str(), msg);
+ lo_message_free (msg);
+ }
+ }