builder: make methods to save and restore state

This commit is contained in:
Wim Taymans 2017-11-13 12:30:48 +01:00
parent 737b428077
commit cd5e697e9f
20 changed files with 120 additions and 112 deletions

View file

@ -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;

View file

@ -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;