bg[ACTIVE] = { 1.0, 0, 0}
}
+
+style "green_flashing_alert" = "very_small_text"
+{
+ fg[NORMAL] = { 0.80, 0.80, 0.80 }
+ bg[NORMAL] = { 0.26, 0.26, 0.31 }
+
+ fg[ACTIVE] = { 0.80, 0.80, 0.80 }
+ bg[ACTIVE] = { 0.52, 1.0, 0}
+}
+
style "selected_io_selector_port_list" = "medium_bold_text"
{
widget "*BypassButton*" style:highest "red_when_active"
widget "*TransportSoloAlert" style:highest "flashing_alert"
widget "*TransportSoloAlert.*" style:highest "flashing_alert"
+widget "*SendAlert" style:highest "green_flashing_alert"
+widget "*SendAlert.*" style:highest "green_flashing_alert"
widget "*TransportAuditioningAlert" style:highest "flashing_alert"
widget "*TransportAuditioningAlert.*" style:highest "flashing_alert"
widget "*FadeCurve" style:highest "medium_bold_entry"
virtual ~GainMeterBase ();
virtual void set_io (boost::shared_ptr<ARDOUR::IO>);
+ boost::shared_ptr<ARDOUR::IO> io() const { return _io; }
void update_gain_sensitive ();
void update_meters ();
/* ditto for this button and busses */
- show_sends_button->set_name ("MixerRecordEnableButton");
show_sends_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::show_sends_press), false);
show_sends_button->signal_button_release_event().connect (mem_fun(*this, &RouteUI::show_sends_release));
/* don't change the display for the target or the master bus */
return;
} else if (!is_track() && show_sends_button) {
- /* make sure our show sends button is inactive,
+ /* make sure our show sends button is inactive, and we no longer blink,
since we're not the target.
*/
+ send_blink_connection.disconnect ();
show_sends_button->set_active (false);
+ show_sends_button->set_state (STATE_NORMAL);
}
if (!target) {
panner_ui().setup_pan ();
}
+
void
MixerStrip::revert_to_default_display ()
{
+ show_sends_button->set_active (false);
+
if (_current_send) {
_current_send->set_metering (false);
_current_send.reset();
panner_ui().set_io (_route);
panner_ui().setup_pan ();
}
+
#include "pbd/shiva.h"
#include "pbd/controllable.h"
+#include "ardour_ui.h"
#include "route_ui.h"
#include "keyboard.h"
#include "utils.h"
UI::instance()->set_tip (rec_enable_button, _("Enable recording on this track"), "");
show_sends_button = manage (new BindableToggleButton (""));
- show_sends_button->set_name ("ShowSendsButton");
+ show_sends_button->set_name ("SendAlert");
show_sends_button->set_self_managed (true);
UI::instance()->set_tip (show_sends_button, _("make mixer strips show sends to this bus"), "");
show_sends_button->set_active (!show_sends_button->get_active());
+ /* start blinking */
+
if (show_sends_button->get_active()) {
/* show sends to this bus */
MixerStrip::SwitchIO (_route);
+ send_blink_connection = ARDOUR_UI::instance()->Blink.connect (mem_fun(*this, &RouteUI::send_blink));
} else {
/* everybody back to normal */
+ send_blink_connection.disconnect ();
MixerStrip::SwitchIO (boost::shared_ptr<Route>());
}
return true;
}
+void
+RouteUI::send_blink (bool onoff)
+{
+ if (!show_sends_button) {
+ return;
+ }
+
+ if (onoff) {
+ show_sends_button->set_state (STATE_ACTIVE);
+ } else {
+ show_sends_button->set_state (STATE_NORMAL);
+ }
+}
+
void
RouteUI::solo_changed(void* src)
{
BindableToggleButton* solo_button;
BindableToggleButton* rec_enable_button; /* audio tracks */
BindableToggleButton* show_sends_button; /* busses */
+
+ void send_blink (bool);
+ sigc::connection send_blink_connection;
virtual std::string solo_button_name () const { return "SoloButton"; }
virtual std::string safe_solo_button_name () const { return "SafeSoloButton"; }
bool can_support_io_configuration (const ChanCount& in, ChanCount& out) const;
bool configure_io (ChanCount in, ChanCount out);
+ bool set_name (const std::string& str);
+
static uint32_t how_many_sends();
static void make_unique (XMLNode &, Session &);
io->property("name")->set_value (name);
}
}
+
+bool
+Send::set_name (const std::string& new_name)
+{
+ char buf[32];
+ std::string unique_name;
+
+ snprintf (buf, sizeof (buf), "%u", _bitslot);
+ unique_name = new_name;
+ unique_name += buf;
+
+ return Delivery::set_name (unique_name);
+}