daemon: handle room app renames

This commit is contained in:
Nedko Arnaudov 2010-04-04 22:05:25 +03:00
parent e498a65b6f
commit 58db7cba75
4 changed files with 15 additions and 13 deletions

View File

@ -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;
}

View File

@ -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(

View File

@ -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;

View File

@ -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;