#include <gtkmm2ext/slider_controller.h>
#include <gtkmm2ext/bindable_button.h>
+#include "ardour/amp.h"
#include "ardour/audio_track.h"
#include "ardour/audioengine.h"
#include "ardour/internal_send.h"
, meter_point_button (_("pre"))
, midi_input_enable_button (0)
, _comment_button (_("Comments"))
+ , trim_control (ArdourKnob::default_elements, true)
, _visibility (X_("mixer-element-visibility"))
{
init ();
, meter_point_button (_("pre"))
, midi_input_enable_button (0)
, _comment_button (_("Comments"))
+ , trim_control (ArdourKnob::default_elements, true)
, _visibility (X_("mixer-element-visibility"))
{
init ();
_comment_button.set_name (X_("mixer strip button"));
_comment_button.signal_clicked.connect (sigc::mem_fun (*this, &RouteUI::toggle_comment_editor));
+ // TODO implement ArdourKnob::on_size_request properly
+#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::ui_scale))
+ trim_control.set_size_request (PX_SCALE(19), PX_SCALE(19));
+#undef PX_SCALE
+ trim_control.set_tooltip_prefix (_("Trim: "));
+ trim_control.set_name ("trim knob");
+ trim_control.set_no_show_all (true);
+ input_button_box.pack_start (trim_control, false, false);
+
global_vpacker.set_border_width (1);
global_vpacker.set_spacing (0);
monitor_disk_button->hide ();
}
+ if (route()->trim() && route()->trim()->active()) {
+ trim_control.show ();
+ trim_control.set_controllable (route()->trim()->gain_control());
+ } else {
+ trim_control.hide ();
+ boost::shared_ptr<Controllable> none;
+ trim_control.set_controllable (none);
+ }
+
if (is_midi_track()) {
if (midi_input_enable_button == 0) {
midi_input_enable_button = manage (new ArdourButton);
set_button_names ();
- const double scale = std::max(1.0, ARDOUR_UI::config()->get_font_scale() / 102400.);
+ const float scale = std::max(1.f, ARDOUR_UI::ui_scale);
switch (w) {
case Wide:
panners.astate_string(_route->panner()->automation_state()));
}
-
- set_size_request (max (110 * scale, gpm.get_gm_width() + 5 * scale), -1);
+ {
+ // panners expect an even number of horiz. pixels
+ int width = rintf (max (110.f * scale, gpm.get_gm_width() + 10.f * scale)) + 1;
+ width &= ~1;
+ set_size_request (width, -1);
+ }
break;
case Narrow:
panners.short_astate_string(_route->panner()->automation_state()));
}
- set_size_request (max (60 * scale, gpm.get_gm_width() + 10 * scale), -1);
+ {
+ // panners expect an even number of horiz. pixels
+ int width = rintf (max (60.f * scale, gpm.get_gm_width() + 10.f * scale)) + 1;
+ width &= ~1;
+ set_size_request (width, -1);
+ }
break;
}
items.push_back (SeparatorElem());
add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterPeak), MeterPeak);
+ add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterPeak0dB), MeterPeak0dB);
add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterKrms), MeterKrms);
add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterIEC1DIN), MeterIEC1DIN);
add_level_meter_item_type (items, tgroup, ArdourMeter::meter_type_string(MeterIEC1NOR), MeterIEC1NOR);