summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
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);