ladishd: set vgraph for new ports and use it when port disappears or gets renamed
This commit is contained in:
parent
f3a59a3561
commit
7d3acd7331
|
@ -642,6 +642,10 @@ port_appeared(
|
||||||
/* set port jack id so invisible connections to/from it can be restored */
|
/* set port jack id so invisible connections to/from it can be restored */
|
||||||
ladish_port_set_jack_id(port, port_id);
|
ladish_port_set_jack_id(port, port_id);
|
||||||
|
|
||||||
|
/* for normal ports, one can find the vgraph through the jack client,
|
||||||
|
but for a2j ports the jack client is shared between graphs */
|
||||||
|
ladish_port_set_vgraph(port, vgraph);
|
||||||
|
|
||||||
if (!ladish_graph_add_port(virtualizer_ptr->jack_graph, jack_client, port, jack_port_name, type, flags, false))
|
if (!ladish_graph_add_port(virtualizer_ptr->jack_graph, jack_client, port, jack_port_name, type, flags, false))
|
||||||
{
|
{
|
||||||
log_error("ladish_graph_add_port() failed.");
|
log_error("ladish_graph_add_port() failed.");
|
||||||
|
@ -813,7 +817,7 @@ static void port_disappeared(void * context, uint64_t client_id, uint64_t port_i
|
||||||
|
|
||||||
/* find the virtual graph that owns the app that owns the client that owns the disappeared port */
|
/* find the virtual graph that owns the app that owns the client that owns the disappeared port */
|
||||||
jmcore = false;
|
jmcore = false;
|
||||||
vgraph = ladish_client_get_vgraph(jclient);
|
vgraph = ladish_port_get_vgraph(port);
|
||||||
if (vgraph == NULL)
|
if (vgraph == NULL)
|
||||||
{
|
{
|
||||||
vgraph = find_link_port_vgraph_by_uuid(virtualizer_ptr, ladish_graph_get_port_name(virtualizer_ptr->jack_graph, port), NULL);
|
vgraph = find_link_port_vgraph_by_uuid(virtualizer_ptr, ladish_graph_get_port_name(virtualizer_ptr->jack_graph, port), NULL);
|
||||||
|
@ -869,22 +873,11 @@ static void port_disappeared(void * context, uint64_t client_id, uint64_t port_i
|
||||||
|
|
||||||
static void port_renamed(void * context, uint64_t client_id, uint64_t port_id, const char * old_port_name, const char * new_port_name)
|
static void port_renamed(void * context, uint64_t client_id, uint64_t port_id, const char * old_port_name, const char * new_port_name)
|
||||||
{
|
{
|
||||||
ladish_client_handle client;
|
|
||||||
ladish_port_handle port;
|
ladish_port_handle port;
|
||||||
ladish_graph_handle vgraph;
|
ladish_graph_handle vgraph;
|
||||||
|
|
||||||
log_info("port_renamed(%"PRIu64", '%s', '%s')", port_id, old_port_name, new_port_name);
|
log_info("port_renamed(%"PRIu64", '%s', '%s')", port_id, old_port_name, new_port_name);
|
||||||
|
|
||||||
client = ladish_graph_find_client_by_jack_id(virtualizer_ptr->jack_graph, client_id);
|
|
||||||
if (client == NULL)
|
|
||||||
{
|
|
||||||
log_error("Port of unknown JACK client with id %"PRIu64" was renamed", client_id);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* find the virtual graph that owns the app that owns the client that owns the renamed port */
|
|
||||||
vgraph = ladish_client_get_vgraph(client);
|
|
||||||
|
|
||||||
port = ladish_graph_find_port_by_jack_id(virtualizer_ptr->jack_graph, port_id, true, true);
|
port = ladish_graph_find_port_by_jack_id(virtualizer_ptr->jack_graph, port_id, true, true);
|
||||||
if (port == NULL)
|
if (port == NULL)
|
||||||
{
|
{
|
||||||
|
@ -892,6 +885,9 @@ static void port_renamed(void * context, uint64_t client_id, uint64_t port_id, c
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* find the virtual graph that owns the app that owns the client that owns the renamed port */
|
||||||
|
vgraph = ladish_port_get_vgraph(port);
|
||||||
|
|
||||||
if (!ladish_graph_rename_port(virtualizer_ptr->jack_graph, port, new_port_name))
|
if (!ladish_graph_rename_port(virtualizer_ptr->jack_graph, port, new_port_name))
|
||||||
{
|
{
|
||||||
log_error("renaming of port in jack graph failed");
|
log_error("renaming of port in jack graph failed");
|
||||||
|
|
Loading…
Reference in New Issue