daemon: handle room app renames
This commit is contained in:
parent
e498a65b6f
commit
58db7cba75
|
@ -55,7 +55,8 @@ struct ladish_app_supervisor
|
|||
uint64_t version;
|
||||
uint64_t next_id;
|
||||
struct list_head applist;
|
||||
void (* on_app_renamed)(const char * old_name, const char * new_app_name);
|
||||
void * on_app_renamed_context;
|
||||
void (* on_app_renamed)(void * context, const char * old_name, const char * new_app_name);
|
||||
};
|
||||
|
||||
bool
|
||||
|
@ -63,7 +64,8 @@ ladish_app_supervisor_create(
|
|||
ladish_app_supervisor_handle * supervisor_handle_ptr,
|
||||
const char * opath,
|
||||
const char * name,
|
||||
void (* on_app_renamed)(const char * old_name, const char * new_app_name))
|
||||
void * context,
|
||||
void (* on_app_renamed)(void * context, const char * old_name, const char * new_app_name))
|
||||
{
|
||||
struct ladish_app_supervisor * supervisor_ptr;
|
||||
|
||||
|
@ -96,6 +98,7 @@ ladish_app_supervisor_create(
|
|||
|
||||
INIT_LIST_HEAD(&supervisor_ptr->applist);
|
||||
|
||||
supervisor_ptr->on_app_renamed_context = context;
|
||||
supervisor_ptr->on_app_renamed = on_app_renamed;
|
||||
|
||||
*supervisor_handle_ptr = (ladish_app_supervisor_handle)supervisor_ptr;
|
||||
|
@ -897,7 +900,7 @@ static void set_app_properties(struct dbus_method_call * call_ptr)
|
|||
|
||||
if (name_buffer != NULL)
|
||||
{
|
||||
supervisor_ptr->on_app_renamed(app_ptr->name, name_buffer);
|
||||
supervisor_ptr->on_app_renamed(supervisor_ptr->on_app_renamed_context, app_ptr->name, name_buffer);
|
||||
free(app_ptr->name);
|
||||
app_ptr->name = name_buffer;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,8 @@ ladish_app_supervisor_create(
|
|||
ladish_app_supervisor_handle * supervisor_handle_ptr,
|
||||
const char * opath,
|
||||
const char * name,
|
||||
void (* on_app_renamed)(const char * old_name, const char * new_app_name));
|
||||
void * context,
|
||||
void (* on_app_renamed)(void * context, const char * old_name, const char * new_app_name));
|
||||
|
||||
void
|
||||
ladish_app_supervisor_destroy(
|
||||
|
|
|
@ -42,10 +42,8 @@ struct ladish_room
|
|||
|
||||
extern const struct dbus_interface_descriptor g_interface_room;
|
||||
|
||||
static void on_app_renamed(const char * old_name, const char * new_app_name)
|
||||
{
|
||||
/* TODO */
|
||||
}
|
||||
/* implemented in studio.c */
|
||||
void ladish_on_app_renamed(void * context, const char * old_name, const char * new_app_name);
|
||||
|
||||
bool
|
||||
ladish_room_create(
|
||||
|
@ -111,7 +109,7 @@ ladish_room_create(
|
|||
|
||||
if (object_path)
|
||||
{
|
||||
if (!ladish_app_supervisor_create(&room_ptr->app_supervisor, object_path, room_ptr->name, on_app_renamed))
|
||||
if (!ladish_app_supervisor_create(&room_ptr->app_supervisor, object_path, room_ptr->name, room_ptr->graph, ladish_on_app_renamed))
|
||||
{
|
||||
log_error("ladish_app_supervisor_create() failed.");
|
||||
goto destroy_graph;
|
||||
|
|
|
@ -389,7 +389,7 @@ static void on_jack_server_disappeared(void)
|
|||
ladish_environment_reset(&g_studio.env_store, ladish_environment_jack_server_present);
|
||||
}
|
||||
|
||||
static void on_app_renamed(const char * old_name, const char * new_app_name)
|
||||
void ladish_on_app_renamed(void * context, const char * old_name, const char * new_app_name)
|
||||
{
|
||||
ladish_client_handle client;
|
||||
|
||||
|
@ -399,10 +399,10 @@ static void on_app_renamed(const char * old_name, const char * new_app_name)
|
|||
ladish_graph_rename_client(g_studio.jack_graph, client, new_app_name);
|
||||
}
|
||||
|
||||
client = ladish_graph_find_client_by_name(g_studio.studio_graph, old_name);
|
||||
client = ladish_graph_find_client_by_name(context, old_name);
|
||||
if (client != NULL)
|
||||
{
|
||||
ladish_graph_rename_client(g_studio.studio_graph, client, new_app_name);
|
||||
ladish_graph_rename_client(context, client, new_app_name);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -453,7 +453,7 @@ bool studio_init(void)
|
|||
goto jack_graph_destroy;
|
||||
}
|
||||
|
||||
if (!ladish_app_supervisor_create(&g_studio.app_supervisor, STUDIO_OBJECT_PATH, "studio", on_app_renamed))
|
||||
if (!ladish_app_supervisor_create(&g_studio.app_supervisor, STUDIO_OBJECT_PATH, "studio", g_studio.studio_graph, ladish_on_app_renamed))
|
||||
{
|
||||
log_error("ladish_app_supervisor_create() failed.");
|
||||
goto studio_graph_destroy;
|
||||
|
|
Loading…
Reference in New Issue