From 0544e74fdf2fd702cfdd02bb8ef2893700aad023 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 2 Dec 2015 00:55:01 +0100 Subject: [PATCH] merge from mixbus branch. keep control surfaces special cases upstream. --- libs/surfaces/faderport/operations.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/libs/surfaces/faderport/operations.cc b/libs/surfaces/faderport/operations.cc index 0677c0adbb..9578bab024 100644 --- a/libs/surfaces/faderport/operations.cc +++ b/libs/surfaces/faderport/operations.cc @@ -20,6 +20,7 @@ #include "ardour/async_midi_port.h" #include "ardour/monitor_processor.h" #include "ardour/pannable.h" +#include "ardour/plugin_insert.h" #include "ardour/rc_configuration.h" #include "ardour/session.h" #include "ardour/track.h" @@ -260,7 +261,26 @@ FaderPort::ardour_pan_width(int delta) void FaderPort::mixbus_pan (int delta) { +#ifdef MIXBUS + if (!_current_route) { + return; + } + const uint32_t port_channel_post_pan = 2; // gtk2_ardour/mixbus_ports.h + boost::shared_ptr plug = _current_route->ch_post(); + + if (!plug) { + return; + } + + boost::shared_ptr azimuth = boost::dynamic_pointer_cast (plug->control (Evoral::Parameter (ARDOUR::PluginAutomation, 0, port_channel_post_pan))); + + if (!azimuth) { + return; + } + + azimuth->set_value (azimuth->interface_to_internal (azimuth->internal_to_interface (azimuth->get_value()) + (delta / encoder_divider))); +#endif } void