mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
port: add param_changed event
This commit is contained in:
parent
4c8f8671d7
commit
8e366a17ee
3 changed files with 7 additions and 1 deletions
|
|
@ -307,6 +307,8 @@ static void emit_params(struct pw_impl_port *port, uint32_t *changed_ids, uint32
|
|||
struct pw_resource *resource;
|
||||
int subscribed = 0;
|
||||
|
||||
pw_impl_port_emit_param_changed(port, changed_ids[i]);
|
||||
|
||||
/* first check if anyone is subscribed */
|
||||
spa_list_for_each(resource, &port->global->resource_list, link) {
|
||||
if ((subscribed = resource_is_subscribed(resource, changed_ids[i])))
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ enum pw_impl_port_state {
|
|||
|
||||
/** Port events, use \ref pw_impl_port_add_listener */
|
||||
struct pw_impl_port_events {
|
||||
#define PW_VERSION_IMPL_PORT_EVENTS 0
|
||||
#define PW_VERSION_IMPL_PORT_EVENTS 1
|
||||
uint32_t version;
|
||||
|
||||
/** The port is destroyed */
|
||||
|
|
@ -87,6 +87,9 @@ struct pw_impl_port_events {
|
|||
|
||||
/** a control was removed from the port */
|
||||
void (*control_removed) (void *data, struct pw_control *control);
|
||||
|
||||
/** a parameter changed, since version 1 */
|
||||
void (*param_changed) (void *data, uint32_t id);
|
||||
};
|
||||
|
||||
/** Create a new port \memberof pw_impl_port
|
||||
|
|
|
|||
|
|
@ -638,6 +638,7 @@ struct pw_impl_port_implementation {
|
|||
#define pw_impl_port_emit_state_changed(p,o,s,e) pw_impl_port_emit(p, state_changed, 0, o, s, e)
|
||||
#define pw_impl_port_emit_control_added(p,c) pw_impl_port_emit(p, control_added, 0, c)
|
||||
#define pw_impl_port_emit_control_removed(p,c) pw_impl_port_emit(p, control_removed, 0, c)
|
||||
#define pw_impl_port_emit_param_changed(p,i) pw_impl_port_emit(p, param_changed, 1, i)
|
||||
|
||||
#define PW_IMPL_PORT_IS_CONTROL(port) SPA_FLAG_MASK(port->flags, \
|
||||
PW_IMPL_PORT_FLAG_BUFFERS|PW_IMPL_PORT_FLAG_CONTROL,\
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue