node: improve states

Only change state when different
This commit is contained in:
Wim Taymans 2018-07-02 12:11:05 +02:00
parent f5cf90ccd1
commit 6b10b0784f

View file

@ -1021,6 +1021,9 @@ int pw_node_set_state(struct pw_node *node, enum pw_node_state state)
int res = 0;
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
if (node->info.state == state)
return 0;
spa_hook_list_call(&node->listener_list, struct pw_node_events, state_request, state);
pw_log_debug("node %p: set state %s", node, pw_node_state_as_string(state));
@ -1072,10 +1075,11 @@ void pw_node_update_state(struct pw_node *node, enum pw_node_state state, char *
{
struct impl *impl = SPA_CONTAINER_OF(node, struct impl, this);
enum pw_node_state old;
struct pw_resource *resource;
old = node->info.state;
if (old != state) {
struct pw_resource *resource;
if (old == state)
return;
pw_log_debug("node %p: update state from %s -> %s", node,
pw_node_state_as_string(old), pw_node_state_as_string(state));
@ -1103,7 +1107,6 @@ void pw_node_update_state(struct pw_node *node, enum pw_node_state state, char *
node->info.change_mask = 0;
}
}
int pw_node_set_active(struct pw_node *node, bool active)
{