mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-04-25 06:46:40 -04:00
add per type API defines
This commit is contained in:
parent
b03f2f7afa
commit
31802d4994
85 changed files with 1137 additions and 509 deletions
|
|
@ -25,6 +25,15 @@ extern "C" {
|
|||
#include <spa/node/node.h>
|
||||
#include <spa/node/io.h>
|
||||
|
||||
#ifndef SPA_API_GRAPH
|
||||
#ifdef SPA_API_IMPL
|
||||
#define SPA_API_GRAPH SPA_API_IMPL
|
||||
#else
|
||||
#define SPA_API_GRAPH static inline
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef spa_debug
|
||||
#define spa_debug(...)
|
||||
#endif
|
||||
|
|
@ -40,7 +49,7 @@ struct spa_graph_state {
|
|||
int32_t pending; /**< number of pending signals */
|
||||
};
|
||||
|
||||
SPA_API_IMPL void spa_graph_state_reset(struct spa_graph_state *state)
|
||||
SPA_API_GRAPH void spa_graph_state_reset(struct spa_graph_state *state)
|
||||
{
|
||||
state->pending = state->required;
|
||||
}
|
||||
|
|
@ -56,7 +65,7 @@ struct spa_graph_link {
|
|||
|
||||
#define spa_graph_state_dec(s) (SPA_ATOMIC_DEC(s->pending) == 0)
|
||||
|
||||
SPA_API_IMPL int spa_graph_link_trigger(struct spa_graph_link *link)
|
||||
SPA_API_GRAPH int spa_graph_link_trigger(struct spa_graph_link *link)
|
||||
{
|
||||
struct spa_graph_state *state = link->state;
|
||||
|
||||
|
|
@ -118,7 +127,7 @@ struct spa_graph_port {
|
|||
struct spa_graph_port *peer; /**< peer */
|
||||
};
|
||||
|
||||
SPA_API_IMPL int spa_graph_node_trigger(struct spa_graph_node *node)
|
||||
SPA_API_GRAPH int spa_graph_node_trigger(struct spa_graph_node *node)
|
||||
{
|
||||
struct spa_graph_link *l;
|
||||
spa_debug("node %p trigger", node);
|
||||
|
|
@ -127,7 +136,7 @@ SPA_API_IMPL int spa_graph_node_trigger(struct spa_graph_node *node)
|
|||
return 0;
|
||||
}
|
||||
|
||||
SPA_API_IMPL int spa_graph_run(struct spa_graph *graph)
|
||||
SPA_API_GRAPH int spa_graph_run(struct spa_graph *graph)
|
||||
{
|
||||
struct spa_graph_node *n, *t;
|
||||
struct spa_list pending;
|
||||
|
|
@ -152,27 +161,27 @@ SPA_API_IMPL int spa_graph_run(struct spa_graph *graph)
|
|||
return 0;
|
||||
}
|
||||
|
||||
SPA_API_IMPL int spa_graph_finish(struct spa_graph *graph)
|
||||
SPA_API_GRAPH int spa_graph_finish(struct spa_graph *graph)
|
||||
{
|
||||
spa_debug("graph %p finish", graph);
|
||||
if (graph->parent)
|
||||
return spa_graph_node_trigger(graph->parent);
|
||||
return 0;
|
||||
}
|
||||
SPA_API_IMPL int spa_graph_link_signal_node(void *data)
|
||||
SPA_API_GRAPH int spa_graph_link_signal_node(void *data)
|
||||
{
|
||||
struct spa_graph_node *node = (struct spa_graph_node *)data;
|
||||
spa_debug("node %p call process", node);
|
||||
return spa_graph_node_process(node);
|
||||
}
|
||||
|
||||
SPA_API_IMPL int spa_graph_link_signal_graph(void *data)
|
||||
SPA_API_GRAPH int spa_graph_link_signal_graph(void *data)
|
||||
{
|
||||
struct spa_graph_node *node = (struct spa_graph_node *)data;
|
||||
return spa_graph_finish(node->graph);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void spa_graph_init(struct spa_graph *graph, struct spa_graph_state *state)
|
||||
SPA_API_GRAPH void spa_graph_init(struct spa_graph *graph, struct spa_graph_state *state)
|
||||
{
|
||||
spa_list_init(&graph->nodes);
|
||||
graph->flags = 0;
|
||||
|
|
@ -180,7 +189,7 @@ SPA_API_IMPL void spa_graph_init(struct spa_graph *graph, struct spa_graph_state
|
|||
spa_debug("graph %p init state %p", graph, state);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_link_add(struct spa_graph_node *out,
|
||||
struct spa_graph_state *state,
|
||||
struct spa_graph_link *link)
|
||||
|
|
@ -191,14 +200,14 @@ spa_graph_link_add(struct spa_graph_node *out,
|
|||
spa_list_append(&out->links, &link->link);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void spa_graph_link_remove(struct spa_graph_link *link)
|
||||
SPA_API_GRAPH void spa_graph_link_remove(struct spa_graph_link *link)
|
||||
{
|
||||
link->state->required--;
|
||||
spa_debug("link %p state %p remove %d", link, link->state, link->state->required);
|
||||
spa_list_remove(&link->link);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_node_init(struct spa_graph_node *node, struct spa_graph_state *state)
|
||||
{
|
||||
spa_list_init(&node->ports[SPA_DIRECTION_INPUT]);
|
||||
|
|
@ -215,7 +224,7 @@ spa_graph_node_init(struct spa_graph_node *node, struct spa_graph_state *state)
|
|||
}
|
||||
|
||||
|
||||
SPA_API_IMPL int spa_graph_node_impl_sub_process(void *data SPA_UNUSED, struct spa_graph_node *node)
|
||||
SPA_API_GRAPH int spa_graph_node_impl_sub_process(void *data SPA_UNUSED, struct spa_graph_node *node)
|
||||
{
|
||||
struct spa_graph *graph = node->subgraph;
|
||||
spa_debug("node %p: sub process %p", node, graph);
|
||||
|
|
@ -227,7 +236,7 @@ static const struct spa_graph_node_callbacks spa_graph_node_sub_impl_default = {
|
|||
.process = spa_graph_node_impl_sub_process,
|
||||
};
|
||||
|
||||
SPA_API_IMPL void spa_graph_node_set_subgraph(struct spa_graph_node *node,
|
||||
SPA_API_GRAPH void spa_graph_node_set_subgraph(struct spa_graph_node *node,
|
||||
struct spa_graph *subgraph)
|
||||
{
|
||||
node->subgraph = subgraph;
|
||||
|
|
@ -235,7 +244,7 @@ SPA_API_IMPL void spa_graph_node_set_subgraph(struct spa_graph_node *node,
|
|||
spa_debug("node %p set subgraph %p", node, subgraph);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_node_set_callbacks(struct spa_graph_node *node,
|
||||
const struct spa_graph_node_callbacks *callbacks,
|
||||
void *data)
|
||||
|
|
@ -243,7 +252,7 @@ spa_graph_node_set_callbacks(struct spa_graph_node *node,
|
|||
node->callbacks = SPA_CALLBACKS_INIT(callbacks, data);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_node_add(struct spa_graph *graph,
|
||||
struct spa_graph_node *node)
|
||||
{
|
||||
|
|
@ -255,7 +264,7 @@ spa_graph_node_add(struct spa_graph *graph,
|
|||
spa_graph_link_add(node, graph->state, &node->graph_link);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void spa_graph_node_remove(struct spa_graph_node *node)
|
||||
SPA_API_GRAPH void spa_graph_node_remove(struct spa_graph_node *node)
|
||||
{
|
||||
spa_debug("node %p remove from graph %p, state %p required %d",
|
||||
node, node->graph, node->state, node->state->required);
|
||||
|
|
@ -265,7 +274,7 @@ SPA_API_IMPL void spa_graph_node_remove(struct spa_graph_node *node)
|
|||
}
|
||||
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_port_init(struct spa_graph_port *port,
|
||||
enum spa_direction direction,
|
||||
uint32_t port_id,
|
||||
|
|
@ -277,7 +286,7 @@ spa_graph_port_init(struct spa_graph_port *port,
|
|||
port->flags = flags;
|
||||
}
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_port_add(struct spa_graph_node *node,
|
||||
struct spa_graph_port *port)
|
||||
{
|
||||
|
|
@ -286,13 +295,13 @@ spa_graph_port_add(struct spa_graph_node *node,
|
|||
spa_list_append(&node->ports[port->direction], &port->link);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void spa_graph_port_remove(struct spa_graph_port *port)
|
||||
SPA_API_GRAPH void spa_graph_port_remove(struct spa_graph_port *port)
|
||||
{
|
||||
spa_debug("port %p remove", port);
|
||||
spa_list_remove(&port->link);
|
||||
}
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_port_link(struct spa_graph_port *out, struct spa_graph_port *in)
|
||||
{
|
||||
spa_debug("port %p link to %p %p %p", out, in, in->node, in->node->state);
|
||||
|
|
@ -300,7 +309,7 @@ spa_graph_port_link(struct spa_graph_port *out, struct spa_graph_port *in)
|
|||
in->peer = out;
|
||||
}
|
||||
|
||||
SPA_API_IMPL void
|
||||
SPA_API_GRAPH void
|
||||
spa_graph_port_unlink(struct spa_graph_port *port)
|
||||
{
|
||||
spa_debug("port %p unlink from %p", port, port->peer);
|
||||
|
|
@ -310,7 +319,7 @@ spa_graph_port_unlink(struct spa_graph_port *port)
|
|||
}
|
||||
}
|
||||
|
||||
SPA_API_IMPL int spa_graph_node_impl_process(void *data, struct spa_graph_node *node)
|
||||
SPA_API_GRAPH int spa_graph_node_impl_process(void *data, struct spa_graph_node *node)
|
||||
{
|
||||
struct spa_node *n = (struct spa_node *)data;
|
||||
struct spa_graph_state *state = node->state;
|
||||
|
|
@ -322,7 +331,7 @@ SPA_API_IMPL int spa_graph_node_impl_process(void *data, struct spa_graph_node *
|
|||
return state->status;
|
||||
}
|
||||
|
||||
SPA_API_IMPL int spa_graph_node_impl_reuse_buffer(void *data, struct spa_graph_node *node SPA_UNUSED,
|
||||
SPA_API_GRAPH int spa_graph_node_impl_reuse_buffer(void *data, struct spa_graph_node *node SPA_UNUSED,
|
||||
uint32_t port_id, uint32_t buffer_id)
|
||||
{
|
||||
struct spa_node *n = (struct spa_node *)data;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue