diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-11-28 21:28:54 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-11-28 21:28:54 +0000 |
commit | c7df5f5271be9652ab4bac25a1f8dcb4e4373ba4 (patch) | |
tree | 42ad73e522e72db48b0cc76cc80c16c48001a37c /libs/surfaces | |
parent | ad4e0cd2d1ae55fc2c459486c8e048a15cfa50f0 (diff) |
add non-functional meta-controls for 2in/2out panning, to control direction+width. support exists in OSC and MIDI maps. no GUI elements yet
git-svn-id: svn://localhost/ardour2/branches/3.0@8121 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/surfaces')
-rw-r--r-- | libs/surfaces/osc/osc.cc | 37 | ||||
-rw-r--r-- | libs/surfaces/osc/osc.h | 4 |
2 files changed, 41 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index d52348ef5c..264d4eee13 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -42,6 +42,7 @@ #include "ardour/midi_track.h" #include "ardour/dB.h" #include "ardour/filesystem_paths.h" +#include "ardour/panner.h" #include "osc.h" #include "osc_controllable.h" @@ -781,6 +782,42 @@ OSC::route_set_gain_dB (int rid, float dB) return 0; } +int +OSC::route_set_pan_stereo_position (int rid, float pos) +{ + if (!session) return -1; + + boost::shared_ptr<Route> r = session->route_by_remote_id (rid); + + if (r) { + boost::shared_ptr<Panner> panner = r->panner(); + if (panner) { + panner->set_stereo_position (pos); + } + } + + return 0; + +} + +int +OSC::route_set_pan_stereo_width (int rid, float pos) +{ + if (!session) return -1; + + boost::shared_ptr<Route> r = session->route_by_remote_id (rid); + + if (r) { + boost::shared_ptr<Panner> panner = r->panner(); + if (panner) { + panner->set_stereo_width (pos); + } + } + + return 0; + +} + XMLNode& OSC::get_state () { diff --git a/libs/surfaces/osc/osc.h b/libs/surfaces/osc/osc.h index 4c2fce44b0..de73bdb913 100644 --- a/libs/surfaces/osc/osc.h +++ b/libs/surfaces/osc/osc.h @@ -173,12 +173,16 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest> PATH_CALLBACK2(route_recenable,i,i); PATH_CALLBACK2(route_set_gain_abs,i,f); PATH_CALLBACK2(route_set_gain_dB,i,f); + PATH_CALLBACK2(route_set_pan_stereo_position,i,f); + PATH_CALLBACK2(route_set_pan_stereo_width,i,f); int route_mute (int rid, int yn); int route_solo (int rid, int yn); int route_recenable (int rid, int yn); int route_set_gain_abs (int rid, float level); int route_set_gain_dB (int rid, float dB); + int route_set_pan_stereo_position (int rid, float left_right_fraction); + int route_set_pan_stereo_width (int rid, float percent); void listen_to_route (boost::shared_ptr<ARDOUR::Route>, lo_address); void end_listen (boost::shared_ptr<ARDOUR::Route>, lo_address); |