pw_node -> pw_impl_node

This commit is contained in:
Wim Taymans 2019-12-11 12:41:45 +01:00
parent f62d1cb357
commit 898e870997
23 changed files with 335 additions and 335 deletions

View file

@ -51,7 +51,7 @@ struct bluez5_node {
struct pw_properties *props; struct pw_properties *props;
struct pw_node *adapter; struct pw_impl_node *adapter;
struct pw_proxy *proxy; struct pw_proxy *proxy;
}; };
@ -182,7 +182,7 @@ static void bluez5_remove_node(struct bluez5_object *obj, struct bluez5_node *no
{ {
pw_log_debug("remove node %u", node->id); pw_log_debug("remove node %u", node->id);
spa_list_remove(&node->link); spa_list_remove(&node->link);
pw_node_destroy(node->adapter); pw_impl_node_destroy(node->adapter);
pw_properties_free(node->props); pw_properties_free(node->props);
free(node); free(node);
} }

View file

@ -63,8 +63,8 @@ struct factory_data {
struct node_data { struct node_data {
struct factory_data *data; struct factory_data *data;
struct spa_list link; struct spa_list link;
struct pw_node *adapter; struct pw_impl_node *adapter;
struct pw_node *slave; struct pw_impl_node *slave;
struct spa_hook adapter_listener; struct spa_hook adapter_listener;
struct pw_resource *resource; struct pw_resource *resource;
struct spa_hook resource_listener; struct spa_hook resource_listener;
@ -77,7 +77,7 @@ static void resource_destroy(void *data)
spa_hook_remove(&nd->resource_listener); spa_hook_remove(&nd->resource_listener);
if (nd->adapter) if (nd->adapter)
pw_node_destroy(nd->adapter); pw_impl_node_destroy(nd->adapter);
} }
static const struct pw_resource_events resource_events = { static const struct pw_resource_events resource_events = {
@ -95,7 +95,7 @@ static void node_destroy(void *data)
static void node_free(void *data) static void node_free(void *data)
{ {
struct node_data *nd = data; struct node_data *nd = data;
pw_node_destroy(nd->slave); pw_impl_node_destroy(nd->slave);
} }
static void node_initialized(void *data) static void node_initialized(void *data)
@ -110,7 +110,7 @@ static void node_initialized(void *data)
return; return;
client = pw_resource_get_client(nd->resource); client = pw_resource_get_client(nd->resource);
global = pw_node_get_global(nd->adapter); global = pw_impl_node_get_global(nd->adapter);
res = pw_global_bind(global, client, res = pw_global_bind(global, client,
PW_PERM_RWX, PW_VERSION_NODE_PROXY, nd->new_id); PW_PERM_RWX, PW_VERSION_NODE_PROXY, nd->new_id);
@ -129,8 +129,8 @@ error_bind:
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.destroy = node_destroy, .destroy = node_destroy,
.free = node_free, .free = node_free,
.initialized = node_initialized, .initialized = node_initialized,
@ -145,7 +145,7 @@ static void *create_object(void *_data,
{ {
struct factory_data *d = _data; struct factory_data *d = _data;
struct pw_impl_client *client; struct pw_impl_client *client;
struct pw_node *adapter, *slave; struct pw_impl_node *adapter, *slave;
const char *str, *factory_name; const char *str, *factory_name;
int res; int res;
struct node_data *nd; struct node_data *nd;
@ -205,11 +205,11 @@ static void *create_object(void *_data,
nd->new_id = new_id; nd->new_id = new_id;
spa_list_append(&d->node_list, &nd->link); spa_list_append(&d->node_list, &nd->link);
pw_node_add_listener(adapter, &nd->adapter_listener, &node_events, nd); pw_impl_node_add_listener(adapter, &nd->adapter_listener, &node_events, nd);
pw_node_register(adapter, NULL); pw_impl_node_register(adapter, NULL);
pw_node_set_active(adapter, true); pw_impl_node_set_active(adapter, true);
return adapter; return adapter;
@ -251,7 +251,7 @@ static void module_destroy(void *data)
spa_hook_remove(&d->module_listener); spa_hook_remove(&d->module_listener);
spa_list_for_each_safe(nd, t, &d->node_list, link) spa_list_for_each_safe(nd, t, &d->node_list, link)
pw_node_destroy(nd->adapter); pw_impl_node_destroy(nd->adapter);
pw_impl_factory_destroy(d->this); pw_impl_factory_destroy(d->this);
} }

View file

@ -58,10 +58,10 @@ struct buffer {
struct node { struct node {
struct pw_context *context; struct pw_context *context;
struct pw_node *node; struct pw_impl_node *node;
struct spa_hook node_listener; struct spa_hook node_listener;
struct pw_node *slave; struct pw_impl_node *slave;
void *user_data; void *user_data;
enum pw_direction direction; enum pw_direction direction;
@ -149,14 +149,14 @@ static void node_port_init(void *data, struct pw_impl_port *port)
pw_properties_free(new); pw_properties_free(new);
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.free = node_free, .free = node_free,
.port_init = node_port_init, .port_init = node_port_init,
}; };
static int find_format(struct pw_node *node, enum pw_direction direction, static int find_format(struct pw_impl_node *node, enum pw_direction direction,
uint32_t *media_type, uint32_t *media_subtype) uint32_t *media_type, uint32_t *media_subtype)
{ {
uint32_t state = 0; uint32_t state = 0;
@ -186,12 +186,12 @@ static int find_format(struct pw_node *node, enum pw_direction direction,
} }
struct pw_node *pw_adapter_new(struct pw_context *context, struct pw_impl_node *pw_adapter_new(struct pw_context *context,
struct pw_node *slave, struct pw_impl_node *slave,
struct pw_properties *props, struct pw_properties *props,
size_t user_data_size) size_t user_data_size)
{ {
struct pw_node *node; struct pw_impl_node *node;
struct node *n; struct node *n;
const char *str, *factory_name; const char *str, *factory_name;
const struct pw_node_info *info; const struct pw_node_info *info;
@ -199,7 +199,7 @@ struct pw_node *pw_adapter_new(struct pw_context *context,
int res; int res;
uint32_t media_type, media_subtype; uint32_t media_type, media_subtype;
info = pw_node_get_info(slave); info = pw_impl_node_get_info(slave);
if (info == NULL) { if (info == NULL) {
res = -EINVAL; res = -EINVAL;
goto error; goto error;
@ -279,7 +279,7 @@ struct pw_node *pw_adapter_new(struct pw_context *context,
if (user_data_size > 0) if (user_data_size > 0)
n->user_data = SPA_MEMBER(n, sizeof(struct node), void); n->user_data = SPA_MEMBER(n, sizeof(struct node), void);
pw_node_add_listener(node, &n->node_listener, &node_events, n); pw_impl_node_add_listener(node, &n->node_listener, &node_events, n);
return node; return node;
@ -290,7 +290,7 @@ error:
return NULL; return NULL;
} }
void *pw_adapter_get_user_data(struct pw_node *node) void *pw_adapter_get_user_data(struct pw_impl_node *node)
{ {
struct node *n = pw_spa_node_get_user_data(node); struct node *n = pw_spa_node_get_user_data(node);
return n->user_data; return n->user_data;

View file

@ -33,13 +33,13 @@ extern "C" {
#define ADAPTER_USAGE PW_KEY_NODE_NAME"=<string> " #define ADAPTER_USAGE PW_KEY_NODE_NAME"=<string> "
struct pw_node * struct pw_impl_node *
pw_adapter_new(struct pw_context *context, pw_adapter_new(struct pw_context *context,
struct pw_node *slave, struct pw_impl_node *slave,
struct pw_properties *properties, struct pw_properties *properties,
size_t user_data_size); size_t user_data_size);
void *pw_adapter_get_user_data(struct pw_node *node); void *pw_adapter_get_user_data(struct pw_impl_node *node);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -862,7 +862,7 @@ static int impl_node_process(void *object)
{ {
struct node *this = object; struct node *this = object;
struct impl *impl = this->impl; struct impl *impl = this->impl;
struct pw_node *n = impl->this.node; struct pw_impl_node *n = impl->this.node;
struct timespec ts; struct timespec ts;
spa_log_trace_fp(this->log, "%p: send process driver:%p", this, impl->this.node->driver_node); spa_log_trace_fp(this->log, "%p: send process driver:%p", this, impl->this.node->driver_node);
@ -971,7 +971,7 @@ client_node_port_update(void *data,
static int client_node_set_active(void *data, bool active) static int client_node_set_active(void *data, bool active)
{ {
struct impl *impl = data; struct impl *impl = data;
return pw_node_set_active(impl->this.node, active); return pw_impl_node_set_active(impl->this.node, active);
} }
static int client_node_event(void *data, const struct spa_event *event) static int client_node_event(void *data, const struct spa_event *event)
@ -1173,7 +1173,7 @@ static void client_node_resource_destroy(void *data)
&node->data_source); &node->data_source);
} }
if (this->node) if (this->node)
pw_node_destroy(this->node); pw_impl_node_destroy(this->node);
} }
static void client_node_resource_error(void *data, int seq, int res, const char *message) static void client_node_resource_error(void *data, int seq, int res, const char *message)
@ -1199,7 +1199,7 @@ static void client_node_resource_pong(void *data, int seq)
void pw_client_node_registered(struct pw_client_node *this, struct pw_global *global) void pw_client_node_registered(struct pw_client_node *this, struct pw_global *global)
{ {
struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this);
struct pw_node *node = this->node; struct pw_impl_node *node = this->node;
struct pw_impl_client *client = impl->node.client; struct pw_impl_client *client = impl->node.client;
uint32_t node_id = global->id; uint32_t node_id = global->id;
struct pw_memblock *m; struct pw_memblock *m;
@ -1262,7 +1262,7 @@ static void node_initialized(void *data)
pw_log_debug(NAME " %p: io areas %p", node, impl->io_areas->map->ptr); pw_log_debug(NAME " %p: io areas %p", node, impl->io_areas->map->ptr);
if ((global = pw_node_get_global(this->node)) != NULL) if ((global = pw_impl_node_get_global(this->node)) != NULL)
pw_client_node_registered(this, global); pw_client_node_registered(this, global);
} }
@ -1505,7 +1505,7 @@ static void node_port_removed(void *data, struct pw_impl_port *port)
clear_port(this, p); clear_port(this, p);
} }
static void node_peer_added(void *data, struct pw_node *peer) static void node_peer_added(void *data, struct pw_impl_node *peer)
{ {
struct impl *impl = data; struct impl *impl = data;
struct node *this = &impl->node; struct node *this = &impl->node;
@ -1533,7 +1533,7 @@ static void node_peer_added(void *data, struct pw_node *peer)
sizeof(struct pw_node_activation)); sizeof(struct pw_node_activation));
} }
static void node_peer_removed(void *data, struct pw_node *peer) static void node_peer_removed(void *data, struct pw_impl_node *peer)
{ {
struct impl *impl = data; struct impl *impl = data;
struct node *this = &impl->node; struct node *this = &impl->node;
@ -1563,7 +1563,7 @@ static void node_peer_removed(void *data, struct pw_node *peer)
pw_memblock_unref(m); pw_memblock_unref(m);
} }
static void node_driver_changed(void *data, struct pw_node *old, struct pw_node *driver) static void node_driver_changed(void *data, struct pw_impl_node *old, struct pw_impl_node *driver)
{ {
struct impl *impl = data; struct impl *impl = data;
struct node *this = &impl->node; struct node *this = &impl->node;
@ -1574,8 +1574,8 @@ static void node_driver_changed(void *data, struct pw_node *old, struct pw_node
node_peer_added(data, driver); node_peer_added(data, driver);
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.free = node_free, .free = node_free,
.initialized = node_initialized, .initialized = node_initialized,
.port_init = node_port_init, .port_init = node_port_init,
@ -1608,7 +1608,7 @@ static int process_node(void *data)
* \param properties extra properties * \param properties extra properties
* \return a newly allocated client node * \return a newly allocated client node
* *
* Create a new \ref pw_node. * Create a new \ref pw_impl_node.
* *
* \memberof pw_client_node * \memberof pw_client_node
*/ */
@ -1682,7 +1682,7 @@ struct pw_client_node *pw_client_node_new(struct pw_resource *resource,
this->node->port_user_data_size = sizeof(struct port); this->node->port_user_data_size = sizeof(struct port);
pw_node_add_listener(this->node, &impl->node_listener, &node_events, impl); pw_impl_node_add_listener(this->node, &impl->node_listener, &node_events, impl);
return this; return this;

View file

@ -37,7 +37,7 @@ extern "C" {
* PipeWire client node interface * PipeWire client node interface
*/ */
struct pw_client_node { struct pw_client_node {
struct pw_node *node; struct pw_impl_node *node;
struct pw_resource *resource; struct pw_resource *resource;
uint32_t flags; uint32_t flags;

View file

@ -80,7 +80,7 @@ struct node_data {
struct spa_list mix[2]; struct spa_list mix[2];
struct spa_list free_mix; struct spa_list free_mix;
struct pw_node *node; struct pw_impl_node *node;
struct spa_hook node_listener; struct spa_hook node_listener;
int do_free:1; int do_free:1;
int have_transport:1; int have_transport:1;
@ -222,7 +222,7 @@ static struct mix *ensure_mix(struct node_data *data,
if (spa_list_is_empty(&data->free_mix)) if (spa_list_is_empty(&data->free_mix))
return NULL; return NULL;
port = pw_node_find_port(data->node, direction, port_id); port = pw_impl_node_find_port(data->node, direction, port_id);
if (port == NULL) if (port == NULL)
return NULL; return NULL;
@ -271,7 +271,7 @@ static int client_node_transport(void *object,
static int add_node_update(struct pw_proxy *proxy, uint32_t change_mask) static int add_node_update(struct pw_proxy *proxy, uint32_t change_mask)
{ {
struct node_data *data = proxy->user_data; struct node_data *data = proxy->user_data;
struct pw_node *node = data->node; struct pw_impl_node *node = data->node;
struct spa_node_info ni = SPA_NODE_INFO_INIT(); struct spa_node_info ni = SPA_NODE_INFO_INIT();
uint32_t n_params = 0; uint32_t n_params = 0;
struct spa_pod **params = NULL; struct spa_pod **params = NULL;
@ -458,7 +458,7 @@ static int client_node_command(void *object, const struct spa_command *command)
case SPA_NODE_COMMAND_Pause: case SPA_NODE_COMMAND_Pause:
pw_log_debug("node %p: pause", proxy); pw_log_debug("node %p: pause", proxy);
if ((res = pw_node_set_state(data->node, PW_NODE_STATE_IDLE)) < 0) { if ((res = pw_impl_node_set_state(data->node, PW_NODE_STATE_IDLE)) < 0) {
pw_log_warn("node %p: pause failed", proxy); pw_log_warn("node %p: pause failed", proxy);
pw_proxy_error(proxy, res, "pause failed"); pw_proxy_error(proxy, res, "pause failed");
} }
@ -467,7 +467,7 @@ static int client_node_command(void *object, const struct spa_command *command)
case SPA_NODE_COMMAND_Start: case SPA_NODE_COMMAND_Start:
pw_log_debug("node %p: start", proxy); pw_log_debug("node %p: start", proxy);
if ((res = pw_node_set_state(data->node, PW_NODE_STATE_RUNNING)) < 0) { if ((res = pw_impl_node_set_state(data->node, PW_NODE_STATE_RUNNING)) < 0) {
pw_log_warn("node %p: start failed", proxy); pw_log_warn("node %p: start failed", proxy);
pw_proxy_error(proxy, res, "start failed"); pw_proxy_error(proxy, res, "start failed");
} }
@ -475,7 +475,7 @@ static int client_node_command(void *object, const struct spa_command *command)
case SPA_NODE_COMMAND_Suspend: case SPA_NODE_COMMAND_Suspend:
pw_log_debug("node %p: suspend", proxy); pw_log_debug("node %p: suspend", proxy);
if ((res = pw_node_set_state(data->node, PW_NODE_STATE_SUSPENDED)) < 0) { if ((res = pw_impl_node_set_state(data->node, PW_NODE_STATE_SUSPENDED)) < 0) {
pw_log_warn("node %p: suspend failed", proxy); pw_log_warn("node %p: suspend failed", proxy);
pw_proxy_error(proxy, res, "suspend failed"); pw_proxy_error(proxy, res, "suspend failed");
} }
@ -542,7 +542,7 @@ client_node_port_set_param(void *object,
struct pw_impl_port *port; struct pw_impl_port *port;
int res; int res;
port = pw_node_find_port(data->node, direction, port_id); port = pw_impl_node_find_port(data->node, direction, port_id);
if (port == NULL) { if (port == NULL) {
res = -EINVAL; res = -EINVAL;
goto error_exit; goto error_exit;
@ -804,7 +804,7 @@ client_node_set_activation(void *object,
{ {
struct pw_proxy *proxy = object; struct pw_proxy *proxy = object;
struct node_data *data = proxy->user_data; struct node_data *data = proxy->user_data;
struct pw_node *node = data->node; struct pw_impl_node *node = data->node;
struct pw_memmap *mm; struct pw_memmap *mm;
void *ptr; void *ptr;
struct link *link; struct link *link;
@ -992,8 +992,8 @@ static void node_active_changed(void *data, bool active)
pw_client_node_proxy_set_active(d->client_node, active); pw_client_node_proxy_set_active(d->client_node, active);
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.destroy = node_destroy, .destroy = node_destroy,
.free = node_free, .free = node_free,
.info_changed = node_info_changed, .info_changed = node_info_changed,
@ -1017,7 +1017,7 @@ static void client_node_proxy_destroy(void *_data)
pw_proxy_destroy(data->proxy); pw_proxy_destroy(data->proxy);
if (data->do_free) if (data->do_free)
pw_node_destroy(data->node); pw_impl_node_destroy(data->node);
} }
static void client_node_proxy_bound(void *_data, uint32_t global_id) static void client_node_proxy_bound(void *_data, uint32_t global_id)
@ -1054,7 +1054,7 @@ static const struct pw_proxy_events proxy_events = {
static int node_ready(void *d, int status) static int node_ready(void *d, int status)
{ {
struct node_data *data = d; struct node_data *data = d;
struct pw_node *node = data->node; struct pw_impl_node *node = data->node;
struct pw_node_activation *a = node->rt.activation; struct pw_node_activation *a = node->rt.activation;
struct timespec ts; struct timespec ts;
struct pw_impl_port *p; struct pw_impl_port *p;
@ -1086,7 +1086,7 @@ static int node_reuse_buffer(void *data, uint32_t port_id, uint32_t buffer_id)
static int node_xrun(void *d, uint64_t trigger, uint64_t delay, struct spa_pod *info) static int node_xrun(void *d, uint64_t trigger, uint64_t delay, struct spa_pod *info)
{ {
struct node_data *data = d; struct node_data *data = d;
struct pw_node *node = data->node; struct pw_impl_node *node = data->node;
struct pw_node_activation *a = node->rt.activation; struct pw_node_activation *a = node->rt.activation;
a->xrun_count++; a->xrun_count++;
@ -1110,7 +1110,7 @@ static const struct spa_node_callbacks node_callbacks = {
static struct pw_proxy *node_export(struct pw_core *core, void *object, bool do_free, static struct pw_proxy *node_export(struct pw_core *core, void *object, bool do_free,
size_t user_data_size) size_t user_data_size)
{ {
struct pw_node *node = object; struct pw_impl_node *node = object;
struct pw_proxy *client_node; struct pw_proxy *client_node;
struct node_data *data; struct node_data *data;
int i; int i;
@ -1128,7 +1128,7 @@ static struct pw_proxy *node_export(struct pw_core *core, void *object, bool do_
data->pool = pw_core_get_mempool(core); data->pool = pw_core_get_mempool(core);
data->node = node; data->node = node;
data->do_free = do_free; data->do_free = do_free;
data->context = pw_node_get_context(node); data->context = pw_impl_node_get_context(node);
data->client_node = (struct pw_client_node_proxy *)client_node; data->client_node = (struct pw_client_node_proxy *)client_node;
data->remote_id = SPA_ID_INVALID; data->remote_id = SPA_ID_INVALID;
@ -1148,7 +1148,7 @@ static struct pw_proxy *node_export(struct pw_core *core, void *object, bool do_
&client_node_proxy_events, data); &client_node_proxy_events, data);
spa_node_set_callbacks(node->node, &node_callbacks, data); spa_node_set_callbacks(node->node, &node_callbacks, data);
pw_node_add_listener(node, &data->node_listener, &node_events, data); pw_impl_node_add_listener(node, &data->node_listener, &node_events, data);
pw_client_node_proxy_add_listener(data->client_node, pw_client_node_proxy_add_listener(data->client_node,
&data->client_node_listener, &data->client_node_listener,
@ -1168,10 +1168,10 @@ struct pw_proxy *pw_core_node_export(struct pw_core *core,
uint32_t type, struct pw_properties *props, void *object, uint32_t type, struct pw_properties *props, void *object,
size_t user_data_size) size_t user_data_size)
{ {
struct pw_node *node = object; struct pw_impl_node *node = object;
if (props) { if (props) {
pw_node_update_properties(node, &props->dict); pw_impl_node_update_properties(node, &props->dict);
pw_properties_free(props); pw_properties_free(props);
} }
return node_export(core, object, false, user_data_size); return node_export(core, object, false, user_data_size);
@ -1181,15 +1181,15 @@ struct pw_proxy *pw_core_spa_node_export(struct pw_core *core,
uint32_t type, struct pw_properties *props, void *object, uint32_t type, struct pw_properties *props, void *object,
size_t user_data_size) size_t user_data_size)
{ {
struct pw_node *node; struct pw_impl_node *node;
node = pw_node_new(pw_core_get_context(core), props, 0); node = pw_impl_node_new(pw_core_get_context(core), props, 0);
if (node == NULL) if (node == NULL)
return NULL; return NULL;
pw_node_set_implementation(node, (struct spa_node*)object); pw_impl_node_set_implementation(node, (struct spa_node*)object);
pw_node_register(node, NULL); pw_impl_node_register(node, NULL);
pw_node_set_active(node, true); pw_impl_node_set_active(node, true);
return node_export(core, node, true, user_data_size); return node_export(core, node, true, user_data_size);
} }

View file

@ -846,7 +846,7 @@ static int impl_node_process(void *object)
{ {
struct node *this = object; struct node *this = object;
struct impl *impl = this->impl; struct impl *impl = this->impl;
struct pw_node *n = impl->this.node; struct pw_impl_node *n = impl->this.node;
return impl_node_process_input(n->node); return impl_node_process_input(n->node);
} }
@ -1001,7 +1001,7 @@ client_node0_port_update(void *data,
static void client_node0_set_active(void *data, bool active) static void client_node0_set_active(void *data, bool active)
{ {
struct impl *impl = data; struct impl *impl = data;
pw_node_set_active(impl->this.node, active); pw_impl_node_set_active(impl->this.node, active);
} }
static void client_node0_event(void *data, struct spa_event *event) static void client_node0_event(void *data, struct spa_event *event)
@ -1158,14 +1158,14 @@ static void client_node0_resource_destroy(void *data)
true, true,
&node->data_source); &node->data_source);
} }
pw_node_destroy(this->node); pw_impl_node_destroy(this->node);
} }
static void node_initialized(void *data) static void node_initialized(void *data)
{ {
struct impl *impl = data; struct impl *impl = data;
struct pw_client_node0 *this = &impl->this; struct pw_client_node0 *this = &impl->this;
struct pw_node *node = this->node; struct pw_impl_node *node = this->node;
struct spa_system *data_system = impl->node.data_system; struct spa_system *data_system = impl->node.data_system;
if (this->resource == NULL) if (this->resource == NULL)
@ -1182,7 +1182,7 @@ static void node_initialized(void *data)
pw_log_debug("client-node %p: transport fd %d %d", node, impl->fds[0], impl->fds[1]); pw_log_debug("client-node %p: transport fd %d %d", node, impl->fds[0], impl->fds[1]);
pw_client_node0_resource_transport(this->resource, pw_client_node0_resource_transport(this->resource,
pw_global_get_id(pw_node_get_global(node)), pw_global_get_id(pw_impl_node_get_global(node)),
impl->other_fds[0], impl->other_fds[0],
impl->other_fds[1], impl->other_fds[1],
impl->transport); impl->transport);
@ -1210,8 +1210,8 @@ static void node_free(void *data)
free(impl); free(impl);
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.free = node_free, .free = node_free,
.initialized = node_initialized, .initialized = node_initialized,
}; };
@ -1246,7 +1246,7 @@ static void convert_properties(struct pw_properties *properties)
* \param properties extra properties * \param properties extra properties
* \return a newly allocated client node * \return a newly allocated client node
* *
* Create a new \ref pw_node. * Create a new \ref pw_impl_node.
* *
* \memberof pw_client_node * \memberof pw_client_node
*/ */
@ -1320,7 +1320,7 @@ struct pw_client_node0 *pw_client_node0_new(struct pw_resource *resource,
impl); impl);
pw_node_add_listener(this->node, &impl->node_listener, &node_events, impl); pw_impl_node_add_listener(this->node, &impl->node_listener, &node_events, impl);
return this; return this;

View file

@ -33,7 +33,7 @@ extern "C" {
* PipeWire client node interface * PipeWire client node interface
*/ */
struct pw_client_node0 { struct pw_client_node0 {
struct pw_node *node; struct pw_impl_node *node;
struct pw_resource *resource; struct pw_resource *resource;
}; };

View file

@ -142,17 +142,17 @@ static const struct pw_impl_link_events link_events = {
.initialized = link_initialized .initialized = link_initialized
}; };
static struct pw_impl_port *get_port(struct pw_node *node, enum spa_direction direction) static struct pw_impl_port *get_port(struct pw_impl_node *node, enum spa_direction direction)
{ {
struct pw_impl_port *p; struct pw_impl_port *p;
int res; int res;
p = pw_node_find_port(node, direction, SPA_ID_INVALID); p = pw_impl_node_find_port(node, direction, SPA_ID_INVALID);
if (p == NULL || pw_impl_port_is_linked(p)) { if (p == NULL || pw_impl_port_is_linked(p)) {
uint32_t port_id; uint32_t port_id;
port_id = pw_node_get_free_port_id(node, direction); port_id = pw_impl_node_get_free_port_id(node, direction);
if (port_id == SPA_ID_INVALID) if (port_id == SPA_ID_INVALID)
return NULL; return NULL;
@ -179,7 +179,7 @@ static void *create_object(void *_data,
{ {
struct factory_data *d = _data; struct factory_data *d = _data;
struct pw_impl_client *client = NULL; struct pw_impl_client *client = NULL;
struct pw_node *output_node, *input_node; struct pw_impl_node *output_node, *input_node;
struct pw_impl_port *outport, *inport; struct pw_impl_port *outport, *inport;
struct pw_context *context; struct pw_context *context;
struct pw_global *global; struct pw_global *global;

View file

@ -60,7 +60,7 @@ struct factory_data {
struct node_data { struct node_data {
struct factory_data *data; struct factory_data *data;
struct spa_list link; struct spa_list link;
struct pw_node *node; struct pw_impl_node *node;
struct spa_hook node_listener; struct spa_hook node_listener;
struct spa_hook resource_listener; struct spa_hook resource_listener;
}; };
@ -71,7 +71,7 @@ static void resource_destroy(void *data)
pw_log_debug("node %p", nd); pw_log_debug("node %p", nd);
spa_hook_remove(&nd->resource_listener); spa_hook_remove(&nd->resource_listener);
if (nd->node) if (nd->node)
pw_node_destroy(nd->node); pw_impl_node_destroy(nd->node);
} }
static const struct pw_resource_events resource_events = { static const struct pw_resource_events resource_events = {
@ -88,8 +88,8 @@ static void node_destroy(void *data)
nd->node = NULL; nd->node = NULL;
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.destroy = node_destroy, .destroy = node_destroy,
}; };
@ -102,7 +102,7 @@ static void *create_object(void *_data,
{ {
struct factory_data *data = _data; struct factory_data *data = _data;
struct pw_context *context = data->context; struct pw_context *context = data->context;
struct pw_node *node; struct pw_impl_node *node;
const char *factory_name; const char *factory_name;
struct node_data *nd; struct node_data *nd;
int res; int res;
@ -138,12 +138,12 @@ static void *create_object(void *_data,
nd->node = node; nd->node = node;
spa_list_append(&data->node_list, &nd->link); spa_list_append(&data->node_list, &nd->link);
pw_node_add_listener(node, &nd->node_listener, &node_events, nd); pw_impl_node_add_listener(node, &nd->node_listener, &node_events, nd);
if (client) { if (client) {
struct pw_resource *bound_resource; struct pw_resource *bound_resource;
res = pw_global_bind(pw_node_get_global(node), res = pw_global_bind(pw_impl_node_get_global(node),
client, client,
PW_PERM_RWX, PW_PERM_RWX,
version, new_id); version, new_id);
@ -194,7 +194,7 @@ static void factory_destroy(void *_data)
spa_hook_remove(&data->module_listener); spa_hook_remove(&data->module_listener);
spa_list_consume(nd, &data->node_list, link) spa_list_consume(nd, &data->node_list, link)
pw_node_destroy(nd->node); pw_impl_node_destroy(nd->node);
} }
static const struct pw_impl_factory_events factory_events = { static const struct pw_impl_factory_events factory_events = {

View file

@ -45,7 +45,7 @@ static const struct spa_dict_item module_props[] = {
}; };
struct node_data { struct node_data {
struct pw_node *this; struct pw_impl_node *this;
struct pw_context *context; struct pw_context *context;
struct pw_properties *properties; struct pw_properties *properties;
@ -56,7 +56,7 @@ static void module_destroy(void *_data)
{ {
struct node_data *data = _data; struct node_data *data = _data;
spa_hook_remove(&data->module_listener); spa_hook_remove(&data->module_listener);
pw_node_destroy(data->this); pw_impl_node_destroy(data->this);
} }
static const struct pw_impl_module_events module_events = { static const struct pw_impl_module_events module_events = {
@ -71,7 +71,7 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
char **argv = NULL; char **argv = NULL;
int n_tokens, res; int n_tokens, res;
struct pw_context *context = pw_impl_module_get_context(module); struct pw_context *context = pw_impl_module_get_context(module);
struct pw_node *node; struct pw_impl_node *node;
struct node_data *data; struct node_data *data;
if (args == NULL) if (args == NULL)

View file

@ -40,7 +40,7 @@
#include "pipewire/private.h" #include "pipewire/private.h"
struct impl { struct impl {
struct pw_node *this; struct pw_impl_node *this;
enum pw_spa_node_flags flags; enum pw_spa_node_flags flags;
@ -59,7 +59,7 @@ struct impl {
static void spa_node_free(void *data) static void spa_node_free(void *data)
{ {
struct impl *impl = data; struct impl *impl = data;
struct pw_node *node = impl->this; struct pw_impl_node *node = impl->this;
pw_log_debug("spa-node %p: free", node); pw_log_debug("spa-node %p: free", node);
@ -71,23 +71,23 @@ static void spa_node_free(void *data)
static void complete_init(struct impl *impl) static void complete_init(struct impl *impl)
{ {
struct pw_node *this = impl->this; struct pw_impl_node *this = impl->this;
impl->init_pending = SPA_ID_INVALID; impl->init_pending = SPA_ID_INVALID;
if (SPA_FLAG_IS_SET(impl->flags, PW_SPA_NODE_FLAG_ACTIVATE)) if (SPA_FLAG_IS_SET(impl->flags, PW_SPA_NODE_FLAG_ACTIVATE))
pw_node_set_active(this, true); pw_impl_node_set_active(this, true);
if (!SPA_FLAG_IS_SET(impl->flags, PW_SPA_NODE_FLAG_NO_REGISTER)) if (!SPA_FLAG_IS_SET(impl->flags, PW_SPA_NODE_FLAG_NO_REGISTER))
pw_node_register(this, NULL); pw_impl_node_register(this, NULL);
else else
pw_node_initialized(this); pw_impl_node_initialized(this);
} }
static void spa_node_result(void *data, int seq, int res, uint32_t type, const void *result) static void spa_node_result(void *data, int seq, int res, uint32_t type, const void *result)
{ {
struct impl *impl = data; struct impl *impl = data;
struct pw_node *node = impl->this; struct pw_impl_node *node = impl->this;
if (seq == impl->init_pending) { if (seq == impl->init_pending) {
pw_log_debug("spa-node %p: init complete event %d %d", node, seq, res); pw_log_debug("spa-node %p: init complete event %d %d", node, seq, res);
@ -95,13 +95,13 @@ static void spa_node_result(void *data, int seq, int res, uint32_t type, const v
} }
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.free = spa_node_free, .free = spa_node_free,
.result = spa_node_result, .result = spa_node_result,
}; };
struct pw_node * struct pw_impl_node *
pw_spa_node_new(struct pw_context *context, pw_spa_node_new(struct pw_context *context,
enum pw_spa_node_flags flags, enum pw_spa_node_flags flags,
struct spa_node *node, struct spa_node *node,
@ -109,11 +109,11 @@ pw_spa_node_new(struct pw_context *context,
struct pw_properties *properties, struct pw_properties *properties,
size_t user_data_size) size_t user_data_size)
{ {
struct pw_node *this; struct pw_impl_node *this;
struct impl *impl; struct impl *impl;
int res; int res;
this = pw_node_new(context, properties, sizeof(struct impl) + user_data_size); this = pw_impl_node_new(context, properties, sizeof(struct impl) + user_data_size);
if (this == NULL) { if (this == NULL) {
res = -errno; res = -errno;
goto error_exit; goto error_exit;
@ -128,8 +128,8 @@ pw_spa_node_new(struct pw_context *context,
if (user_data_size > 0) if (user_data_size > 0)
impl->user_data = SPA_MEMBER(impl, sizeof(struct impl), void); impl->user_data = SPA_MEMBER(impl, sizeof(struct impl), void);
pw_node_add_listener(this, &impl->node_listener, &node_events, impl); pw_impl_node_add_listener(this, &impl->node_listener, &node_events, impl);
if ((res = pw_node_set_implementation(this, impl->node)) < 0) if ((res = pw_impl_node_set_implementation(this, impl->node)) < 0)
goto error_exit_clean_node; goto error_exit_clean_node;
if (flags & PW_SPA_NODE_FLAG_ASYNC) { if (flags & PW_SPA_NODE_FLAG_ASYNC) {
@ -140,7 +140,7 @@ pw_spa_node_new(struct pw_context *context,
return this; return this;
error_exit_clean_node: error_exit_clean_node:
pw_node_destroy(this); pw_impl_node_destroy(this);
handle = NULL; handle = NULL;
error_exit: error_exit:
if (handle) if (handle)
@ -150,7 +150,7 @@ error_exit:
} }
void *pw_spa_node_get_user_data(struct pw_node *node) void *pw_spa_node_get_user_data(struct pw_impl_node *node)
{ {
struct impl *impl = node->user_data; struct impl *impl = node->user_data;
return impl->user_data; return impl->user_data;
@ -230,13 +230,13 @@ setup_props(struct pw_context *context, struct spa_node *spa_node, struct pw_pro
} }
struct pw_node *pw_spa_node_load(struct pw_context *context, struct pw_impl_node *pw_spa_node_load(struct pw_context *context,
const char *factory_name, const char *factory_name,
enum pw_spa_node_flags flags, enum pw_spa_node_flags flags,
struct pw_properties *properties, struct pw_properties *properties,
size_t user_data_size) size_t user_data_size)
{ {
struct pw_node *this; struct pw_impl_node *this;
struct impl *impl; struct impl *impl;
struct spa_node *spa_node; struct spa_node *spa_node;
int res; int res;

View file

@ -39,7 +39,7 @@ enum pw_spa_node_flags {
PW_SPA_NODE_FLAG_ASYNC = (1 << 2), PW_SPA_NODE_FLAG_ASYNC = (1 << 2),
}; };
struct pw_node * struct pw_impl_node *
pw_spa_node_new(struct pw_context *context, pw_spa_node_new(struct pw_context *context,
enum pw_spa_node_flags flags, enum pw_spa_node_flags flags,
struct spa_node *node, struct spa_node *node,
@ -47,14 +47,14 @@ pw_spa_node_new(struct pw_context *context,
struct pw_properties *properties, struct pw_properties *properties,
size_t user_data_size); size_t user_data_size);
struct pw_node * struct pw_impl_node *
pw_spa_node_load(struct pw_context *context, pw_spa_node_load(struct pw_context *context,
const char *factory_name, const char *factory_name,
enum pw_spa_node_flags flags, enum pw_spa_node_flags flags,
struct pw_properties *properties, struct pw_properties *properties,
size_t user_data_size); size_t user_data_size);
void *pw_spa_node_get_user_data(struct pw_node *node); void *pw_spa_node_get_user_data(struct pw_impl_node *node);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -653,7 +653,7 @@ void pw_context_destroy(struct pw_context *context)
struct pw_impl_device *device; struct pw_impl_device *device;
struct pw_core *core; struct pw_core *core;
struct pw_resource *resource; struct pw_resource *resource;
struct pw_node *node; struct pw_impl_node *node;
struct factory_entry *entry; struct factory_entry *entry;
pw_log_debug(NAME" %p: destroy", context); pw_log_debug(NAME" %p: destroy", context);
@ -668,7 +668,7 @@ void pw_context_destroy(struct pw_context *context)
pw_impl_module_destroy(module); pw_impl_module_destroy(module);
spa_list_consume(node, &context->node_list, link) spa_list_consume(node, &context->node_list, link)
pw_node_destroy(node); pw_impl_node_destroy(node);
spa_list_consume(device, &context->device_list, link) spa_list_consume(device, &context->device_list, link)
pw_impl_device_destroy(device); pw_impl_device_destroy(device);
@ -844,7 +844,7 @@ struct pw_impl_port *pw_context_find_port(struct pw_context *context,
{ {
struct pw_impl_port *best = NULL; struct pw_impl_port *best = NULL;
bool have_id; bool have_id;
struct pw_node *n; struct pw_impl_node *n;
have_id = id != SPA_ID_INVALID; have_id = id != SPA_ID_INVALID;
@ -868,7 +868,7 @@ struct pw_impl_port *pw_context_find_port(struct pw_context *context,
pw_log_debug(NAME" %p: id:%u matches node %p", context, id, n); pw_log_debug(NAME" %p: id:%u matches node %p", context, id, n);
best = best =
pw_node_find_port(n, pw_impl_node_find_port(n,
pw_direction_reverse(other_port->direction), pw_direction_reverse(other_port->direction),
SPA_ID_INVALID); SPA_ID_INVALID);
if (best) if (best)
@ -880,7 +880,7 @@ struct pw_impl_port *pw_context_find_port(struct pw_context *context,
struct spa_pod_builder b = SPA_POD_BUILDER_INIT(buf, sizeof(buf)); struct spa_pod_builder b = SPA_POD_BUILDER_INIT(buf, sizeof(buf));
struct spa_pod *dummy; struct spa_pod *dummy;
p = pw_node_find_port(n, p = pw_impl_node_find_port(n,
pw_direction_reverse(other_port->direction), pw_direction_reverse(other_port->direction),
SPA_ID_INVALID); SPA_ID_INVALID);
if (p == NULL) if (p == NULL)
@ -1090,10 +1090,10 @@ struct pw_impl_factory *pw_context_find_factory(struct pw_context *context,
return NULL; return NULL;
} }
static int collect_nodes(struct pw_node *driver) static int collect_nodes(struct pw_impl_node *driver)
{ {
struct spa_list queue; struct spa_list queue;
struct pw_node *n, *t; struct pw_impl_node *n, *t;
struct pw_impl_port *p; struct pw_impl_port *p;
struct pw_impl_link *l; struct pw_impl_link *l;
uint32_t max_quantum = 0; uint32_t max_quantum = 0;
@ -1113,7 +1113,7 @@ static int collect_nodes(struct pw_node *driver)
spa_list_consume(n, &queue, sort_link) { spa_list_consume(n, &queue, sort_link) {
spa_list_remove(&n->sort_link); spa_list_remove(&n->sort_link);
pw_node_set_driver(n, driver); pw_impl_node_set_driver(n, driver);
if (n->quantum_size > 0) { if (n->quantum_size > 0) {
if (min_quantum == 0 || n->quantum_size < min_quantum) if (min_quantum == 0 || n->quantum_size < min_quantum)
@ -1155,7 +1155,7 @@ static int collect_nodes(struct pw_node *driver)
int pw_context_recalc_graph(struct pw_context *context) int pw_context_recalc_graph(struct pw_context *context)
{ {
struct pw_node *n, *s, *target; struct pw_impl_node *n, *s, *target;
/* start from all drivers and group all nodes that are linked /* start from all drivers and group all nodes that are linked
* to it. Some nodes are not (yet) linked to anything and they * to it. Some nodes are not (yet) linked to anything and they
@ -1209,8 +1209,8 @@ int pw_context_recalc_graph(struct pw_context *context)
if (n->quantum_size > 0 && n->quantum_size < target->quantum_current) if (n->quantum_size > 0 && n->quantum_size < target->quantum_current)
target->quantum_current = SPA_MAX(MIN_QUANTUM, n->quantum_size); target->quantum_current = SPA_MAX(MIN_QUANTUM, n->quantum_size);
} }
pw_node_set_driver(n, target); pw_impl_node_set_driver(n, target);
pw_node_set_state(n, target && n->active ? pw_impl_node_set_state(n, target && n->active ?
PW_NODE_STATE_RUNNING : PW_NODE_STATE_IDLE); PW_NODE_STATE_RUNNING : PW_NODE_STATE_IDLE);
} }
n->visited = false; n->visited = false;

View file

@ -74,7 +74,7 @@ static void object_destroy(struct object_data *od)
{ {
switch (od->type) { switch (od->type) {
case SPA_TYPE_INTERFACE_Node: case SPA_TYPE_INTERFACE_Node:
pw_node_destroy(od->object); pw_impl_node_destroy(od->object);
break; break;
case SPA_TYPE_INTERFACE_Device: case SPA_TYPE_INTERFACE_Device:
pw_impl_device_destroy(od->object); pw_impl_device_destroy(od->object);
@ -86,7 +86,7 @@ static void object_update(struct object_data *od, const struct spa_dict *props)
{ {
switch (od->type) { switch (od->type) {
case SPA_TYPE_INTERFACE_Node: case SPA_TYPE_INTERFACE_Node:
pw_node_update_properties(od->object, props); pw_impl_node_update_properties(od->object, props);
break; break;
case SPA_TYPE_INTERFACE_Device: case SPA_TYPE_INTERFACE_Device:
pw_impl_device_update_properties(od->object, props); pw_impl_device_update_properties(od->object, props);
@ -98,8 +98,8 @@ static void object_register(struct object_data *od)
{ {
switch (od->type) { switch (od->type) {
case SPA_TYPE_INTERFACE_Node: case SPA_TYPE_INTERFACE_Node:
pw_node_register(od->object, NULL); pw_impl_node_register(od->object, NULL);
pw_node_set_active(od->object, true); pw_impl_node_set_active(od->object, true);
break; break;
case SPA_TYPE_INTERFACE_Device: case SPA_TYPE_INTERFACE_Device:
pw_impl_device_register(od->object, NULL); pw_impl_device_register(od->object, NULL);
@ -470,8 +470,8 @@ static void on_object_free(void *data)
pw_unload_spa_handle(od->handle); pw_unload_spa_handle(od->handle);
} }
static const struct pw_node_events node_object_events = { static const struct pw_impl_node_events node_object_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.destroy = on_object_destroy, .destroy = on_object_destroy,
.free = on_object_free, .free = on_object_free,
}; };
@ -562,13 +562,13 @@ static void device_add_object(struct pw_impl_device *device, uint32_t id,
switch (info->type) { switch (info->type) {
case SPA_TYPE_INTERFACE_Node: case SPA_TYPE_INTERFACE_Node:
{ {
struct pw_node *node; struct pw_impl_node *node;
node = pw_node_new(context, props, sizeof(struct object_data)); node = pw_impl_node_new(context, props, sizeof(struct object_data));
od = pw_node_get_user_data(node); od = pw_impl_node_get_user_data(node);
od->object = node; od->object = node;
pw_node_add_listener(node, &od->listener, &node_object_events, od); pw_impl_node_add_listener(node, &od->listener, &node_object_events, od);
pw_node_set_implementation(node, iface); pw_impl_node_set_implementation(node, iface);
break; break;
} }
case SPA_TYPE_INTERFACE_Device: case SPA_TYPE_INTERFACE_Device:

View file

@ -66,7 +66,7 @@ struct impl {
struct spa_io_buffers io; struct spa_io_buffers io;
struct pw_node *inode, *onode; struct pw_impl_node *inode, *onode;
}; };
struct resource_data { struct resource_data {
@ -77,7 +77,7 @@ struct resource_data {
static void debug_link(struct pw_impl_link *link) static void debug_link(struct pw_impl_link *link)
{ {
struct pw_node *in = link->input->node, *out = link->output->node; struct pw_impl_node *in = link->input->node, *out = link->output->node;
pw_log_debug(NAME" %p: %d %d %d out %d %d %d , %d %d %d in %d %d %d", link, pw_log_debug(NAME" %p: %d %d %d out %d %d %d , %d %d %d in %d %d %d", link,
out->n_used_input_links, out->n_used_input_links,
@ -110,7 +110,7 @@ static void info_changed(struct pw_impl_link *link)
static void pw_impl_link_update_state(struct pw_impl_link *link, enum pw_link_state state, char *error) static void pw_impl_link_update_state(struct pw_impl_link *link, enum pw_link_state state, char *error)
{ {
enum pw_link_state old = link->info.state; enum pw_link_state old = link->info.state;
struct pw_node *in = link->input->node, *out = link->output->node; struct pw_impl_node *in = link->input->node, *out = link->output->node;
if (state == old) if (state == old)
return; return;
@ -137,19 +137,19 @@ static void pw_impl_link_update_state(struct pw_impl_link *link, enum pw_link_st
if (old != PW_LINK_STATE_PAUSED && state == PW_LINK_STATE_PAUSED) { if (old != PW_LINK_STATE_PAUSED && state == PW_LINK_STATE_PAUSED) {
if (++out->n_ready_output_links == out->n_used_output_links && if (++out->n_ready_output_links == out->n_used_output_links &&
out->n_ready_input_links == out->n_used_input_links) out->n_ready_input_links == out->n_used_input_links)
pw_node_set_state(out, PW_NODE_STATE_RUNNING); pw_impl_node_set_state(out, PW_NODE_STATE_RUNNING);
if (++in->n_ready_input_links == in->n_used_input_links && if (++in->n_ready_input_links == in->n_used_input_links &&
in->n_ready_output_links == in->n_used_output_links) in->n_ready_output_links == in->n_used_output_links)
pw_node_set_state(in, PW_NODE_STATE_RUNNING); pw_impl_node_set_state(in, PW_NODE_STATE_RUNNING);
pw_impl_link_activate(link); pw_impl_link_activate(link);
} }
else if (old == PW_LINK_STATE_PAUSED && state < PW_LINK_STATE_PAUSED) { else if (old == PW_LINK_STATE_PAUSED && state < PW_LINK_STATE_PAUSED) {
if (--out->n_ready_output_links == 0 && if (--out->n_ready_output_links == 0 &&
out->n_ready_input_links == 0) out->n_ready_input_links == 0)
pw_node_set_state(out, PW_NODE_STATE_IDLE); pw_impl_node_set_state(out, PW_NODE_STATE_IDLE);
if (--in->n_ready_input_links == 0 && if (--in->n_ready_input_links == 0 &&
in->n_ready_output_links == 0) in->n_ready_output_links == 0)
pw_node_set_state(in, PW_NODE_STATE_IDLE); pw_impl_node_set_state(in, PW_NODE_STATE_IDLE);
} }
} }
@ -260,7 +260,7 @@ static int do_negotiate(struct pw_impl_link *this)
spa_debug_pod(2, NULL, current); spa_debug_pod(2, NULL, current);
spa_debug_pod(2, NULL, format); spa_debug_pod(2, NULL, format);
} }
pw_node_set_state(output->node, PW_NODE_STATE_SUSPENDED); pw_impl_node_set_state(output->node, PW_NODE_STATE_SUSPENDED);
out_state = PW_IMPL_PORT_STATE_CONFIGURE; out_state = PW_IMPL_PORT_STATE_CONFIGURE;
} }
else { else {
@ -296,7 +296,7 @@ static int do_negotiate(struct pw_impl_link *this)
spa_debug_pod(2, NULL, current); spa_debug_pod(2, NULL, current);
spa_debug_pod(2, NULL, format); spa_debug_pod(2, NULL, format);
} }
pw_node_set_state(input->node, PW_NODE_STATE_SUSPENDED); pw_impl_node_set_state(input->node, PW_NODE_STATE_SUSPENDED);
in_state = PW_IMPL_PORT_STATE_CONFIGURE; in_state = PW_IMPL_PORT_STATE_CONFIGURE;
} }
else { else {
@ -736,7 +736,7 @@ do_deactivate_link(struct spa_loop *loop,
int pw_impl_link_deactivate(struct pw_impl_link *this) int pw_impl_link_deactivate(struct pw_impl_link *this)
{ {
struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this);
struct pw_node *input_node, *output_node; struct pw_impl_node *input_node, *output_node;
pw_log_debug(NAME" %p: deactivate %d %d", this, impl->prepare, impl->activated); pw_log_debug(NAME" %p: deactivate %d %d", this, impl->prepare, impl->activated);
@ -771,7 +771,7 @@ int pw_impl_link_deactivate(struct pw_impl_link *this)
if (input_node->n_used_input_links <= input_node->idle_used_input_links && if (input_node->n_used_input_links <= input_node->idle_used_input_links &&
input_node->n_used_output_links <= input_node->idle_used_output_links && input_node->n_used_output_links <= input_node->idle_used_output_links &&
input_node->info.state > PW_NODE_STATE_IDLE) { input_node->info.state > PW_NODE_STATE_IDLE) {
pw_node_set_state(input_node, PW_NODE_STATE_IDLE); pw_impl_node_set_state(input_node, PW_NODE_STATE_IDLE);
pw_log_debug(NAME" %p: input port %p state %d -> %d", this, pw_log_debug(NAME" %p: input port %p state %d -> %d", this,
this->input, this->input->state, PW_IMPL_PORT_STATE_PAUSED); this->input, this->input->state, PW_IMPL_PORT_STATE_PAUSED);
} }
@ -779,7 +779,7 @@ int pw_impl_link_deactivate(struct pw_impl_link *this)
if (output_node->n_used_input_links <= output_node->idle_used_input_links && if (output_node->n_used_input_links <= output_node->idle_used_input_links &&
output_node->n_used_output_links <= output_node->idle_used_output_links && output_node->n_used_output_links <= output_node->idle_used_output_links &&
output_node->info.state > PW_NODE_STATE_IDLE) { output_node->info.state > PW_NODE_STATE_IDLE) {
pw_node_set_state(output_node, PW_NODE_STATE_IDLE); pw_impl_node_set_state(output_node, PW_NODE_STATE_IDLE);
pw_log_debug(NAME" %p: output port %p state %d -> %d", this, pw_log_debug(NAME" %p: output port %p state %d -> %d", this,
this->output, this->output->state, PW_IMPL_PORT_STATE_PAUSED); this->output, this->output->state, PW_IMPL_PORT_STATE_PAUSED);
} }
@ -898,17 +898,17 @@ static void output_node_result(void *data, int seq, int res, uint32_t type, cons
node_result(impl, port, seq, res, type, result); node_result(impl, port, seq, res, type, result);
} }
static const struct pw_node_events input_node_events = { static const struct pw_impl_node_events input_node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.result = input_node_result, .result = input_node_result,
}; };
static const struct pw_node_events output_node_events = { static const struct pw_impl_node_events output_node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.result = output_node_result, .result = output_node_result,
}; };
static bool pw_node_can_reach(struct pw_node *output, struct pw_node *input) static bool pw_impl_node_can_reach(struct pw_impl_node *output, struct pw_impl_node *input)
{ {
struct pw_impl_port *p; struct pw_impl_port *p;
@ -927,7 +927,7 @@ static bool pw_node_can_reach(struct pw_node *output, struct pw_node *input)
spa_list_for_each(l, &p->links, output_link) { spa_list_for_each(l, &p->links, output_link) {
if (l->feedback) if (l->feedback)
continue; continue;
if (pw_node_can_reach(l->input->node, input)) if (pw_impl_node_can_reach(l->input->node, input))
return true; return true;
} }
} }
@ -1041,7 +1041,7 @@ struct pw_impl_link *pw_impl_link_new(struct pw_context *context,
{ {
struct impl *impl; struct impl *impl;
struct pw_impl_link *this; struct pw_impl_link *this;
struct pw_node *input_node, *output_node; struct pw_impl_node *input_node, *output_node;
const char *str; const char *str;
int res; int res;
@ -1071,7 +1071,7 @@ struct pw_impl_link *pw_impl_link_new(struct pw_context *context,
goto error_no_mem; goto error_no_mem;
this = &impl->this; this = &impl->this;
this->feedback = pw_node_can_reach(input_node, output_node); this->feedback = pw_impl_node_can_reach(input_node, output_node);
pw_log_debug(NAME" %p: new out-port:%p -> in-port:%p", this, output, input); pw_log_debug(NAME" %p: new out-port:%p -> in-port:%p", this, output, input);
if (user_data_size > 0) if (user_data_size > 0)
@ -1095,10 +1095,10 @@ struct pw_impl_link *pw_impl_link_new(struct pw_context *context,
impl->format_filter = format_filter; impl->format_filter = format_filter;
pw_impl_port_add_listener(input, &impl->input_port_listener, &input_port_events, impl); pw_impl_port_add_listener(input, &impl->input_port_listener, &input_port_events, impl);
pw_node_add_listener(input_node, &impl->input_node_listener, &input_node_events, impl); pw_impl_node_add_listener(input_node, &impl->input_node_listener, &input_node_events, impl);
pw_global_add_listener(input->global, &impl->input_global_listener, &input_global_events, impl); pw_global_add_listener(input->global, &impl->input_global_listener, &input_global_events, impl);
pw_impl_port_add_listener(output, &impl->output_port_listener, &output_port_events, impl); pw_impl_port_add_listener(output, &impl->output_port_listener, &output_port_events, impl);
pw_node_add_listener(output_node, &impl->output_node_listener, &output_node_events, impl); pw_impl_node_add_listener(output_node, &impl->output_node_listener, &output_node_events, impl);
pw_global_add_listener(output->global, &impl->output_global_listener, &output_global_events, impl); pw_global_add_listener(output->global, &impl->output_global_listener, &output_global_events, impl);
input_node->live = output_node->live; input_node->live = output_node->live;
@ -1142,7 +1142,7 @@ struct pw_impl_link *pw_impl_link_new(struct pw_context *context,
try_link_controls(impl, output, input); try_link_controls(impl, output, input);
pw_node_emit_peer_added(output_node, input_node); pw_impl_node_emit_peer_added(output_node, input_node);
pw_context_recalc_graph(context); pw_context_recalc_graph(context);
@ -1198,7 +1198,7 @@ int pw_impl_link_register(struct pw_impl_link *link,
struct pw_properties *properties) struct pw_properties *properties)
{ {
struct pw_context *context = link->context; struct pw_context *context = link->context;
struct pw_node *output_node, *input_node; struct pw_impl_node *output_node, *input_node;
const char *keys[] = { const char *keys[] = {
PW_KEY_OBJECT_PATH, PW_KEY_OBJECT_PATH,
PW_KEY_MODULE_ID, PW_KEY_MODULE_ID,
@ -1277,7 +1277,7 @@ void pw_impl_link_destroy(struct pw_impl_link *link)
if (link->registered) if (link->registered)
spa_list_remove(&link->link); spa_list_remove(&link->link);
pw_node_emit_peer_removed(link->output->node, link->input->node); pw_impl_node_emit_peer_removed(link->output->node, link->input->node);
try_unlink_controls(impl, link->output, link->input); try_unlink_controls(impl, link->output, link->input);

View file

@ -41,7 +41,7 @@
/** \cond */ /** \cond */
struct impl { struct impl {
struct pw_node this; struct pw_impl_node this;
struct pw_work_queue *work; struct pw_work_queue *work;
@ -55,7 +55,7 @@ struct impl {
#define pw_node_resource_param(r,...) pw_node_resource(r,param,0,__VA_ARGS__) #define pw_node_resource_param(r,...) pw_node_resource(r,param,0,__VA_ARGS__)
struct resource_data { struct resource_data {
struct pw_node *node; struct pw_impl_node *node;
struct pw_resource *resource; struct pw_resource *resource;
struct spa_hook resource_listener; struct spa_hook resource_listener;
@ -72,7 +72,7 @@ struct resource_data {
/** \endcond */ /** \endcond */
static void node_deactivate(struct pw_node *this) static void node_deactivate(struct pw_impl_node *this)
{ {
struct pw_impl_port *port; struct pw_impl_port *port;
struct pw_impl_link *link; struct pw_impl_link *link;
@ -88,7 +88,7 @@ static void node_deactivate(struct pw_node *this)
} }
} }
static void add_node(struct pw_node *this, struct pw_node *driver) static void add_node(struct pw_impl_node *this, struct pw_impl_node *driver)
{ {
uint32_t rdriver, rnode; uint32_t rdriver, rnode;
@ -110,7 +110,7 @@ static void add_node(struct pw_node *this, struct pw_node *driver)
pw_log_trace(NAME" %p: required driver:%d node:%d", this, rdriver, rnode); pw_log_trace(NAME" %p: required driver:%d node:%d", this, rdriver, rnode);
} }
static void remove_node(struct pw_node *this) static void remove_node(struct pw_impl_node *this)
{ {
uint32_t rdriver, rnode; uint32_t rdriver, rnode;
@ -134,7 +134,7 @@ static int
do_node_remove(struct spa_loop *loop, do_node_remove(struct spa_loop *loop,
bool async, uint32_t seq, const void *data, size_t size, void *user_data) bool async, uint32_t seq, const void *data, size_t size, void *user_data)
{ {
struct pw_node *this = user_data; struct pw_impl_node *this = user_data;
if (this->source.loop != NULL) { if (this->source.loop != NULL) {
spa_loop_remove_source(loop, &this->source); spa_loop_remove_source(loop, &this->source);
remove_node(this); remove_node(this);
@ -142,7 +142,7 @@ do_node_remove(struct spa_loop *loop,
return 0; return 0;
} }
static int pause_node(struct pw_node *this) static int pause_node(struct pw_impl_node *this)
{ {
struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(this, struct impl, this);
int res = 0; int res = 0;
@ -169,8 +169,8 @@ static int
do_node_add(struct spa_loop *loop, do_node_add(struct spa_loop *loop,
bool async, uint32_t seq, const void *data, size_t size, void *user_data) bool async, uint32_t seq, const void *data, size_t size, void *user_data)
{ {
struct pw_node *this = user_data; struct pw_impl_node *this = user_data;
struct pw_node *driver = this->driver_node; struct pw_impl_node *driver = this->driver_node;
if (this->source.loop == NULL) { if (this->source.loop == NULL) {
spa_loop_add_source(loop, &this->source); spa_loop_add_source(loop, &this->source);
@ -179,7 +179,7 @@ do_node_add(struct spa_loop *loop,
return 0; return 0;
} }
static int start_node(struct pw_node *this) static int start_node(struct pw_impl_node *this)
{ {
int res = 0; int res = 0;
@ -204,14 +204,14 @@ static int start_node(struct pw_node *this)
return res; return res;
} }
static void emit_info_changed(struct pw_node *node) static void emit_info_changed(struct pw_impl_node *node)
{ {
struct pw_resource *resource; struct pw_resource *resource;
if (node->info.change_mask == 0) if (node->info.change_mask == 0)
return; return;
pw_node_emit_info_changed(node, &node->info); pw_impl_node_emit_info_changed(node, &node->info);
if (node->global) if (node->global)
spa_list_for_each(resource, &node->global->resource_list, link) spa_list_for_each(resource, &node->global->resource_list, link)
@ -235,7 +235,7 @@ static int resource_is_subscribed(struct pw_resource *resource, uint32_t id)
static int notify_param(void *data, int seq, uint32_t id, static int notify_param(void *data, int seq, uint32_t id,
uint32_t index, uint32_t next, struct spa_pod *param) uint32_t index, uint32_t next, struct spa_pod *param)
{ {
struct pw_node *node = data; struct pw_impl_node *node = data;
struct pw_resource *resource; struct pw_resource *resource;
spa_list_for_each(resource, &node->global->resource_list, link) { spa_list_for_each(resource, &node->global->resource_list, link) {
@ -248,7 +248,7 @@ static int notify_param(void *data, int seq, uint32_t id,
return 0; return 0;
} }
static void emit_params(struct pw_node *node, uint32_t *changed_ids, uint32_t n_changed_ids) static void emit_params(struct pw_impl_node *node, uint32_t *changed_ids, uint32_t n_changed_ids)
{ {
uint32_t i; uint32_t i;
int res; int res;
@ -270,14 +270,14 @@ static void emit_params(struct pw_node *node, uint32_t *changed_ids, uint32_t n_
if (!subscribed) if (!subscribed)
continue; continue;
if ((res = pw_node_for_each_param(node, 1, changed_ids[i], 0, UINT32_MAX, if ((res = pw_impl_node_for_each_param(node, 1, changed_ids[i], 0, UINT32_MAX,
NULL, notify_param, node)) < 0) { NULL, notify_param, node)) < 0) {
pw_log_error(NAME" %p: error %d (%s)", node, res, spa_strerror(res)); pw_log_error(NAME" %p: error %d (%s)", node, res, spa_strerror(res));
} }
} }
} }
static void node_update_state(struct pw_node *node, enum pw_node_state state, char *error) static void node_update_state(struct pw_impl_node *node, enum pw_node_state state, char *error)
{ {
enum pw_node_state old; enum pw_node_state old;
@ -305,13 +305,13 @@ static void node_update_state(struct pw_node *node, enum pw_node_state state, ch
break; break;
} }
pw_node_emit_state_changed(node, old, state, error); pw_impl_node_emit_state_changed(node, old, state, error);
node->info.change_mask |= PW_NODE_CHANGE_MASK_STATE; node->info.change_mask |= PW_NODE_CHANGE_MASK_STATE;
emit_info_changed(node); emit_info_changed(node);
} }
static int suspend_node(struct pw_node *this) static int suspend_node(struct pw_impl_node *this)
{ {
int res = 0; int res = 0;
struct pw_impl_port *p; struct pw_impl_port *p;
@ -353,7 +353,7 @@ static void node_unbind_func(void *data)
} }
static void static void
clear_info(struct pw_node *this) clear_info(struct pw_impl_node *this)
{ {
free(this->name); free(this->name);
free((char*)this->info.error); free((char*)this->info.error);
@ -378,7 +378,7 @@ static int node_enum_params(void *object, int seq, uint32_t id,
{ {
struct pw_resource *resource = object; struct pw_resource *resource = object;
struct resource_data *data = pw_resource_get_user_data(resource); struct resource_data *data = pw_resource_get_user_data(resource);
struct pw_node *node = data->node; struct pw_impl_node *node = data->node;
struct pw_impl_client *client = resource->client; struct pw_impl_client *client = resource->client;
int res; int res;
@ -386,7 +386,7 @@ static int node_enum_params(void *object, int seq, uint32_t id,
node, resource, seq, node, resource, seq,
spa_debug_type_find_name(spa_type_param, id), index, num); spa_debug_type_find_name(spa_type_param, id), index, num);
if ((res = pw_node_for_each_param(node, seq, id, index, num, if ((res = pw_impl_node_for_each_param(node, seq, id, index, num,
filter, reply_param, data)) < 0) { filter, reply_param, data)) < 0) {
pw_log_error(NAME" %p: resource %p %d error %d (%s)", node, pw_log_error(NAME" %p: resource %p %d error %d (%s)", node,
resource, resource->id, res, spa_strerror(res)); resource, resource->id, res, spa_strerror(res));
@ -434,7 +434,7 @@ static int node_set_param(void *object, uint32_t id, uint32_t flags,
{ {
struct pw_resource *resource = object; struct pw_resource *resource = object;
struct resource_data *data = pw_resource_get_user_data(resource); struct resource_data *data = pw_resource_get_user_data(resource);
struct pw_node *node = data->node; struct pw_impl_node *node = data->node;
struct pw_impl_client *client = resource->client; struct pw_impl_client *client = resource->client;
int res; int res;
static const struct spa_node_events node_events = { static const struct spa_node_events node_events = {
@ -466,7 +466,7 @@ static int node_send_command(void *object, const struct spa_command *command)
{ {
struct pw_resource *resource = object; struct pw_resource *resource = object;
struct resource_data *data = pw_resource_get_user_data(resource); struct resource_data *data = pw_resource_get_user_data(resource);
struct pw_node *node = data->node; struct pw_impl_node *node = data->node;
switch (SPA_NODE_COMMAND_ID(command)) { switch (SPA_NODE_COMMAND_ID(command)) {
case SPA_NODE_COMMAND_Suspend: case SPA_NODE_COMMAND_Suspend:
@ -491,7 +491,7 @@ static int
global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions, global_bind(void *_data, struct pw_impl_client *client, uint32_t permissions,
uint32_t version, uint32_t id) uint32_t version, uint32_t id)
{ {
struct pw_node *this = _data; struct pw_impl_node *this = _data;
struct pw_global *global = this->global; struct pw_global *global = this->global;
struct pw_resource *resource; struct pw_resource *resource;
struct resource_data *data; struct resource_data *data;
@ -530,10 +530,10 @@ error_resource:
static void global_destroy(void *data) static void global_destroy(void *data)
{ {
struct pw_node *this = data; struct pw_impl_node *this = data;
spa_hook_remove(&this->global_listener); spa_hook_remove(&this->global_listener);
this->global = NULL; this->global = NULL;
pw_node_destroy(this); pw_impl_node_destroy(this);
} }
static const struct pw_global_events global_events = { static const struct pw_global_events global_events = {
@ -541,9 +541,9 @@ static const struct pw_global_events global_events = {
.destroy = global_destroy, .destroy = global_destroy,
}; };
static inline void insert_driver(struct pw_context *context, struct pw_node *node) static inline void insert_driver(struct pw_context *context, struct pw_impl_node *node)
{ {
struct pw_node *n, *t; struct pw_impl_node *n, *t;
spa_list_for_each_safe(n, t, &context->driver_list, driver_link) { spa_list_for_each_safe(n, t, &context->driver_list, driver_link) {
if (n->priority_master < node->priority_master) if (n->priority_master < node->priority_master)
@ -553,7 +553,7 @@ static inline void insert_driver(struct pw_context *context, struct pw_node *nod
} }
SPA_EXPORT SPA_EXPORT
int pw_node_register(struct pw_node *this, int pw_impl_node_register(struct pw_impl_node *this,
struct pw_properties *properties) struct pw_properties *properties)
{ {
struct pw_context *context = this->context; struct pw_context *context = this->context;
@ -607,7 +607,7 @@ int pw_node_register(struct pw_node *this,
pw_properties_setf(this->properties, PW_KEY_OBJECT_ID, "%d", this->info.id); pw_properties_setf(this->properties, PW_KEY_OBJECT_ID, "%d", this->info.id);
this->info.props = &this->properties->dict; this->info.props = &this->properties->dict;
pw_node_initialized(this); pw_impl_node_initialized(this);
pw_global_add_listener(this->global, &this->global_listener, &global_events, this); pw_global_add_listener(this->global, &this->global_listener, &global_events, this);
pw_global_register(this->global); pw_global_register(this->global);
@ -628,10 +628,10 @@ error_existed:
} }
SPA_EXPORT SPA_EXPORT
int pw_node_initialized(struct pw_node *this) int pw_impl_node_initialized(struct pw_impl_node *this)
{ {
pw_log_debug(NAME" %p initialized", this); pw_log_debug(NAME" %p initialized", this);
pw_node_emit_initialized(this); pw_impl_node_emit_initialized(this);
node_update_state(this, PW_NODE_STATE_SUSPENDED, NULL); node_update_state(this, PW_NODE_STATE_SUSPENDED, NULL);
return 0; return 0;
} }
@ -641,8 +641,8 @@ do_move_nodes(struct spa_loop *loop,
bool async, uint32_t seq, const void *data, size_t size, void *user_data) bool async, uint32_t seq, const void *data, size_t size, void *user_data)
{ {
struct impl *src = user_data; struct impl *src = user_data;
struct pw_node *driver = *(struct pw_node **)data; struct pw_impl_node *driver = *(struct pw_impl_node **)data;
struct pw_node *this = &src->this; struct pw_impl_node *this = &src->this;
pw_log_trace(NAME" %p: driver:%p->%p", this, this->driver_node, driver); pw_log_trace(NAME" %p: driver:%p->%p", this, this->driver_node, driver);
@ -653,7 +653,7 @@ do_move_nodes(struct spa_loop *loop,
return 0; return 0;
} }
static void remove_segment_master(struct pw_node *driver, uint32_t node_id) static void remove_segment_master(struct pw_impl_node *driver, uint32_t node_id)
{ {
struct pw_node_activation *a = driver->rt.activation; struct pw_node_activation *a = driver->rt.activation;
ATOMIC_CAS(a->segment_owner[0], node_id, 0); ATOMIC_CAS(a->segment_owner[0], node_id, 0);
@ -661,10 +661,10 @@ static void remove_segment_master(struct pw_node *driver, uint32_t node_id)
} }
SPA_EXPORT SPA_EXPORT
int pw_node_set_driver(struct pw_node *node, struct pw_node *driver) int pw_impl_node_set_driver(struct pw_impl_node *node, struct pw_impl_node *driver)
{ {
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
struct pw_node *old = node->driver_node; struct pw_impl_node *old = node->driver_node;
int res; int res;
if (driver == NULL) if (driver == NULL)
@ -683,7 +683,7 @@ int pw_node_set_driver(struct pw_node *node, struct pw_node *driver)
node->driver_node = driver; node->driver_node = driver;
pw_node_emit_driver_changed(node, old, driver); pw_impl_node_emit_driver_changed(node, old, driver);
if ((res = spa_node_set_io(node->node, if ((res = spa_node_set_io(node->node,
SPA_IO_Position, SPA_IO_Position,
@ -696,7 +696,7 @@ int pw_node_set_driver(struct pw_node *node, struct pw_node *driver)
} }
pw_loop_invoke(node->data_loop, pw_loop_invoke(node->data_loop,
do_move_nodes, SPA_ID_INVALID, &driver, sizeof(struct pw_node *), do_move_nodes, SPA_ID_INVALID, &driver, sizeof(struct pw_impl_node *),
true, impl); true, impl);
return 0; return 0;
} }
@ -711,7 +711,7 @@ static uint32_t flp2(uint32_t x)
return x - (x >> 1); return x - (x >> 1);
} }
static void check_properties(struct pw_node *node) static void check_properties(struct pw_impl_node *node)
{ {
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
const char *str; const char *str;
@ -775,7 +775,7 @@ static void check_properties(struct pw_node *node)
pw_context_recalc_graph(node->context); pw_context_recalc_graph(node->context);
} }
static void dump_states(struct pw_node *driver) static void dump_states(struct pw_impl_node *driver)
{ {
struct pw_node_target *t; struct pw_node_target *t;
@ -796,7 +796,7 @@ static void dump_states(struct pw_node *driver)
} }
} }
static inline int resume_node(struct pw_node *this, int status) static inline int resume_node(struct pw_impl_node *this, int status)
{ {
struct pw_node_target *t; struct pw_node_target *t;
struct timespec ts; struct timespec ts;
@ -828,7 +828,7 @@ static inline int resume_node(struct pw_node *this, int status)
return 0; return 0;
} }
static inline void calculate_stats(struct pw_node *this, struct pw_node_activation *a) static inline void calculate_stats(struct pw_impl_node *this, struct pw_node_activation *a)
{ {
if (a->signal_time > a->prev_signal_time) { if (a->signal_time > a->prev_signal_time) {
uint64_t process_time = a->finish_time - a->signal_time; uint64_t process_time = a->finish_time - a->signal_time;
@ -842,7 +842,7 @@ static inline void calculate_stats(struct pw_node *this, struct pw_node_activat
static inline int process_node(void *data) static inline int process_node(void *data)
{ {
struct pw_node *this = data; struct pw_impl_node *this = data;
struct timespec ts; struct timespec ts;
struct pw_impl_port *p; struct pw_impl_port *p;
struct pw_node_activation *a = this->rt.activation; struct pw_node_activation *a = this->rt.activation;
@ -897,7 +897,7 @@ static inline int process_node(void *data)
static void node_on_fd_events(struct spa_source *source) static void node_on_fd_events(struct spa_source *source)
{ {
struct pw_node *this = source->data; struct pw_impl_node *this = source->data;
struct spa_system *data_system = this->context->data_system; struct spa_system *data_system = this->context->data_system;
if (source->rmask & (SPA_IO_ERR | SPA_IO_HUP)) { if (source->rmask & (SPA_IO_ERR | SPA_IO_HUP)) {
@ -936,12 +936,12 @@ static void reset_position(struct spa_io_position *pos)
} }
SPA_EXPORT SPA_EXPORT
struct pw_node *pw_node_new(struct pw_context *context, struct pw_impl_node *pw_impl_node_new(struct pw_context *context,
struct pw_properties *properties, struct pw_properties *properties,
size_t user_data_size) size_t user_data_size)
{ {
struct impl *impl; struct impl *impl;
struct pw_node *this; struct pw_impl_node *this;
size_t size; size_t size;
struct spa_system *data_system = context->data_system; struct spa_system *data_system = context->data_system;
int res; int res;
@ -1048,36 +1048,36 @@ error_exit:
} }
SPA_EXPORT SPA_EXPORT
const struct pw_node_info *pw_node_get_info(struct pw_node *node) const struct pw_node_info *pw_impl_node_get_info(struct pw_impl_node *node)
{ {
return &node->info; return &node->info;
} }
SPA_EXPORT SPA_EXPORT
void * pw_node_get_user_data(struct pw_node *node) void * pw_impl_node_get_user_data(struct pw_impl_node *node)
{ {
return node->user_data; return node->user_data;
} }
SPA_EXPORT SPA_EXPORT
struct pw_context * pw_node_get_context(struct pw_node *node) struct pw_context * pw_impl_node_get_context(struct pw_impl_node *node)
{ {
return node->context; return node->context;
} }
SPA_EXPORT SPA_EXPORT
struct pw_global *pw_node_get_global(struct pw_node *node) struct pw_global *pw_impl_node_get_global(struct pw_impl_node *node)
{ {
return node->global; return node->global;
} }
SPA_EXPORT SPA_EXPORT
const struct pw_properties *pw_node_get_properties(struct pw_node *node) const struct pw_properties *pw_impl_node_get_properties(struct pw_impl_node *node)
{ {
return node->properties; return node->properties;
} }
static int update_properties(struct pw_node *node, const struct spa_dict *dict) static int update_properties(struct pw_impl_node *node, const struct spa_dict *dict)
{ {
int changed; int changed;
@ -1094,7 +1094,7 @@ static int update_properties(struct pw_node *node, const struct spa_dict *dict)
} }
SPA_EXPORT SPA_EXPORT
int pw_node_update_properties(struct pw_node *node, const struct spa_dict *dict) int pw_impl_node_update_properties(struct pw_impl_node *node, const struct spa_dict *dict)
{ {
int changed = update_properties(node, dict); int changed = update_properties(node, dict);
emit_info_changed(node); emit_info_changed(node);
@ -1103,7 +1103,7 @@ int pw_node_update_properties(struct pw_node *node, const struct spa_dict *dict)
static void node_info(void *data, const struct spa_node_info *info) static void node_info(void *data, const struct spa_node_info *info)
{ {
struct pw_node *node = data; struct pw_impl_node *node = data;
uint32_t changed_ids[MAX_PARAMS], n_changed_ids = 0; uint32_t changed_ids[MAX_PARAMS], n_changed_ids = 0;
node->info.max_input_ports = info->max_input_ports; node->info.max_input_ports = info->max_input_ports;
@ -1149,8 +1149,8 @@ static void node_info(void *data, const struct spa_node_info *info)
static void node_port_info(void *data, enum spa_direction direction, uint32_t port_id, static void node_port_info(void *data, enum spa_direction direction, uint32_t port_id,
const struct spa_port_info *info) const struct spa_port_info *info)
{ {
struct pw_node *node = data; struct pw_impl_node *node = data;
struct pw_impl_port *port = pw_node_find_port(node, direction, port_id); struct pw_impl_port *port = pw_impl_node_find_port(node, direction, port_id);
if (info == NULL) { if (info == NULL) {
if (port) { if (port) {
@ -1184,7 +1184,7 @@ static void node_port_info(void *data, enum spa_direction direction, uint32_t po
static void node_result(void *data, int seq, int res, uint32_t type, const void *result) static void node_result(void *data, int seq, int res, uint32_t type, const void *result)
{ {
struct pw_node *node = data; struct pw_impl_node *node = data;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
pw_log_trace(NAME" %p: result seq:%d res:%d type:%u", node, seq, res, type); pw_log_trace(NAME" %p: result seq:%d res:%d type:%u", node, seq, res, type);
@ -1193,12 +1193,12 @@ static void node_result(void *data, int seq, int res, uint32_t type, const void
if (SPA_RESULT_IS_ASYNC(seq)) if (SPA_RESULT_IS_ASYNC(seq))
pw_work_queue_complete(impl->work, &impl->this, SPA_RESULT_ASYNC_SEQ(seq), res); pw_work_queue_complete(impl->work, &impl->this, SPA_RESULT_ASYNC_SEQ(seq), res);
pw_node_emit_result(node, seq, res, type, result); pw_impl_node_emit_result(node, seq, res, type, result);
} }
static void node_event(void *data, const struct spa_event *event) static void node_event(void *data, const struct spa_event *event)
{ {
struct pw_node *node = data; struct pw_impl_node *node = data;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
pw_log_trace(NAME" %p: event %d", node, SPA_EVENT_TYPE(event)); pw_log_trace(NAME" %p: event %d", node, SPA_EVENT_TYPE(event));
@ -1211,7 +1211,7 @@ static void node_event(void *data, const struct spa_event *event)
default: default:
break; break;
} }
pw_node_emit_event(node, event); pw_impl_node_emit_event(node, event);
} }
static const struct spa_node_events node_events = { static const struct spa_node_events node_events = {
@ -1226,7 +1226,7 @@ static const struct spa_node_events node_events = {
#define SYNC_START 1 #define SYNC_START 1
#define SYNC_STOP 2 #define SYNC_STOP 2
static int check_updates(struct pw_node *node, uint32_t *reposition_owner) static int check_updates(struct pw_impl_node *node, uint32_t *reposition_owner)
{ {
int res = SYNC_CHECK; int res = SYNC_CHECK;
struct pw_node_activation *a = node->rt.activation; struct pw_node_activation *a = node->rt.activation;
@ -1261,7 +1261,7 @@ static int check_updates(struct pw_node *node, uint32_t *reposition_owner)
return res; return res;
} }
static void do_reposition(struct pw_node *driver, struct pw_node *node) static void do_reposition(struct pw_impl_node *driver, struct pw_impl_node *node)
{ {
struct pw_node_activation *a = driver->rt.activation; struct pw_node_activation *a = driver->rt.activation;
struct spa_io_segment *dst, *src; struct spa_io_segment *dst, *src;
@ -1285,7 +1285,7 @@ static void do_reposition(struct pw_node *driver, struct pw_node *node)
} }
} }
static void update_position(struct pw_node *node, int all_ready) static void update_position(struct pw_impl_node *node, int all_ready)
{ {
struct pw_node_activation *a = node->rt.activation; struct pw_node_activation *a = node->rt.activation;
@ -1304,8 +1304,8 @@ static void update_position(struct pw_node *node, int all_ready)
static int node_ready(void *data, int status) static int node_ready(void *data, int status)
{ {
struct pw_node *node = data, *reposition_node = NULL; struct pw_impl_node *node = data, *reposition_node = NULL;
struct pw_node *driver = node->driver_node; struct pw_impl_node *driver = node->driver_node;
struct pw_node_target *t; struct pw_node_target *t;
struct pw_impl_port *p; struct pw_impl_port *p;
@ -1377,7 +1377,7 @@ static int node_ready(void *data, int status)
static int node_reuse_buffer(void *data, uint32_t port_id, uint32_t buffer_id) static int node_reuse_buffer(void *data, uint32_t port_id, uint32_t buffer_id)
{ {
struct pw_node *node = data; struct pw_impl_node *node = data;
struct pw_impl_port *p; struct pw_impl_port *p;
spa_list_for_each(p, &node->rt.input_mix, rt.node_link) { spa_list_for_each(p, &node->rt.input_mix, rt.node_link) {
@ -1392,7 +1392,7 @@ static int node_reuse_buffer(void *data, uint32_t port_id, uint32_t buffer_id)
static int node_xrun(void *data, uint64_t trigger, uint64_t delay, struct spa_pod *info) static int node_xrun(void *data, uint64_t trigger, uint64_t delay, struct spa_pod *info)
{ {
struct pw_node *this = data; struct pw_impl_node *this = data;
struct pw_node_activation *a = this->rt.activation; struct pw_node_activation *a = this->rt.activation;
a->xrun_count++; a->xrun_count++;
@ -1414,7 +1414,7 @@ static const struct spa_node_callbacks node_callbacks = {
}; };
SPA_EXPORT SPA_EXPORT
int pw_node_set_implementation(struct pw_node *node, int pw_impl_node_set_implementation(struct pw_impl_node *node,
struct spa_node *spa_node) struct spa_node *spa_node)
{ {
int res; int res;
@ -1450,15 +1450,15 @@ int pw_node_set_implementation(struct pw_node *node,
} }
SPA_EXPORT SPA_EXPORT
struct spa_node *pw_node_get_implementation(struct pw_node *node) struct spa_node *pw_impl_node_get_implementation(struct pw_impl_node *node)
{ {
return node->node; return node->node;
} }
SPA_EXPORT SPA_EXPORT
void pw_node_add_listener(struct pw_node *node, void pw_impl_node_add_listener(struct pw_impl_node *node,
struct spa_hook *listener, struct spa_hook *listener,
const struct pw_node_events *events, const struct pw_impl_node_events *events,
void *data) void *data)
{ {
spa_hook_list_append(&node->listener_list, listener, events, data); spa_hook_list_append(&node->listener_list, listener, events, data);
@ -1470,19 +1470,19 @@ void pw_node_add_listener(struct pw_node *node,
* Remove \a node. This will stop the transfer on the node and * Remove \a node. This will stop the transfer on the node and
* free the resources allocated by \a node. * free the resources allocated by \a node.
* *
* \memberof pw_node * \memberof pw_impl_node
*/ */
SPA_EXPORT SPA_EXPORT
void pw_node_destroy(struct pw_node *node) void pw_impl_node_destroy(struct pw_impl_node *node)
{ {
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
struct pw_impl_port *port; struct pw_impl_port *port;
struct pw_node *slave; struct pw_impl_node *slave;
node->active = false; node->active = false;
pw_log_debug(NAME" %p: destroy", impl); pw_log_debug(NAME" %p: destroy", impl);
pw_node_emit_destroy(node); pw_impl_node_emit_destroy(node);
suspend_node(node); suspend_node(node);
@ -1494,7 +1494,7 @@ void pw_node_destroy(struct pw_node *node)
spa_list_consume(slave, &node->slave_list, slave_link) { spa_list_consume(slave, &node->slave_list, slave_link) {
pw_log_debug(NAME" %p: reslave %p", impl, slave); pw_log_debug(NAME" %p: reslave %p", impl, slave);
pw_node_set_driver(slave, NULL); pw_impl_node_set_driver(slave, NULL);
} }
if (node->registered) { if (node->registered) {
@ -1528,7 +1528,7 @@ void pw_node_destroy(struct pw_node *node)
pw_context_recalc_graph(node->context); pw_context_recalc_graph(node->context);
pw_log_debug(NAME" %p: free", node); pw_log_debug(NAME" %p: free", node);
pw_node_emit_free(node); pw_impl_node_emit_free(node);
pw_memblock_unref(node->activation); pw_memblock_unref(node->activation);
@ -1546,7 +1546,7 @@ void pw_node_destroy(struct pw_node *node)
} }
SPA_EXPORT SPA_EXPORT
int pw_node_for_each_port(struct pw_node *node, int pw_impl_node_for_each_port(struct pw_impl_node *node,
enum pw_direction direction, enum pw_direction direction,
int (*callback) (void *data, struct pw_impl_port *port), int (*callback) (void *data, struct pw_impl_port *port),
void *data) void *data)
@ -1591,7 +1591,7 @@ static void result_node_params(void *data, int seq, int res, uint32_t type, cons
} }
SPA_EXPORT SPA_EXPORT
int pw_node_for_each_param(struct pw_node *node, int pw_impl_node_for_each_param(struct pw_impl_node *node,
int seq, uint32_t param_id, int seq, uint32_t param_id,
uint32_t index, uint32_t max, uint32_t index, uint32_t max,
const struct spa_pod *filter, const struct spa_pod *filter,
@ -1626,7 +1626,7 @@ int pw_node_for_each_param(struct pw_node *node,
} }
SPA_EXPORT SPA_EXPORT
int pw_node_set_param(struct pw_node *node, int pw_impl_node_set_param(struct pw_impl_node *node,
uint32_t id, uint32_t flags, const struct spa_pod *param) uint32_t id, uint32_t flags, const struct spa_pod *param)
{ {
pw_log_debug(NAME" %p: set_param %s flags:%08x param:%p", node, pw_log_debug(NAME" %p: set_param %s flags:%08x param:%p", node,
@ -1636,7 +1636,7 @@ int pw_node_set_param(struct pw_node *node,
SPA_EXPORT SPA_EXPORT
struct pw_impl_port * struct pw_impl_port *
pw_node_find_port(struct pw_node *node, enum pw_direction direction, uint32_t port_id) pw_impl_node_find_port(struct pw_impl_node *node, enum pw_direction direction, uint32_t port_id)
{ {
struct pw_impl_port *port, *p; struct pw_impl_port *port, *p;
struct pw_map *portmap; struct pw_map *portmap;
@ -1671,7 +1671,7 @@ pw_node_find_port(struct pw_node *node, enum pw_direction direction, uint32_t po
} }
SPA_EXPORT SPA_EXPORT
uint32_t pw_node_get_free_port_id(struct pw_node *node, enum pw_direction direction) uint32_t pw_impl_node_get_free_port_id(struct pw_impl_node *node, enum pw_direction direction)
{ {
uint32_t n_ports, max_ports; uint32_t n_ports, max_ports;
struct pw_map *portmap; struct pw_map *portmap;
@ -1716,7 +1716,7 @@ error:
static void on_state_complete(void *obj, void *data, int res, uint32_t seq) static void on_state_complete(void *obj, void *data, int res, uint32_t seq)
{ {
struct pw_node *node = obj; struct pw_impl_node *node = obj;
enum pw_node_state state = SPA_PTR_TO_INT(data); enum pw_node_state state = SPA_PTR_TO_INT(data);
char *error = NULL; char *error = NULL;
@ -1728,7 +1728,7 @@ static void on_state_complete(void *obj, void *data, int res, uint32_t seq)
node_update_state(node, state, error); node_update_state(node, state, error);
} }
static void node_activate(struct pw_node *this) static void node_activate(struct pw_impl_node *this)
{ {
struct pw_impl_port *port; struct pw_impl_port *port;
@ -1746,16 +1746,16 @@ static void node_activate(struct pw_node *this)
} }
/** Set the node state /** Set the node state
* \param node a \ref pw_node * \param node a \ref pw_impl_node
* \param state a \ref pw_node_state * \param state a \ref pw_node_state
* \return 0 on success < 0 on error * \return 0 on success < 0 on error
* *
* Set the state of \a node to \a state. * Set the state of \a node to \a state.
* *
* \memberof pw_node * \memberof pw_impl_node
*/ */
SPA_EXPORT SPA_EXPORT
int pw_node_set_state(struct pw_node *node, enum pw_node_state state) int pw_impl_node_set_state(struct pw_impl_node *node, enum pw_node_state state)
{ {
int res = 0; int res = 0;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
@ -1769,7 +1769,7 @@ int pw_node_set_state(struct pw_node *node, enum pw_node_state state)
if (old == state) if (old == state)
return 0; return 0;
pw_node_emit_state_request(node, state); pw_impl_node_emit_state_request(node, state);
switch (state) { switch (state) {
case PW_NODE_STATE_CREATING: case PW_NODE_STATE_CREATING:
@ -1807,7 +1807,7 @@ int pw_node_set_state(struct pw_node *node, enum pw_node_state state)
} }
SPA_EXPORT SPA_EXPORT
int pw_node_set_active(struct pw_node *node, bool active) int pw_impl_node_set_active(struct pw_impl_node *node, bool active)
{ {
bool old = node->active; bool old = node->active;
@ -1815,10 +1815,10 @@ int pw_node_set_active(struct pw_node *node, bool active)
pw_log_debug(NAME" %p: %s", node, active ? "activate" : "deactivate"); pw_log_debug(NAME" %p: %s", node, active ? "activate" : "deactivate");
if (!active) if (!active)
pw_node_set_state(node, PW_NODE_STATE_IDLE); pw_impl_node_set_state(node, PW_NODE_STATE_IDLE);
node->active = active; node->active = active;
pw_node_emit_active_changed(node, active); pw_impl_node_emit_active_changed(node, active);
if (active) if (active)
node_activate(node); node_activate(node);
@ -1830,7 +1830,7 @@ int pw_node_set_active(struct pw_node *node, bool active)
} }
SPA_EXPORT SPA_EXPORT
bool pw_node_is_active(struct pw_node *node) bool pw_impl_node_is_active(struct pw_impl_node *node)
{ {
return node->active; return node->active;
} }

View file

@ -37,11 +37,11 @@ extern "C" {
* input and output ports (\ref page_port) on which it * input and output ports (\ref page_port) on which it
* will receive and send out buffers respectively. * will receive and send out buffers respectively.
*/ */
/** \class pw_node /** \class pw_impl_node
* *
* PipeWire node class. * PipeWire node class.
*/ */
struct pw_node; struct pw_impl_node;
struct pw_impl_port; struct pw_impl_port;
#include <spa/node/node.h> #include <spa/node/node.h>
@ -49,9 +49,9 @@ struct pw_impl_port;
#include <pipewire/impl.h> #include <pipewire/impl.h>
/** Node events, listen to them with \ref pw_node_add_listener */ /** Node events, listen to them with \ref pw_impl_node_add_listener */
struct pw_node_events { struct pw_impl_node_events {
#define PW_VERSION_NODE_EVENTS 0 #define PW_VERSION_IMPL_NODE_EVENTS 0
uint32_t version; uint32_t version;
/** the node is destroyed */ /** the node is destroyed */
@ -89,67 +89,67 @@ struct pw_node_events {
void (*event) (void *data, const struct spa_event *event); void (*event) (void *data, const struct spa_event *event);
/** the driver of the node changed */ /** the driver of the node changed */
void (*driver_changed) (void *data, struct pw_node *old, struct pw_node *driver); void (*driver_changed) (void *data, struct pw_impl_node *old, struct pw_impl_node *driver);
/** a peer was added */ /** a peer was added */
void (*peer_added) (void *data, struct pw_node *peer); void (*peer_added) (void *data, struct pw_impl_node *peer);
/** a peer was removed */ /** a peer was removed */
void (*peer_removed) (void *data, struct pw_node *peer); void (*peer_removed) (void *data, struct pw_impl_node *peer);
}; };
/** Create a new node \memberof pw_node */ /** Create a new node \memberof pw_impl_node */
struct pw_node * struct pw_impl_node *
pw_node_new(struct pw_context *context, /**< the context */ pw_impl_node_new(struct pw_context *context, /**< the context */
struct pw_properties *properties, /**< extra properties */ struct pw_properties *properties, /**< extra properties */
size_t user_data_size /**< user data size */); size_t user_data_size /**< user data size */);
/** Complete initialization of the node and register */ /** Complete initialization of the node and register */
int pw_node_register(struct pw_node *node, /**< node to register */ int pw_impl_node_register(struct pw_impl_node *node, /**< node to register */
struct pw_properties *properties /**< extra properties */); struct pw_properties *properties /**< extra properties */);
/** Destroy a node */ /** Destroy a node */
void pw_node_destroy(struct pw_node *node); void pw_impl_node_destroy(struct pw_impl_node *node);
/** Get the node info */ /** Get the node info */
const struct pw_node_info *pw_node_get_info(struct pw_node *node); const struct pw_node_info *pw_impl_node_get_info(struct pw_impl_node *node);
/** Get node user_data. The size of the memory was given in \ref pw_node_new */ /** Get node user_data. The size of the memory was given in \ref pw_impl_node_new */
void * pw_node_get_user_data(struct pw_node *node); void * pw_impl_node_get_user_data(struct pw_impl_node *node);
/** Get the context of this node */ /** Get the context of this node */
struct pw_context *pw_node_get_context(struct pw_node *node); struct pw_context *pw_impl_node_get_context(struct pw_impl_node *node);
/** Get the global of this node */ /** Get the global of this node */
struct pw_global *pw_node_get_global(struct pw_node *node); struct pw_global *pw_impl_node_get_global(struct pw_impl_node *node);
/** Get the node properties */ /** Get the node properties */
const struct pw_properties *pw_node_get_properties(struct pw_node *node); const struct pw_properties *pw_impl_node_get_properties(struct pw_impl_node *node);
/** Update the node properties */ /** Update the node properties */
int pw_node_update_properties(struct pw_node *node, const struct spa_dict *dict); int pw_impl_node_update_properties(struct pw_impl_node *node, const struct spa_dict *dict);
/** Set the node implementation */ /** Set the node implementation */
int pw_node_set_implementation(struct pw_node *node, struct spa_node *spa_node); int pw_impl_node_set_implementation(struct pw_impl_node *node, struct spa_node *spa_node);
/** Get the node implementation */ /** Get the node implementation */
struct spa_node *pw_node_get_implementation(struct pw_node *node); struct spa_node *pw_impl_node_get_implementation(struct pw_impl_node *node);
/** Add an event listener */ /** Add an event listener */
void pw_node_add_listener(struct pw_node *node, void pw_impl_node_add_listener(struct pw_impl_node *node,
struct spa_hook *listener, struct spa_hook *listener,
const struct pw_node_events *events, const struct pw_impl_node_events *events,
void *data); void *data);
/** Iterate the ports in the given direction. The callback should return /** Iterate the ports in the given direction. The callback should return
* 0 to fetch the next item, any other value stops the iteration and returns * 0 to fetch the next item, any other value stops the iteration and returns
* the value. When all callbacks return 0, this function returns 0 when all * the value. When all callbacks return 0, this function returns 0 when all
* items are iterated. */ * items are iterated. */
int pw_node_for_each_port(struct pw_node *node, int pw_impl_node_for_each_port(struct pw_impl_node *node,
enum pw_direction direction, enum pw_direction direction,
int (*callback) (void *data, struct pw_impl_port *port), int (*callback) (void *data, struct pw_impl_port *port),
void *data); void *data);
int pw_node_for_each_param(struct pw_node *node, int pw_impl_node_for_each_param(struct pw_impl_node *node,
int seq, uint32_t param_id, int seq, uint32_t param_id,
uint32_t index, uint32_t max, uint32_t index, uint32_t max,
const struct spa_pod *filter, const struct spa_pod *filter,
@ -161,17 +161,17 @@ int pw_node_for_each_param(struct pw_node *node,
/** Find the port with direction and port_id or NULL when not found. Passing /** Find the port with direction and port_id or NULL when not found. Passing
* SPA_ID_INVALID for port_id will return any port, preferably an unlinked one. */ * SPA_ID_INVALID for port_id will return any port, preferably an unlinked one. */
struct pw_impl_port * struct pw_impl_port *
pw_node_find_port(struct pw_node *node, enum pw_direction direction, uint32_t port_id); pw_impl_node_find_port(struct pw_impl_node *node, enum pw_direction direction, uint32_t port_id);
/** Get a free unused port_id from the node */ /** Get a free unused port_id from the node */
uint32_t pw_node_get_free_port_id(struct pw_node *node, enum pw_direction direction); uint32_t pw_impl_node_get_free_port_id(struct pw_impl_node *node, enum pw_direction direction);
/** Set a node active. This will start negotiation with all linked active /** Set a node active. This will start negotiation with all linked active
* nodes and start data transport */ * nodes and start data transport */
int pw_node_set_active(struct pw_node *node, bool active); int pw_impl_node_set_active(struct pw_impl_node *node, bool active);
/** Check if a node is active */ /** Check if a node is active */
bool pw_node_is_active(struct pw_node *node); bool pw_impl_node_is_active(struct pw_impl_node *node);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -69,7 +69,7 @@ static void emit_info_changed(struct pw_impl_port *port)
pw_impl_port_emit_info_changed(port, &port->info); pw_impl_port_emit_info_changed(port, &port->info);
if (port->node) if (port->node)
pw_node_emit_port_info_changed(port->node, port, &port->info); pw_impl_node_emit_port_info_changed(port->node, port, &port->info);
if (port->global) if (port->global)
spa_list_for_each(resource, &port->global->resource_list, link) spa_list_for_each(resource, &port->global->resource_list, link)
@ -590,7 +590,7 @@ void pw_impl_port_update_info(struct pw_impl_port *port, const struct spa_port_i
} }
SPA_EXPORT SPA_EXPORT
struct pw_node *pw_impl_port_get_node(struct pw_impl_port *port) struct pw_impl_node *pw_impl_port_get_node(struct pw_impl_port *port)
{ {
return port->node; return port->node;
} }
@ -627,7 +627,7 @@ static int check_param_io(void *data, int seq, uint32_t id,
uint32_t index, uint32_t next, struct spa_pod *param) uint32_t index, uint32_t next, struct spa_pod *param)
{ {
struct pw_impl_port *port = data; struct pw_impl_port *port = data;
struct pw_node *node = port->node; struct pw_impl_node *node = port->node;
uint32_t pid, psize; uint32_t pid, psize;
if (spa_pod_parse_object(param, if (spa_pod_parse_object(param,
@ -777,7 +777,7 @@ static const struct pw_global_events global_events = {
int pw_impl_port_register(struct pw_impl_port *port, int pw_impl_port_register(struct pw_impl_port *port,
struct pw_properties *properties) struct pw_properties *properties)
{ {
struct pw_node *node = port->node; struct pw_impl_node *node = port->node;
const char *keys[] = { const char *keys[] = {
PW_KEY_OBJECT_PATH, PW_KEY_OBJECT_PATH,
PW_KEY_FORMAT_DSP, PW_KEY_FORMAT_DSP,
@ -823,7 +823,7 @@ int pw_impl_port_register(struct pw_impl_port *port,
} }
SPA_EXPORT SPA_EXPORT
int pw_impl_port_add(struct pw_impl_port *port, struct pw_node *node) int pw_impl_port_add(struct pw_impl_port *port, struct pw_impl_node *node)
{ {
uint32_t port_id = port->port_id; uint32_t port_id = port->port_id;
struct spa_list *ports; struct spa_list *ports;
@ -853,7 +853,7 @@ int pw_impl_port_add(struct pw_impl_port *port, struct pw_node *node)
port->node = node; port->node = node;
pw_node_emit_port_init(node, port); pw_impl_node_emit_port_init(node, port);
pw_impl_port_for_each_param(port, 0, SPA_PARAM_IO, 0, 0, NULL, check_param_io, port); pw_impl_port_for_each_param(port, 0, SPA_PARAM_IO, 0, 0, NULL, check_param_io, port);
@ -913,7 +913,7 @@ int pw_impl_port_add(struct pw_impl_port *port, struct pw_node *node)
if (port->state <= PW_IMPL_PORT_STATE_INIT) if (port->state <= PW_IMPL_PORT_STATE_INIT)
pw_impl_port_update_state(port, PW_IMPL_PORT_STATE_CONFIGURE, NULL); pw_impl_port_update_state(port, PW_IMPL_PORT_STATE_CONFIGURE, NULL);
pw_node_emit_port_added(node, port); pw_impl_node_emit_port_added(node, port);
emit_info_changed(port); emit_info_changed(port);
return 0; return 0;
@ -942,7 +942,7 @@ static int do_remove_port(struct spa_loop *loop,
static void pw_impl_port_remove(struct pw_impl_port *port) static void pw_impl_port_remove(struct pw_impl_port *port)
{ {
struct pw_node *node = port->node; struct pw_impl_node *node = port->node;
int res; int res;
if (node == NULL) if (node == NULL)
@ -969,7 +969,7 @@ static void pw_impl_port_remove(struct pw_impl_port *port)
pw_impl_port_set_mix(port, NULL, 0); pw_impl_port_set_mix(port, NULL, 0);
spa_list_remove(&port->link); spa_list_remove(&port->link);
pw_node_emit_port_removed(node, port); pw_impl_node_emit_port_removed(node, port);
port->node = NULL; port->node = NULL;
} }
@ -1043,7 +1043,7 @@ int pw_impl_port_for_each_param(struct pw_impl_port *port,
void *data) void *data)
{ {
int res; int res;
struct pw_node *node = port->node; struct pw_impl_node *node = port->node;
struct result_port_params_data user_data = { data, callback, seq }; struct result_port_params_data user_data = { data, callback, seq };
struct spa_hook listener; struct spa_hook listener;
static const struct spa_node_events node_events = { static const struct spa_node_events node_events = {
@ -1142,7 +1142,7 @@ int pw_impl_port_set_param(struct pw_impl_port *port, uint32_t id, uint32_t flag
const struct spa_pod *param) const struct spa_pod *param)
{ {
int res; int res;
struct pw_node *node = port->node; struct pw_impl_node *node = port->node;
pw_log_debug(NAME" %p: %d set param %d %p", port, port->state, id, param); pw_log_debug(NAME" %p: %d set param %d %p", port, port->state, id, param);
@ -1196,7 +1196,7 @@ static int negotiate_mixer_buffers(struct pw_impl_port *port, uint32_t flags,
struct spa_buffer **buffers, uint32_t n_buffers) struct spa_buffer **buffers, uint32_t n_buffers)
{ {
int res; int res;
struct pw_node *node = port->node; struct pw_impl_node *node = port->node;
if (SPA_FLAG_IS_SET(port->mix_flags, PW_IMPL_PORT_MIX_FLAG_MIX_ONLY)) if (SPA_FLAG_IS_SET(port->mix_flags, PW_IMPL_PORT_MIX_FLAG_MIX_ONLY))
return 0; return 0;

View file

@ -102,7 +102,7 @@ int pw_impl_port_update_properties(struct pw_impl_port *port, const struct spa_d
uint32_t pw_impl_port_get_id(struct pw_impl_port *port); uint32_t pw_impl_port_get_id(struct pw_impl_port *port);
/** Get the port parent node or NULL when not yet set */ /** Get the port parent node or NULL when not yet set */
struct pw_node *pw_impl_port_get_node(struct pw_impl_port *port); struct pw_impl_node *pw_impl_port_get_node(struct pw_impl_port *port);
/** Add an event listener on the port */ /** Add an event listener on the port */
void pw_impl_port_add_listener(struct pw_impl_port *port, void pw_impl_port_add_listener(struct pw_impl_port *port,

View file

@ -335,7 +335,7 @@ static inline void pw_node_activation_state_reset(struct pw_node_activation_stat
struct pw_node_target { struct pw_node_target {
struct spa_list link; struct spa_list link;
struct pw_node *node; struct pw_impl_node *node;
struct pw_node_activation *activation; struct pw_node_activation *activation;
int (*signal) (void *data); int (*signal) (void *data);
void *data; void *data;
@ -412,26 +412,26 @@ struct pw_node_activation {
#define SEQ_READ(s) ATOMIC_LOAD(s) #define SEQ_READ(s) ATOMIC_LOAD(s)
#define SEQ_READ_SUCCESS(s1,s2) ((s1) == (s2) && ((s2) & 1) == 0) #define SEQ_READ_SUCCESS(s1,s2) ((s1) == (s2) && ((s2) & 1) == 0)
#define pw_node_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_node_events, m, v, ##__VA_ARGS__) #define pw_impl_node_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_impl_node_events, m, v, ##__VA_ARGS__)
#define pw_node_emit_destroy(n) pw_node_emit(n, destroy, 0) #define pw_impl_node_emit_destroy(n) pw_impl_node_emit(n, destroy, 0)
#define pw_node_emit_free(n) pw_node_emit(n, free, 0) #define pw_impl_node_emit_free(n) pw_impl_node_emit(n, free, 0)
#define pw_node_emit_initialized(n) pw_node_emit(n, initialized, 0) #define pw_impl_node_emit_initialized(n) pw_impl_node_emit(n, initialized, 0)
#define pw_node_emit_port_init(n,p) pw_node_emit(n, port_init, 0, p) #define pw_impl_node_emit_port_init(n,p) pw_impl_node_emit(n, port_init, 0, p)
#define pw_node_emit_port_added(n,p) pw_node_emit(n, port_added, 0, p) #define pw_impl_node_emit_port_added(n,p) pw_impl_node_emit(n, port_added, 0, p)
#define pw_node_emit_port_removed(n,p) pw_node_emit(n, port_removed, 0, p) #define pw_impl_node_emit_port_removed(n,p) pw_impl_node_emit(n, port_removed, 0, p)
#define pw_node_emit_info_changed(n,i) pw_node_emit(n, info_changed, 0, i) #define pw_impl_node_emit_info_changed(n,i) pw_impl_node_emit(n, info_changed, 0, i)
#define pw_node_emit_port_info_changed(n,p,i) pw_node_emit(n, port_info_changed, 0, p, i) #define pw_impl_node_emit_port_info_changed(n,p,i) pw_impl_node_emit(n, port_info_changed, 0, p, i)
#define pw_node_emit_active_changed(n,a) pw_node_emit(n, active_changed, 0, a) #define pw_impl_node_emit_active_changed(n,a) pw_impl_node_emit(n, active_changed, 0, a)
#define pw_node_emit_state_request(n,s) pw_node_emit(n, state_request, 0, s) #define pw_impl_node_emit_state_request(n,s) pw_impl_node_emit(n, state_request, 0, s)
#define pw_node_emit_state_changed(n,o,s,e) pw_node_emit(n, state_changed, 0, o, s, e) #define pw_impl_node_emit_state_changed(n,o,s,e) pw_impl_node_emit(n, state_changed, 0, o, s, e)
#define pw_node_emit_async_complete(n,s,r) pw_node_emit(n, async_complete, 0, s, r) #define pw_impl_node_emit_async_complete(n,s,r) pw_impl_node_emit(n, async_complete, 0, s, r)
#define pw_node_emit_result(n,s,r,t,result) pw_node_emit(n, result, 0, s, r, t, result) #define pw_impl_node_emit_result(n,s,r,t,result) pw_impl_node_emit(n, result, 0, s, r, t, result)
#define pw_node_emit_event(n,e) pw_node_emit(n, event, 0, e) #define pw_impl_node_emit_event(n,e) pw_impl_node_emit(n, event, 0, e)
#define pw_node_emit_driver_changed(n,o,d) pw_node_emit(n, driver_changed, 0, o, d) #define pw_impl_node_emit_driver_changed(n,o,d) pw_impl_node_emit(n, driver_changed, 0, o, d)
#define pw_node_emit_peer_added(n,p) pw_node_emit(n, peer_added, 0, p) #define pw_impl_node_emit_peer_added(n,p) pw_impl_node_emit(n, peer_added, 0, p)
#define pw_node_emit_peer_removed(n,p) pw_node_emit(n, peer_removed, 0, p) #define pw_impl_node_emit_peer_removed(n,p) pw_impl_node_emit(n, peer_removed, 0, p)
struct pw_node { struct pw_impl_node {
struct pw_context *context; /**< context object */ struct pw_context *context; /**< context object */
struct spa_list link; /**< link in context node_list */ struct spa_list link; /**< link in context node_list */
struct pw_global *global; /**< global for this node */ struct pw_global *global; /**< global for this node */
@ -461,7 +461,7 @@ struct pw_node {
uint32_t port_user_data_size; /**< extra size for port user data */ uint32_t port_user_data_size; /**< extra size for port user data */
struct spa_list driver_link; struct spa_list driver_link;
struct pw_node *driver_node; struct pw_impl_node *driver_node;
struct spa_list slave_list; struct spa_list slave_list;
struct spa_list slave_link; struct spa_list slave_link;
@ -560,7 +560,7 @@ struct pw_impl_port_implementation {
struct pw_impl_port { struct pw_impl_port {
struct spa_list link; /**< link in node port_list */ struct spa_list link; /**< link in node port_list */
struct pw_node *node; /**< owner node */ struct pw_impl_node *node; /**< owner node */
struct pw_global *global; /**< global for this port */ struct pw_global *global; /**< global for this port */
struct spa_hook global_listener; struct spa_hook global_listener;
@ -925,7 +925,7 @@ void * pw_impl_port_get_user_data(struct pw_impl_port *port);
int pw_impl_port_set_mix(struct pw_impl_port *port, struct spa_node *node, uint32_t flags); int pw_impl_port_set_mix(struct pw_impl_port *port, struct spa_node *node, uint32_t flags);
/** Add a port to a node \memberof pw_impl_port */ /** Add a port to a node \memberof pw_impl_port */
int pw_impl_port_add(struct pw_impl_port *port, struct pw_node *node); int pw_impl_port_add(struct pw_impl_port *port, struct pw_impl_node *node);
int pw_impl_port_init_mix(struct pw_impl_port *port, struct pw_impl_port_mix *mix); int pw_impl_port_init_mix(struct pw_impl_port *port, struct pw_impl_port_mix *mix);
int pw_impl_port_release_mix(struct pw_impl_port *port, struct pw_impl_port_mix *mix); int pw_impl_port_release_mix(struct pw_impl_port *port, struct pw_impl_port_mix *mix);
@ -982,16 +982,16 @@ int pw_impl_port_use_buffers(struct pw_impl_port *port, struct pw_impl_port_mix
struct spa_buffer **buffers, uint32_t n_buffers); struct spa_buffer **buffers, uint32_t n_buffers);
/** Change the state of the node */ /** Change the state of the node */
int pw_node_set_state(struct pw_node *node, enum pw_node_state state); int pw_impl_node_set_state(struct pw_impl_node *node, enum pw_node_state state);
int pw_node_set_param(struct pw_node *node, int pw_impl_node_set_param(struct pw_impl_node *node,
uint32_t id, uint32_t flags, const struct spa_pod *param); uint32_t id, uint32_t flags, const struct spa_pod *param);
int pw_node_update_ports(struct pw_node *node); int pw_impl_node_update_ports(struct pw_impl_node *node);
int pw_node_initialized(struct pw_node *node); int pw_impl_node_initialized(struct pw_impl_node *node);
int pw_node_set_driver(struct pw_node *node, struct pw_node *driver); int pw_impl_node_set_driver(struct pw_impl_node *node, struct pw_impl_node *driver);
/** Prepare a link \memberof pw_impl_link /** Prepare a link \memberof pw_impl_link
* Starts the negotiation of formats and buffers on \a link */ * Starts the negotiation of formats and buffers on \a link */

View file

@ -96,7 +96,7 @@ struct stream {
enum spa_direction direction; enum spa_direction direction;
enum pw_stream_flags flags; enum pw_stream_flags flags;
struct pw_node *node; struct pw_impl_node *node;
struct spa_node impl_node; struct spa_node impl_node;
struct spa_node_methods node_methods; struct spa_node_methods node_methods;
@ -979,7 +979,7 @@ static void node_event_info(void *object, const struct pw_node_info *info)
switch (info->params[i].id) { switch (info->params[i].id) {
case SPA_PARAM_PropInfo: case SPA_PARAM_PropInfo:
case SPA_PARAM_Props: case SPA_PARAM_Props:
pw_node_for_each_param(impl->node, pw_impl_node_for_each_param(impl->node,
0, info->params[i].id, 0, info->params[i].id,
0, UINT32_MAX, 0, UINT32_MAX,
NULL, NULL,
@ -993,8 +993,8 @@ static void node_event_info(void *object, const struct pw_node_info *info)
} }
} }
static const struct pw_node_events node_events = { static const struct pw_impl_node_events node_events = {
PW_VERSION_NODE_EVENTS, PW_VERSION_IMPL_NODE_EVENTS,
.info_changed = node_event_info, .info_changed = node_event_info,
}; };
@ -1238,7 +1238,7 @@ int pw_stream_update_properties(struct pw_stream *stream, const struct spa_dict
return 0; return 0;
if (impl->node) if (impl->node)
res = pw_node_update_properties(impl->node, dict); res = pw_impl_node_update_properties(impl->node, dict);
return res; return res;
} }
@ -1320,7 +1320,7 @@ pw_stream_connect(struct pw_stream *stream,
struct stream *impl = SPA_CONTAINER_OF(stream, struct stream, this); struct stream *impl = SPA_CONTAINER_OF(stream, struct stream, this);
struct pw_impl_factory *factory; struct pw_impl_factory *factory;
struct pw_properties *props; struct pw_properties *props;
struct pw_node *slave; struct pw_impl_node *slave;
const char *str; const char *str;
uint32_t i; uint32_t i;
int res; int res;
@ -1406,16 +1406,16 @@ pw_stream_connect(struct pw_stream *stream,
pw_properties_set(props, "resample.peaks", "1"); pw_properties_set(props, "resample.peaks", "1");
} }
slave = pw_node_new(impl->context, pw_properties_copy(props), 0); slave = pw_impl_node_new(impl->context, pw_properties_copy(props), 0);
if (slave == NULL) { if (slave == NULL) {
res = -errno; res = -errno;
goto error_node; goto error_node;
} }
pw_node_set_implementation(slave, &impl->impl_node); pw_impl_node_set_implementation(slave, &impl->impl_node);
if (!SPA_FLAG_IS_SET(impl->flags, PW_STREAM_FLAG_INACTIVE)) if (!SPA_FLAG_IS_SET(impl->flags, PW_STREAM_FLAG_INACTIVE))
pw_node_set_active(slave, true); pw_impl_node_set_active(slave, true);
if (impl->media_type == SPA_MEDIA_TYPE_audio && if (impl->media_type == SPA_MEDIA_TYPE_audio &&
impl->media_subtype == SPA_MEDIA_SUBTYPE_raw) { impl->media_subtype == SPA_MEDIA_SUBTYPE_raw) {
@ -1451,7 +1451,7 @@ pw_stream_connect(struct pw_stream *stream,
pw_proxy_add_listener(stream->proxy, &stream->proxy_listener, &proxy_events, stream); pw_proxy_add_listener(stream->proxy, &stream->proxy_listener, &proxy_events, stream);
pw_node_add_listener(impl->node, &stream->node_listener, &node_events, stream); pw_impl_node_add_listener(impl->node, &stream->node_listener, &node_events, stream);
return 0; return 0;
@ -1481,13 +1481,13 @@ int pw_stream_disconnect(struct pw_stream *stream)
impl->disconnecting = true; impl->disconnecting = true;
if (impl->node) if (impl->node)
pw_node_set_active(impl->node, false); pw_impl_node_set_active(impl->node, false);
if (stream->proxy) if (stream->proxy)
pw_proxy_destroy(stream->proxy); pw_proxy_destroy(stream->proxy);
if (impl->node) { if (impl->node) {
pw_node_destroy(impl->node); pw_impl_node_destroy(impl->node);
impl->node = NULL; impl->node = NULL;
} }
if (impl->free_proxy) { if (impl->free_proxy) {
@ -1583,7 +1583,7 @@ int pw_stream_set_control(struct pw_stream *stream, uint32_t id, uint32_t n_valu
} }
pod = spa_pod_builder_pop(&b, &f[0]); pod = spa_pod_builder_pop(&b, &f[0]);
pw_node_set_param(impl->node, SPA_PARAM_Props, 0, pod); pw_impl_node_set_param(impl->node, SPA_PARAM_Props, 0, pod);
return 0; return 0;
} }
@ -1608,7 +1608,7 @@ int pw_stream_set_active(struct pw_stream *stream, bool active)
struct stream *impl = SPA_CONTAINER_OF(stream, struct stream, this); struct stream *impl = SPA_CONTAINER_OF(stream, struct stream, this);
pw_log_debug(NAME" %p: active:%d", stream, active); pw_log_debug(NAME" %p: active:%d", stream, active);
if (impl->node) if (impl->node)
pw_node_set_active(impl->node, active); pw_impl_node_set_active(impl->node, active);
return 0; return 0;
} }