summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-11-28 21:28:54 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-11-28 21:28:54 +0000
commitc7df5f5271be9652ab4bac25a1f8dcb4e4373ba4 (patch)
tree42ad73e522e72db48b0cc76cc80c16c48001a37c /libs/surfaces
parentad4e0cd2d1ae55fc2c459486c8e048a15cfa50f0 (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.cc37
-rw-r--r--libs/surfaces/osc/osc.h4
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);