osc: publish session-provided trigger functions: bang/unbang
This commit is contained in:
parent
7fe7adb83c
commit
42a4216f22
|
@ -462,6 +462,10 @@ OSC::register_callbacks()
|
||||||
REGISTER_CALLBACK (serv, X_("/trigger_cue_row"), "i", trigger_cue_row);
|
REGISTER_CALLBACK (serv, X_("/trigger_cue_row"), "i", trigger_cue_row);
|
||||||
REGISTER_CALLBACK (serv, X_("/trigger_stop_all"), "i", trigger_stop_all);
|
REGISTER_CALLBACK (serv, X_("/trigger_stop_all"), "i", trigger_stop_all);
|
||||||
|
|
||||||
|
REGISTER_CALLBACK (serv, X_("/trigger_stop"), "ii", trigger_stop); //Route num (position on the Cue page), Stop now
|
||||||
|
REGISTER_CALLBACK (serv, X_("/trigger_bang"), "ii", trigger_bang); //Route num (position on the Cue page), Trigger index
|
||||||
|
REGISTER_CALLBACK (serv, X_("/trigger_unbang"), "ii", trigger_unbang); //Route num (position on the Cue page), Trigger index
|
||||||
|
|
||||||
REGISTER_CALLBACK (serv, X_("/save_state"), "", save_state);
|
REGISTER_CALLBACK (serv, X_("/save_state"), "", save_state);
|
||||||
REGISTER_CALLBACK (serv, X_("/save_state"), "f", save_state);
|
REGISTER_CALLBACK (serv, X_("/save_state"), "f", save_state);
|
||||||
REGISTER_CALLBACK (serv, X_("/prev_marker"), "", prev_marker);
|
REGISTER_CALLBACK (serv, X_("/prev_marker"), "", prev_marker);
|
||||||
|
@ -5436,6 +5440,62 @@ OSC::route_plugin_parameter (int ssid, int piid, int par, float val, lo_message
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
OSC::trigger_stop (int route_index, int now, lo_message msg)
|
||||||
|
{
|
||||||
|
if (!session) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* this function doesn't refer to surface banking but instead directly controls routes in the order they appear on the trigger_page
|
||||||
|
*/
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
StripableList sl;
|
||||||
|
session->get_stripables (sl);
|
||||||
|
sl.sort (Stripable::Sorter ());
|
||||||
|
for (StripableList::iterator s = sl.begin (); s != sl.end (); ++s) {
|
||||||
|
boost::shared_ptr<Route> r = boost::dynamic_pointer_cast<Route> (*s);
|
||||||
|
if (!r || !r->triggerbox ()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* we're only interested in Trigger Tracks */
|
||||||
|
if (!(r->presentation_info ().trigger_track ())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (index == route_index) {
|
||||||
|
r->stop_triggers(now!=0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
OSC::trigger_bang (int route_index, int row_index, lo_message msg)
|
||||||
|
{
|
||||||
|
if (!session) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
bang_trigger_at(route_index, row_index);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
OSC::trigger_unbang (int route_index, int row_index, lo_message msg)
|
||||||
|
{
|
||||||
|
if (!session) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
unbang_trigger_at(route_index, row_index);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
//prints to cerr only
|
//prints to cerr only
|
||||||
int
|
int
|
||||||
OSC::route_plugin_parameter_print (int ssid, int piid, int par, lo_message msg)
|
OSC::route_plugin_parameter_print (int ssid, int piid, int par, lo_message msg)
|
||||||
|
|
|
@ -632,6 +632,9 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||||
PATH_CALLBACK1_MSG(route_plugin_list,i);
|
PATH_CALLBACK1_MSG(route_plugin_list,i);
|
||||||
PATH_CALLBACK2_MSG(route_plugin_descriptor,i,i);
|
PATH_CALLBACK2_MSG(route_plugin_descriptor,i,i);
|
||||||
PATH_CALLBACK2_MSG(route_plugin_reset,i,i);
|
PATH_CALLBACK2_MSG(route_plugin_reset,i,i);
|
||||||
|
PATH_CALLBACK2_MSG(trigger_bang,i,i);
|
||||||
|
PATH_CALLBACK2_MSG(trigger_unbang,i,i);
|
||||||
|
PATH_CALLBACK2_MSG(trigger_stop,i,i); /* second arg is 'stop now' */
|
||||||
|
|
||||||
int strip_parse (const char *path, const char* types, lo_arg **argv, int argc, lo_message msg);
|
int strip_parse (const char *path, const char* types, lo_arg **argv, int argc, lo_message msg);
|
||||||
int master_parse (const char *path, const char* types, lo_arg **argv, int argc, lo_message msg);
|
int master_parse (const char *path, const char* types, lo_arg **argv, int argc, lo_message msg);
|
||||||
|
@ -655,6 +658,10 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||||
int route_plugin_descriptor(int ssid, int piid, lo_message msg);
|
int route_plugin_descriptor(int ssid, int piid, lo_message msg);
|
||||||
int route_plugin_reset(int ssid, int piid, lo_message msg);
|
int route_plugin_reset(int ssid, int piid, lo_message msg);
|
||||||
|
|
||||||
|
int trigger_bang(int rid, int stop_now, lo_message msg);
|
||||||
|
int trigger_unbang(int rid, int stop_now, lo_message msg);
|
||||||
|
int trigger_stop(int rid, int row_id, lo_message msg);
|
||||||
|
|
||||||
//banking functions
|
//banking functions
|
||||||
int set_bank (uint32_t bank_start, lo_message msg);
|
int set_bank (uint32_t bank_start, lo_message msg);
|
||||||
int _set_bank (uint32_t bank_start, lo_address addr);
|
int _set_bank (uint32_t bank_start, lo_address addr);
|
||||||
|
|
Loading…
Reference in New Issue