mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-17 08:56:49 -05:00
builder: make methods to save and restore state
This commit is contained in:
parent
737b428077
commit
cd5e697e9f
20 changed files with 120 additions and 112 deletions
|
|
@ -51,7 +51,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
struct state *this;
|
||||
struct type *t;
|
||||
struct spa_pod *param;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
spa_return_val_if_fail(index != NULL, -EINVAL);
|
||||
|
|
@ -60,7 +60,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct state, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -92,7 +92,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -281,7 +281,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
struct state *this;
|
||||
struct type *t;
|
||||
struct spa_pod *param;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
spa_return_val_if_fail(index != NULL, -EINVAL);
|
||||
|
|
@ -292,8 +292,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
spa_return_val_if_fail(CHECK_PORT(this, direction, port_id), -EINVAL);
|
||||
|
||||
offset = builder->offset;
|
||||
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -375,7 +374,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
struct state *this;
|
||||
struct type *t;
|
||||
struct spa_pod *param;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
spa_return_val_if_fail(index != NULL, -EINVAL);
|
||||
|
|
@ -59,7 +59,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct state, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -89,7 +89,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -330,7 +330,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
struct state *this;
|
||||
struct type *t;
|
||||
struct spa_pod *param;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
int res;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -342,7 +342,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
spa_return_val_if_fail(CHECK_PORT(this, direction, port_id), -EINVAL);
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -398,7 +398,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -387,7 +387,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
struct type *t;
|
||||
struct port *port;
|
||||
struct spa_pod *param;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
int res;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -401,7 +401,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
port = GET_PORT(this, direction, port_id);
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -471,7 +471,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -184,7 +184,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -217,7 +217,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -577,7 +577,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
int res;
|
||||
|
||||
|
|
@ -590,7 +590,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
spa_return_val_if_fail(CHECK_PORT(this, direction, port_id), -EINVAL);
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -660,7 +660,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -275,11 +275,11 @@ spa_ffmpeg_dec_node_port_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
struct type *t = &this->type;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
int res;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -305,7 +305,7 @@ spa_ffmpeg_dec_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -271,11 +271,11 @@ spa_ffmpeg_enc_node_port_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
struct type *t = &this->type;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
int res;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -301,7 +301,7 @@ spa_ffmpeg_enc_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -144,7 +144,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -168,7 +168,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -468,7 +468,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
int res;
|
||||
|
||||
|
|
@ -481,7 +481,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
spa_return_val_if_fail(CHECK_PORT(this, direction, port_id), -EINVAL);
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -533,7 +533,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -151,7 +151,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -179,7 +179,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -483,7 +483,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
int res;
|
||||
|
||||
|
|
@ -496,7 +496,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
spa_return_val_if_fail(CHECK_PORT(this, direction, port_id), -EINVAL);
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -548,7 +548,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
struct impl *this;
|
||||
struct type *t;
|
||||
struct spa_pod *param;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
spa_return_val_if_fail(index != NULL, -EINVAL);
|
||||
|
|
@ -185,7 +185,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -212,7 +212,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -520,7 +520,7 @@ static int impl_node_port_enum_params(struct spa_node *node,
|
|||
struct port *port;
|
||||
struct type *t;
|
||||
struct spa_pod *param;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
int res;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -534,7 +534,7 @@ static int impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
port = &this->out_ports[port_id];
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -587,7 +587,7 @@ static int impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -158,8 +158,8 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod *param;
|
||||
struct spa_pod_builder_state state;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
spa_return_val_if_fail(builder != NULL, -EINVAL);
|
||||
|
|
@ -167,7 +167,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -196,7 +196,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -522,7 +522,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
int res;
|
||||
|
||||
|
|
@ -535,7 +535,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
spa_return_val_if_fail(CHECK_PORT(this, direction, port_id), -EINVAL);
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -595,7 +595,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
{
|
||||
struct impl *this;
|
||||
struct type *t;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
|
||||
spa_return_val_if_fail(node != NULL, -EINVAL);
|
||||
|
|
@ -155,7 +155,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
this = SPA_CONTAINER_OF(node, struct impl, node);
|
||||
t = &this->type;
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -182,7 +182,7 @@ static int impl_node_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
@ -392,7 +392,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
struct impl *this;
|
||||
struct type *t;
|
||||
struct port *port;
|
||||
uint32_t offset;
|
||||
struct spa_pod_builder_state state;
|
||||
struct spa_pod *param;
|
||||
int res;
|
||||
|
||||
|
|
@ -407,7 +407,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
port = GET_PORT(this, direction, port_id);
|
||||
|
||||
offset = builder->offset;
|
||||
spa_pod_builder_get_state(builder, &state);
|
||||
|
||||
next:
|
||||
if (id == t->param.idList) {
|
||||
|
|
@ -463,7 +463,7 @@ impl_node_port_enum_params(struct spa_node *node,
|
|||
|
||||
(*index)++;
|
||||
|
||||
spa_pod_builder_reset(builder, offset);
|
||||
spa_pod_builder_reset(builder, &state);
|
||||
if (spa_pod_filter(builder, param, (struct spa_pod*)filter) < 0)
|
||||
goto next;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue