spa: add result type

We need this to know the type of result, especially when serializing.
This commit is contained in:
Wim Taymans 2019-05-28 13:59:48 +02:00
parent c767ce62c9
commit 857b2a0cfb
33 changed files with 110 additions and 73 deletions

View file

@ -416,7 +416,7 @@ static int impl_node_enum_params(void *object, int seq,
continue;
pw_log_debug("client-node %p: %d param %u", this, seq, result.index);
spa_node_emit_result(&this->hooks, seq, 0, &result);
spa_node_emit_result(&this->hooks, seq, 0, SPA_RESULT_TYPE_NODE_PARAMS, &result);
if (++count == num)
break;
@ -706,7 +706,7 @@ impl_node_port_enum_params(void *object, int seq,
continue;
pw_log_debug("client-node %p: %d param %u", this, seq, result.index);
spa_node_emit_result(&this->hooks, seq, 0, &result);
spa_node_emit_result(&this->hooks, seq, 0, SPA_RESULT_TYPE_NODE_PARAMS, &result);
if (++count == num)
break;
@ -1245,7 +1245,7 @@ static void client_node_resource_error(void *data, int seq, int res, const char
pw_log_error("client-node %p: error seq:%d %d (%s)", this, seq, res, message);
result.message = message;
spa_node_emit_result(&this->hooks, seq, res, &result);
spa_node_emit_result(&this->hooks, seq, res, SPA_RESULT_TYPE_NODE_ERROR, &result);
}
static void client_node_resource_pong(void *data, int seq)
@ -1254,7 +1254,7 @@ static void client_node_resource_pong(void *data, int seq)
struct node *this = &impl->node;
pw_log_debug("client-node %p: got pong, emit result %d", this, seq);
spa_node_emit_result(&this->hooks, seq, 0, NULL);
spa_node_emit_result(&this->hooks, seq, 0, 0, NULL);
}
void pw_client_node_registered(struct pw_client_node *this, struct pw_global *global)

View file

@ -167,7 +167,7 @@ static int impl_node_enum_params(void *object, int seq,
if (spa_pod_filter(&b, &result.param, param, filter) < 0)
goto next;
spa_node_emit_result(&this->hooks, seq, 0, &result);
spa_node_emit_result(&this->hooks, seq, 0, SPA_RESULT_TYPE_NODE_PARAMS, &result);
if (++count != num)
goto next;
@ -325,12 +325,12 @@ static void adapter_port_info(void *data,
}
}
static void adapter_result(void *data, int seq, int res, const void *result)
static void adapter_result(void *data, int seq, int res, uint32_t type, const void *result)
{
struct impl *impl = data;
struct node *this = &impl->node;
pw_log_debug("%p: result %d %d", this, seq, res);
spa_node_emit_result(&this->hooks, seq, res, result);
spa_node_emit_result(&this->hooks, seq, res, type, result);
}
static const struct spa_node_events adapter_node_events = {
@ -1144,12 +1144,12 @@ static void client_node_free(void *data)
cleanup(impl);
}
static void client_node_result(void *data, int seq, int res, const void *result)
static void client_node_result(void *data, int seq, int res, uint32_t type, const void *result)
{
struct impl *impl = data;
struct node *node = &impl->node;
pw_log_debug("client-stream %p: result %d %d", &impl->this, seq, res);
spa_node_emit_result(&node->hooks, seq, res, result);
spa_node_emit_result(&node->hooks, seq, res, type, result);
}
static void client_node_active_changed(void *data, bool active)