OSC: Constrain master pan position as width requires.
This commit is contained in:
parent
b588308bed
commit
1695de335d
@ -1455,17 +1455,28 @@ OSC::master_set_trim (float dB)
|
||||
}
|
||||
|
||||
int
|
||||
OSC::master_set_pan_stereo_position (float position)
|
||||
OSC::master_set_pan_stereo_position (float position, lo_message msg)
|
||||
{
|
||||
if (!session) return -1;
|
||||
|
||||
float endposition = .5;
|
||||
boost::shared_ptr<Stripable> s = session->master_out();
|
||||
|
||||
if (s) {
|
||||
if (s->pan_azimuth_control()) {
|
||||
s->pan_azimuth_control()->set_value (position, PBD::Controllable::NoGroup);
|
||||
endposition = s->pan_azimuth_control()->get_value ();
|
||||
}
|
||||
}
|
||||
OSCSurface *sur = get_surface(lo_message_get_source (msg));
|
||||
|
||||
if (sur->feedback[4]) {
|
||||
lo_message reply = lo_message_new ();
|
||||
lo_message_add_float (reply, endposition);
|
||||
|
||||
lo_send_message (lo_message_get_source (msg), "/master/pan_stereo_position", reply);
|
||||
lo_message_free (reply);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -306,7 +306,6 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||
PATH_CALLBACK1(master_set_gain,f,);
|
||||
PATH_CALLBACK1(master_set_fader,i,);
|
||||
PATH_CALLBACK1(master_set_trim,f,);
|
||||
PATH_CALLBACK1(master_set_pan_stereo_position,f,);
|
||||
PATH_CALLBACK1(master_set_mute,i,);
|
||||
PATH_CALLBACK1(monitor_set_gain,f,);
|
||||
PATH_CALLBACK1(monitor_set_fader,i,);
|
||||
@ -323,6 +322,9 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||
return 0; \
|
||||
}
|
||||
|
||||
// pan position needs message info to send feedback
|
||||
PATH_CALLBACK1_MSG(master_set_pan_stereo_position,f);
|
||||
|
||||
PATH_CALLBACK1_MSG(set_surface_bank_size,i);
|
||||
PATH_CALLBACK1_MSG(set_surface_strip_types,i);
|
||||
PATH_CALLBACK1_MSG(set_surface_feedback,i);
|
||||
@ -451,7 +453,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||
int master_set_gain (float dB);
|
||||
int master_set_fader (uint32_t position);
|
||||
int master_set_trim (float dB);
|
||||
int master_set_pan_stereo_position (float position);
|
||||
int master_set_pan_stereo_position (float position, lo_message msg);
|
||||
int master_set_mute (uint32_t state);
|
||||
int monitor_set_gain (float dB);
|
||||
int monitor_set_fader (uint32_t position);
|
||||
|
Loading…
Reference in New Issue
Block a user