mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-04 13:30:12 -05:00
port: add events for add/remove of link
This commit is contained in:
parent
2cb1590859
commit
5e593563af
2 changed files with 10 additions and 0 deletions
|
|
@ -1105,6 +1105,9 @@ struct pw_link *pw_link_new(struct pw_core *core,
|
||||||
do_add_link,
|
do_add_link,
|
||||||
SPA_ID_INVALID, sizeof(struct pw_port *), &input, false, this);
|
SPA_ID_INVALID, sizeof(struct pw_port *), &input, false, this);
|
||||||
|
|
||||||
|
spa_hook_list_call(&output->listener_list, struct pw_port_events, link_added, this);
|
||||||
|
spa_hook_list_call(&input->listener_list, struct pw_port_events, link_added, this);
|
||||||
|
|
||||||
this->global = pw_core_add_global(core, NULL, parent, core->type.link, PW_VERSION_LINK,
|
this->global = pw_core_add_global(core, NULL, parent, core->type.link, PW_VERSION_LINK,
|
||||||
link_bind_func, this);
|
link_bind_func, this);
|
||||||
|
|
||||||
|
|
@ -1139,10 +1142,12 @@ void pw_link_destroy(struct pw_link *link)
|
||||||
|
|
||||||
input_remove(link, link->input);
|
input_remove(link, link->input);
|
||||||
spa_list_remove(&link->input_link);
|
spa_list_remove(&link->input_link);
|
||||||
|
spa_hook_list_call(&link->input->listener_list, struct pw_port_events, link_removed, link);
|
||||||
link->input = NULL;
|
link->input = NULL;
|
||||||
|
|
||||||
output_remove(link, link->output);
|
output_remove(link, link->output);
|
||||||
spa_list_remove(&link->output_link);
|
spa_list_remove(&link->output_link);
|
||||||
|
spa_hook_list_call(&link->output->listener_list, struct pw_port_events, link_removed, link);
|
||||||
link->output = NULL;
|
link->output = NULL;
|
||||||
|
|
||||||
pw_work_queue_destroy(impl->work);
|
pw_work_queue_destroy(impl->work);
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ extern "C" {
|
||||||
* The port object
|
* The port object
|
||||||
*/
|
*/
|
||||||
struct pw_port;
|
struct pw_port;
|
||||||
|
struct pw_link;
|
||||||
|
|
||||||
#include <pipewire/core.h>
|
#include <pipewire/core.h>
|
||||||
#include <pipewire/introspect.h>
|
#include <pipewire/introspect.h>
|
||||||
|
|
@ -93,6 +94,10 @@ struct pw_port_events {
|
||||||
|
|
||||||
void (*destroy) (void *data);
|
void (*destroy) (void *data);
|
||||||
|
|
||||||
|
void (*link_added) (void *data, struct pw_link *link);
|
||||||
|
|
||||||
|
void (*link_removed) (void *data, struct pw_link *link);
|
||||||
|
|
||||||
void (*state_changed) (void *data, enum pw_port_state state);
|
void (*state_changed) (void *data, enum pw_port_state state);
|
||||||
|
|
||||||
void (*properties_changed) (void *data, const struct pw_properties *properties);
|
void (*properties_changed) (void *data, const struct pw_properties *properties);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue