}
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;
}
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,);
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);
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);