#include <sigc++/bind.h>
+#include <gtkmm/messagedialog.h>
+
#include "pbd/convert.h"
#include "pbd/enumwriter.h"
#include "pbd/replace_all.h"
#include "pbd/stacktrace.h"
-#include "gtkmm2ext/gtk_ui.h"
-#include "gtkmm2ext/menu_elems.h"
-#include "gtkmm2ext/utils.h"
-#include "gtkmm2ext/choice.h"
-#include "gtkmm2ext/doi.h"
-
-#include "widgets/tooltips.h"
-
#include "ardour/amp.h"
#include "ardour/audio_track.h"
#include "ardour/audioengine.h"
#include "ardour/vca.h"
#include "ardour/vca_manager.h"
+#include "gtkmm2ext/gtk_ui.h"
+#include "gtkmm2ext/menu_elems.h"
+#include "gtkmm2ext/utils.h"
+#include "gtkmm2ext/doi.h"
+
+#include "widgets/tooltips.h"
+
#include "ardour_window.h"
#include "enums_convert.h"
#include "mixer_strip.h"
trim_control.set_tooltip_prefix (_("Trim: "));
trim_control.set_name ("trim knob");
trim_control.set_no_show_all (true);
+ trim_control.StartGesture.connect(sigc::mem_fun(*this, &MixerStrip::trim_start_touch));
+ trim_control.StopGesture.connect(sigc::mem_fun(*this, &MixerStrip::trim_end_touch));
input_button_box.pack_start (trim_control, false, false);
global_vpacker.set_border_width (1);
}
}
+void
+MixerStrip::trim_start_touch ()
+{
+ assert (_route && _session);
+ if (route()->trim() && route()->trim()->active() && route()->n_inputs().n_audio() > 0) {
+ route()->trim()->gain_control ()->start_touch (_session->transport_frame());
+ }
+}
+
+void
+MixerStrip::trim_end_touch ()
+{
+ assert (_route && _session);
+ if (route()->trim() && route()->trim()->active() && route()->n_inputs().n_audio() > 0) {
+ route()->trim()->gain_control ()->stop_touch (_session->transport_frame());
+ }
+}
+
void
MixerStrip::set_route (boost::shared_ptr<Route> rt)
{
sane thing for users anyway.
*/
- RouteTimeAxisView* rtav = PublicEditor::instance().get_route_view_by_route_id (_route->id());
- if (rtav) {
+ StripableTimeAxisView* stav = PublicEditor::instance().get_stripable_time_axis_by_id (_route->id());
+ if (stav) {
Selection& selection (PublicEditor::instance().get_selection());
- if (!selection.selected (rtav)) {
- selection.set (rtav);
+ if (!selection.selected (stav)) {
+ selection.set (stav);
}
if (!_route->is_master()) {