Templates: basic support for columns in the script dialog.
[ardour.git] / gtk2_ardour / mixer_strip.cc
index ac80fbea4fdfd0ac84eb1a32cfe13db07c5396a0..f17468ea65f36742eb0eea0d1e05b04de80ad687 100644 (file)
 
 #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 "gtkmm2ext/slider_controller.h"
-#include "gtkmm2ext/bindable_button.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"
@@ -269,6 +268,8 @@ MixerStrip::init ()
        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);
@@ -498,6 +499,24 @@ MixerStrip::update_trim_control ()
        }
 }
 
+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)
 {
@@ -1731,11 +1750,11 @@ MixerStrip::build_route_ops_menu ()
                   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()) {