diff --git a/src/examples/media-session/media-session.c b/src/examples/media-session/media-session.c index b9624e05f..d88a6d60c 100644 --- a/src/examples/media-session/media-session.c +++ b/src/examples/media-session/media-session.c @@ -1182,6 +1182,13 @@ struct sm_object *sm_media_session_find_object(struct sm_media_session *sess, ui return find_object(impl, id); } +int sm_media_session_destroy_object(struct sm_media_session *sess, uint32_t id) +{ + struct impl *impl = SPA_CONTAINER_OF(sess, struct impl, this); + pw_registry_destroy(impl->registry, id); + return 0; +} + int sm_media_session_schedule_rescan(struct sm_media_session *sess) { struct impl *impl = SPA_CONTAINER_OF(sess, struct impl, this); diff --git a/src/examples/media-session/media-session.h b/src/examples/media-session/media-session.h index 5e639a578..fc3b9aef7 100644 --- a/src/examples/media-session/media-session.h +++ b/src/examples/media-session/media-session.h @@ -248,6 +248,7 @@ int sm_media_session_sync(struct sm_media_session *sess, void (*callback) (void *data), void *data); struct sm_object *sm_media_session_find_object(struct sm_media_session *sess, uint32_t id); +int sm_media_session_destroy_object(struct sm_media_session *sess, uint32_t id); int sm_media_session_schedule_rescan(struct sm_media_session *sess); diff --git a/src/examples/media-session/policy-node.c b/src/examples/media-session/policy-node.c index 76f2d8be4..28a3c9a4a 100644 --- a/src/examples/media-session/policy-node.c +++ b/src/examples/media-session/policy-node.c @@ -487,7 +487,7 @@ static int rescan_node(struct impl *impl, struct node *n) str = spa_dict_lookup(props, PW_KEY_NODE_DONT_RECONNECT); if (str != NULL && pw_properties_parse_bool(str)) { -// pw_registry_destroy(impl->registry, n->id); + sm_media_session_destroy_object(impl->session, n->id); } obj = sm_media_session_find_object(impl->session, n->client_id);