mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 23:35:03 +01:00
OSC: Allow personal monitor to change output connection
This commit is contained in:
parent
3298653955
commit
7390b88c2b
2 changed files with 38 additions and 0 deletions
|
|
@ -6360,6 +6360,16 @@ OSC::cue_parse (const char *path, const char* types, lo_arg **argv, int argc, lo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (!strncmp (path, X_("/cue/connect_aux"), 16)) {
|
||||||
|
// Create new Aux bus
|
||||||
|
string dest = "";
|
||||||
|
if (argc == 1 && types[0] == 's') {
|
||||||
|
dest = &argv[0]->s;
|
||||||
|
ret = cue_connect_aux (dest, msg);
|
||||||
|
} else {
|
||||||
|
PBD::warning << "OSC: connect_aux has wrong number or type of parameters." << endmsg;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (!strncmp (path, X_("/cue/connect"), 12)) {
|
else if (!strncmp (path, X_("/cue/connect"), 12)) {
|
||||||
// Connect to default Aux bus
|
// Connect to default Aux bus
|
||||||
if ((!argc) || argv[0]->f || argv[0]->i) {
|
if ((!argc) || argv[0]->f || argv[0]->i) {
|
||||||
|
|
@ -6501,11 +6511,38 @@ OSC::cue_new_aux (string name, string dest, lo_message msg)
|
||||||
aux->presentation_info().set_hidden (true);
|
aux->presentation_info().set_hidden (true);
|
||||||
|
|
||||||
cue_set ((uint32_t) -1, msg);
|
cue_set ((uint32_t) -1, msg);
|
||||||
|
session->set_dirty();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
OSC::cue_connect_aux (std::string dest, lo_message msg)
|
||||||
|
{
|
||||||
|
OSCSurface *sur = get_surface(get_address (msg), true);
|
||||||
|
int ret = 1;
|
||||||
|
if (sur->cue) {
|
||||||
|
boost::shared_ptr<Route> rt = boost::dynamic_pointer_cast<Route> (get_strip (sur->aux, get_address(msg)));
|
||||||
|
if (rt) {
|
||||||
|
if (dest.size()) {
|
||||||
|
rt->output()->disconnect (this);
|
||||||
|
if (atoi( dest.c_str())) {
|
||||||
|
dest = string_compose ("system:playback_%1", dest);
|
||||||
|
}
|
||||||
|
PortSet& ports = rt->output()->ports ();
|
||||||
|
rt->output ()->connect (*(ports.begin()), dest, this);
|
||||||
|
session->set_dirty();
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (ret) {
|
||||||
|
PBD::warning << "OSC: cannot connect, no Aux bus chosen." << endmsg;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
OSC::cue_next (lo_message msg)
|
OSC::cue_next (lo_message msg)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -344,6 +344,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||||
int cue_set (uint32_t aux, lo_message msg);
|
int cue_set (uint32_t aux, lo_message msg);
|
||||||
int _cue_set (uint32_t aux, lo_address addr);
|
int _cue_set (uint32_t aux, lo_address addr);
|
||||||
int cue_new_aux (std::string name, std::string dest, lo_message msg);
|
int cue_new_aux (std::string name, std::string dest, lo_message msg);
|
||||||
|
int cue_connect_aux (std::string dest, lo_message msg);
|
||||||
int cue_next (lo_message msg);
|
int cue_next (lo_message msg);
|
||||||
int cue_previous (lo_message msg);
|
int cue_previous (lo_message msg);
|
||||||
int cue_send_fader (uint32_t id, float position, lo_message msg);
|
int cue_send_fader (uint32_t id, float position, lo_message msg);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue