From a8fa4383a1e4da470156f85ad280d6df0f1942b4 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 18 Jan 2018 12:49:01 +0100 Subject: [PATCH] mixer: also install mixer on new nodes --- src/modules/module-mixer.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/modules/module-mixer.c b/src/modules/module-mixer.c index 42b1559aa..9df5f8e48 100644 --- a/src/modules/module-mixer.c +++ b/src/modules/module-mixer.c @@ -37,6 +37,7 @@ struct impl { struct pw_core *core; struct pw_type *t; struct pw_module *module; + struct spa_hook core_listener; struct spa_hook module_listener; struct pw_properties *properties; @@ -185,6 +186,7 @@ static void module_destroy(void *data) struct node_data *nd, *t; spa_hook_remove(&impl->module_listener); + spa_hook_remove(&impl->core_listener); spa_list_for_each_safe(nd, t, &impl->node_list, link) pw_node_destroy(nd->node); @@ -200,6 +202,17 @@ static const struct pw_module_events module_events = { .destroy = module_destroy, }; +static void +core_global_added(void *data, struct pw_global *global) +{ + on_global(data, global); +} + +static const struct pw_core_events core_events = { + PW_VERSION_CORE_EVENTS, + .global_added = core_global_added, +}; + static int module_init(struct pw_module *module, struct pw_properties *properties) { struct pw_core *core = pw_module_get_core(module); @@ -222,6 +235,7 @@ static int module_init(struct pw_module *module, struct pw_properties *propertie pw_core_for_each_global(core, on_global, impl); + pw_core_add_listener(core, &impl->core_listener, &core_events, impl); pw_module_add_listener(module, &impl->module_listener, &module_events, impl); return 0;