diff --git a/src/extensions/client-node.h b/src/extensions/client-node.h index 1c6cd4606..a64c5da1b 100644 --- a/src/extensions/client-node.h +++ b/src/extensions/client-node.h @@ -280,7 +280,7 @@ pw_client_node_proxy_event(struct pw_client_node_proxy *p, struct spa_event *eve static inline void pw_client_node_proxy_destroy(struct pw_client_node_proxy *p) { - pw_proxy_do_na((struct pw_proxy*)p, struct pw_client_node_proxy_methods, destroy); + pw_proxy_do((struct pw_proxy*)p, struct pw_client_node_proxy_methods, destroy); } diff --git a/src/modules/module-client-node/protocol-native.c b/src/modules/module-client-node/protocol-native.c index 9736df84d..2cb34a927 100644 --- a/src/modules/module-client-node/protocol-native.c +++ b/src/modules/module-client-node/protocol-native.c @@ -760,7 +760,7 @@ static bool client_node_demarshal_destroy(void *object, void *data, size_t size) if (!spa_pod_iter_struct(&it, data, size)) return false; - pw_resource_do_na(resource, struct pw_client_node_proxy_methods, destroy); + pw_resource_do(resource, struct pw_client_node_proxy_methods, destroy); return true; } diff --git a/src/modules/module-protocol-native/connection.c b/src/modules/module-protocol-native/connection.c index b296d5f6b..f624c07cb 100644 --- a/src/modules/module-protocol-native/connection.c +++ b/src/modules/module-protocol-native/connection.c @@ -235,7 +235,7 @@ void pw_protocol_native_connection_destroy(struct pw_protocol_native_connection pw_log_debug("connection %p: destroy", conn); - pw_listener_list_emit_na(&conn->listener_list, struct pw_protocol_native_connection_events, destroy); + pw_listener_list_emit(&conn->listener_list, struct pw_protocol_native_connection_events, destroy); free(impl->out.buffer_data); free(impl->in.buffer_data); @@ -430,7 +430,7 @@ pw_protocol_native_connection_end(struct pw_protocol_native_connection *conn, printf(">>>>>>>>> out:\n"); spa_debug_pod((struct spa_pod *)p); } - pw_listener_list_emit_na(&conn->listener_list, struct pw_protocol_native_connection_events, need_flush); + pw_listener_list_emit(&conn->listener_list, struct pw_protocol_native_connection_events, need_flush); } /** Flush the connection object diff --git a/src/modules/spa/spa-node.c b/src/modules/spa/spa-node.c index 6e46efc30..ee37ab30e 100644 --- a/src/modules/spa/spa-node.c +++ b/src/modules/spa/spa-node.c @@ -352,14 +352,14 @@ static void on_node_need_input(void *data) { struct impl *impl = data; struct pw_node *this = impl->this; - pw_listener_list_emit_na(&this->listener_list, struct pw_node_events, need_input); + pw_listener_list_emit(&this->listener_list, struct pw_node_events, need_input); } static void on_node_have_output(void *data) { struct impl *impl = data; struct pw_node *this = impl->this; - pw_listener_list_emit_na(&this->listener_list, struct pw_node_events, have_output); + pw_listener_list_emit(&this->listener_list, struct pw_node_events, have_output); } static void diff --git a/src/pipewire/client.c b/src/pipewire/client.c index 2c09008d4..3a6e7ba5d 100644 --- a/src/pipewire/client.c +++ b/src/pipewire/client.c @@ -175,7 +175,7 @@ void pw_client_destroy(struct pw_client *client) struct impl *impl = SPA_CONTAINER_OF(client, struct impl, this); pw_log_debug("client %p: destroy", client); - pw_listener_list_emit_na(&client->listener_list, struct pw_client_events, destroy); + pw_listener_list_emit(&client->listener_list, struct pw_client_events, destroy); spa_list_remove(&client->link); pw_global_destroy(client->global); @@ -185,7 +185,7 @@ void pw_client_destroy(struct pw_client *client) pw_map_for_each(&client->objects, destroy_resource, client); - pw_listener_list_emit_na(&client->listener_list, struct pw_client_events, free); + pw_listener_list_emit(&client->listener_list, struct pw_client_events, free); pw_log_debug("client %p: free", impl); pw_map_clear(&client->objects); diff --git a/src/pipewire/data-loop.c b/src/pipewire/data-loop.c index dfa7d2269..b8a6b5b8b 100644 --- a/src/pipewire/data-loop.c +++ b/src/pipewire/data-loop.c @@ -134,7 +134,7 @@ void pw_data_loop_destroy(struct pw_data_loop *loop) { pw_log_debug("data-loop %p: destroy", loop); - pw_listener_list_emit_na(&loop->listener_list, struct pw_data_loop_events, destroy); + pw_listener_list_emit(&loop->listener_list, struct pw_data_loop_events, destroy); pw_data_loop_stop(loop); diff --git a/src/pipewire/link.c b/src/pipewire/link.c index f568770c9..444b65a13 100644 --- a/src/pipewire/link.c +++ b/src/pipewire/link.c @@ -1123,7 +1123,7 @@ void pw_link_destroy(struct pw_link *link) struct pw_resource *resource, *tmp; pw_log_debug("link %p: destroy", impl); - pw_listener_list_emit_na(&link->listener_list, struct pw_link_events, destroy); + pw_listener_list_emit(&link->listener_list, struct pw_link_events, destroy); pw_link_deactivate(link); diff --git a/src/pipewire/listener.h b/src/pipewire/listener.h index 0a45ceac1..110a1bd97 100644 --- a/src/pipewire/listener.h +++ b/src/pipewire/listener.h @@ -63,17 +63,7 @@ static inline void pw_listener_remove(struct pw_listener *listener) spa_list_for_each_safe(ci, t, &list->list, link) { \ const type *cb = ci->events; \ if (cb->method) \ - cb->method(ci->data, __VA_ARGS__); \ - } \ -}); - -#define pw_listener_list_emit_na(l,type,method) ({ \ - struct pw_listener_list *list = l; \ - struct pw_listener *ci, *t; \ - spa_list_for_each_safe(ci, t, &list->list, link) { \ - const type *cb = ci->events; \ - if (cb->method) \ - cb->method(ci->data); \ + cb->method(ci->data, ## __VA_ARGS__); \ } \ }); diff --git a/src/pipewire/main-loop.c b/src/pipewire/main-loop.c index 1f84df7cf..dad404716 100644 --- a/src/pipewire/main-loop.c +++ b/src/pipewire/main-loop.c @@ -57,7 +57,7 @@ struct pw_main_loop *pw_main_loop_new(void) void pw_main_loop_destroy(struct pw_main_loop *loop) { pw_log_debug("main-loop %p: destroy", loop); - pw_listener_list_emit_na(&loop->listener_list, struct pw_main_loop_events, destroy); + pw_listener_list_emit(&loop->listener_list, struct pw_main_loop_events, destroy); pw_loop_destroy(loop->loop); diff --git a/src/pipewire/module.c b/src/pipewire/module.c index f3ac1e9a7..22b07a4e0 100644 --- a/src/pipewire/module.c +++ b/src/pipewire/module.c @@ -257,7 +257,7 @@ void pw_module_destroy(struct pw_module *module) struct impl *impl = SPA_CONTAINER_OF(module, struct impl, this); struct pw_resource *resource, *tmp; - pw_listener_list_emit_na(&module->listener_list, struct pw_module_events, destroy); + pw_listener_list_emit(&module->listener_list, struct pw_module_events, destroy); spa_list_for_each_safe(resource, tmp, &module->resource_list, link) pw_resource_destroy(resource); diff --git a/src/pipewire/node.c b/src/pipewire/node.c index e6807de46..605decde9 100644 --- a/src/pipewire/node.c +++ b/src/pipewire/node.c @@ -315,7 +315,7 @@ void pw_node_register(struct pw_node *this) node_bind_func, this); impl->registered = true; - pw_listener_list_emit_na(&this->listener_list, struct pw_node_events, initialized); + pw_listener_list_emit(&this->listener_list, struct pw_node_events, initialized); pw_node_update_state(this, PW_NODE_STATE_SUSPENDED, NULL); } @@ -494,7 +494,7 @@ void pw_node_destroy(struct pw_node *node) struct pw_port *port, *tmpp; pw_log_debug("node %p: destroy", impl); - pw_listener_list_emit_na(&node->listener_list, struct pw_node_events, destroy); + pw_listener_list_emit(&node->listener_list, struct pw_node_events, destroy); pw_loop_invoke(node->data_loop, do_node_remove, 1, 0, NULL, true, node); @@ -519,7 +519,7 @@ void pw_node_destroy(struct pw_node *node) } pw_log_debug("node %p: free", node); - pw_listener_list_emit_na(&node->listener_list, struct pw_node_events, free); + pw_listener_list_emit(&node->listener_list, struct pw_node_events, free); pw_work_queue_destroy(impl->work); diff --git a/src/pipewire/port.c b/src/pipewire/port.c index 22da9724c..b6b73f64b 100644 --- a/src/pipewire/port.c +++ b/src/pipewire/port.c @@ -292,7 +292,7 @@ void pw_port_destroy(struct pw_port *port) pw_log_debug("port %p: destroy", port); - pw_listener_list_emit_na(&port->listener_list, struct pw_port_events, destroy); + pw_listener_list_emit(&port->listener_list, struct pw_port_events, destroy); if (node) { pw_loop_invoke(port->node->data_loop, do_remove_port, SPA_ID_INVALID, 0, NULL, true, port); @@ -469,7 +469,9 @@ int pw_port_alloc_buffers(struct pw_port *port, pw_log_debug("port %p: alloc %d buffers", port, *n_buffers); if (port->implementation->alloc_buffers) - res = port->implementation->alloc_buffers(port->implementation_data, params, n_params, buffers, n_buffers); + res = port->implementation->alloc_buffers(port->implementation_data, + params, n_params, + buffers, n_buffers); else res = SPA_RESULT_NOT_IMPLEMENTED; diff --git a/src/pipewire/proxy.c b/src/pipewire/proxy.c index 5be1f6e8c..ba1c22ca8 100644 --- a/src/pipewire/proxy.c +++ b/src/pipewire/proxy.c @@ -119,7 +119,7 @@ void pw_proxy_destroy(struct pw_proxy *proxy) struct proxy *impl = SPA_CONTAINER_OF(proxy, struct proxy, this); pw_log_debug("proxy %p: destroy %u", proxy, proxy->id); - pw_listener_list_emit_na(&proxy->listener_list, struct pw_proxy_events, destroy); + pw_listener_list_emit(&proxy->listener_list, struct pw_proxy_events, destroy); pw_map_remove(&proxy->remote->objects, proxy->id); spa_list_remove(&proxy->link); diff --git a/src/pipewire/proxy.h b/src/pipewire/proxy.h index 1c2a0097f..9e4aeadf7 100644 --- a/src/pipewire/proxy.h +++ b/src/pipewire/proxy.h @@ -127,11 +127,8 @@ struct pw_listener_list *pw_proxy_get_proxy_listeners(struct pw_proxy *proxy); const void *pw_proxy_get_proxy_implementation(struct pw_proxy *proxy); -#define pw_proxy_notify(p,type,event,...) pw_listener_list_emit(pw_proxy_get_proxy_listeners(p),type,event,__VA_ARGS__) -#define pw_proxy_notify_na(p,type,event) pw_listener_list_emit_na(pw_proxy_get_proxy_listeners(p),type,event) - -#define pw_proxy_do(p,type,method,...) ((type*) pw_proxy_get_proxy_implementation(p))->method(p, __VA_ARGS__) -#define pw_proxy_do_na(p,type,method) ((type*) pw_proxy_get_proxy_implementation(p))->method(p) +#define pw_proxy_notify(p,type,event,...) pw_listener_list_emit(pw_proxy_get_proxy_listeners(p),type,event,## __VA_ARGS__) +#define pw_proxy_do(p,type,method,...) ((type*) pw_proxy_get_proxy_implementation(p))->method(p, ## __VA_ARGS__) #ifdef __cplusplus } diff --git a/src/pipewire/remote.c b/src/pipewire/remote.c index b92f37863..e4877d56c 100644 --- a/src/pipewire/remote.c +++ b/src/pipewire/remote.c @@ -265,7 +265,7 @@ void pw_remote_destroy(struct pw_remote *remote) struct pw_stream *stream, *s2; pw_log_debug("remote %p: destroy", remote); - pw_listener_list_emit_na(&remote->listener_list, struct pw_remote_events, destroy); + pw_listener_list_emit(&remote->listener_list, struct pw_remote_events, destroy); if (remote->state != PW_REMOTE_STATE_UNCONNECTED) pw_remote_disconnect(remote); diff --git a/src/pipewire/resource.c b/src/pipewire/resource.c index 660369fd7..a2a715617 100644 --- a/src/pipewire/resource.c +++ b/src/pipewire/resource.c @@ -142,7 +142,7 @@ void pw_resource_destroy(struct pw_resource *resource) struct pw_client *client = resource->client; pw_log_trace("resource %p: destroy %u", resource, resource->id); - pw_listener_list_emit_na(&resource->listener_list, struct pw_resource_events, destroy); + pw_listener_list_emit(&resource->listener_list, struct pw_resource_events, destroy); pw_map_insert_at(&client->objects, resource->id, NULL); pw_listener_list_emit(&client->listener_list, struct pw_client_events, resource_removed, resource); diff --git a/src/pipewire/resource.h b/src/pipewire/resource.h index ce61ee85c..50646cbf5 100644 --- a/src/pipewire/resource.h +++ b/src/pipewire/resource.h @@ -107,18 +107,10 @@ const void *pw_resource_get_proxy_notify(struct pw_resource *resource); struct pw_listener *l = pw_resource_get_implementation(r); \ const type *cb = l->events; \ if (cb->method) \ - cb->method(l->data, __VA_ARGS__); \ + cb->method(l->data, ## __VA_ARGS__); \ }); -#define pw_resource_do_na(r,type,method) ({ \ - struct pw_listener *l = pw_resource_get_implementation(r); \ - const type *cb = l->events; \ - if (cb->method) \ - cb->method(l->data); \ -}); - -#define pw_resource_notify(r,type,event,...) ((type*) pw_resource_get_proxy_notify(r))->event(r, __VA_ARGS__) -#define pw_resource_notify_na(r,type,event) ((type*) r->marshal->event_marshal)->event(r) +#define pw_resource_notify(r,type,event,...) ((type*) pw_resource_get_proxy_notify(r))->event(r, ## __VA_ARGS__) #ifdef __cplusplus } diff --git a/src/pipewire/stream.c b/src/pipewire/stream.c index e682175d0..7b6582fee 100644 --- a/src/pipewire/stream.c +++ b/src/pipewire/stream.c @@ -313,7 +313,7 @@ void pw_stream_destroy(struct pw_stream *stream) pw_log_debug("stream %p: destroy", stream); - pw_listener_list_emit_na(&stream->listener_list, struct pw_stream_events, destroy); + pw_listener_list_emit(&stream->listener_list, struct pw_stream_events, destroy); unhandle_socket(stream); @@ -514,7 +514,7 @@ static void handle_rtnode_message(struct pw_stream *stream, struct pw_client_nod } pw_log_trace("stream %p: process output", stream); impl->in_need_buffer = true; - pw_listener_list_emit_na(&stream->listener_list, struct pw_stream_events, need_buffer); + pw_listener_list_emit(&stream->listener_list, struct pw_stream_events, need_buffer); impl->in_need_buffer = false; } else if (PW_CLIENT_NODE_MESSAGE_TYPE(message) == PW_CLIENT_NODE_MESSAGE_REUSE_BUFFER) { struct pw_client_node_message_reuse_buffer *p = @@ -608,7 +608,7 @@ handle_node_command(struct pw_stream *stream, uint32_t seq, const struct spa_com send_need_input(stream); else { impl->in_need_buffer = true; - pw_listener_list_emit_na(&stream->listener_list, struct pw_stream_events, + pw_listener_list_emit(&stream->listener_list, struct pw_stream_events, need_buffer); impl->in_need_buffer = false; } diff --git a/src/pipewire/thread-loop.c b/src/pipewire/thread-loop.c index add469073..b3df5a7ff 100644 --- a/src/pipewire/thread-loop.c +++ b/src/pipewire/thread-loop.c @@ -118,7 +118,7 @@ struct pw_thread_loop *pw_thread_loop_new(struct pw_loop *loop, const char *name /** Destroy a threaded loop \memberof pw_thread_loop */ void pw_thread_loop_destroy(struct pw_thread_loop *loop) { - pw_listener_list_emit_na(&loop->listener_list, struct pw_thread_loop_events, destroy); + pw_listener_list_emit(&loop->listener_list, struct pw_thread_loop_events, destroy); pw_thread_loop_stop(loop);