From de80782f05d7da5fc8c028e965e3a7bafa80b5a1 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 24 Apr 2015 22:16:34 +0200 Subject: [PATCH] add trim control to mixer-strip. --- gtk2_ardour/dark.colors | 3 +++ gtk2_ardour/mixer_strip.cc | 18 ++++++++++++++++++ gtk2_ardour/mixer_strip.h | 3 +++ 3 files changed, 24 insertions(+) diff --git a/gtk2_ardour/dark.colors b/gtk2_ardour/dark.colors index 05d875f54b..fd052f5693 100644 --- a/gtk2_ardour/dark.colors +++ b/gtk2_ardour/dark.colors @@ -464,6 +464,9 @@ + + + diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc index 7c59075f5a..302d74f499 100644 --- a/gtk2_ardour/mixer_strip.cc +++ b/gtk2_ardour/mixer_strip.cc @@ -34,6 +34,7 @@ #include #include +#include "ardour/amp.h" #include "ardour/audio_track.h" #include "ardour/audioengine.h" #include "ardour/internal_send.h" @@ -255,6 +256,14 @@ MixerStrip::init () _comment_button.set_name (X_("mixer strip button")); _comment_button.signal_clicked.connect (sigc::mem_fun (*this, &RouteUI::toggle_comment_editor)); +#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::ui_scale)) + trim_control.set_size_request (PX_SCALE(20), PX_SCALE(20)); +#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); @@ -516,6 +525,15 @@ MixerStrip::set_route (boost::shared_ptr rt) 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 none; + trim_control.set_controllable (none); + } + if (is_midi_track()) { if (midi_input_enable_button == 0) { midi_input_enable_button = manage (new ArdourButton); diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h index 46f5abd82f..9133d2981f 100644 --- a/gtk2_ardour/mixer_strip.h +++ b/gtk2_ardour/mixer_strip.h @@ -47,6 +47,7 @@ #include "pbd/fastlog.h" +#include "ardour_knob.h" #include "route_ui.h" #include "gain_meter.h" #include "panner_ui.h" @@ -202,6 +203,8 @@ class MixerStrip : public RouteUI, public Gtk::EventBox ArdourButton _comment_button; + ArdourKnob trim_control; + void setup_comment_button (); ArdourButton group_button;