--- src/pulsecore/core.h | 5 +++++ src/pulsecore/node.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/pulsecore/core.h b/src/pulsecore/core.h index b2df5b5..8b4bf05 100644 --- a/src/pulsecore/core.h +++ b/src/pulsecore/core.h @@ -120,6 +120,11 @@ typedef enum pa_core_hook { PA_CORE_HOOK_CARD_PROFILE_AVAILABLE_CHANGED, PA_CORE_HOOK_PORT_AVAILABLE_CHANGED, PA_CORE_HOOK_PORT_LATENCY_OFFSET_CHANGED, + + /* Fired when a new node is added to the system. Router modules can use + * this to set the initial routing for the new node. Call data: pa_node. */ + PA_CORE_HOOK_NODE_SET_INITIAL_ROUTING, + PA_CORE_HOOK_MAX } pa_core_hook_t; diff --git a/src/pulsecore/node.c b/src/pulsecore/node.c index 7b4d61f..18249d2 100644 --- a/src/pulsecore/node.c +++ b/src/pulsecore/node.c @@ -157,9 +157,10 @@ void pa_node_put(pa_node *node) { pa_assert(node->owner); pa_assert_se(pa_idxset_put(node->core->nodes, node, &node->index) >= 0); - node->state = PA_NODE_STATE_LINKED; + pa_hook_fire(&node->core->hooks[PA_CORE_HOOK_NODE_SET_INITIAL_ROUTING], node); + pa_log_debug("Created node %s.", node->name); } -- 1.8.3.1