diff --git a/src/modules/module-client-node/remote-node.c b/src/modules/module-client-node/remote-node.c index b01bab431..a7c8edbec 100644 --- a/src/modules/module-client-node/remote-node.c +++ b/src/modules/module-client-node/remote-node.c @@ -511,7 +511,9 @@ static int client_node_command(void *object, const struct spa_command *command) pw_proxy_error(proxy, res, "suspend failed"); } break; - + case SPA_NODE_COMMAND_RequestProcess: + res = pw_impl_node_send_command(data->node, command); + break; default: pw_log_warn("unhandled node command %d", SPA_NODE_COMMAND_ID(command)); res = -ENOTSUP; diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c index 3676a1011..94bbf2403 100644 --- a/src/pipewire/impl-node.c +++ b/src/pipewire/impl-node.c @@ -1437,8 +1437,15 @@ static void node_event(void *data, const struct spa_event *event) node_update_state(node, PW_NODE_STATE_ERROR, -EFAULT, strdup("Received error event")); break; + case SPA_NODE_EVENT_RequestProcess: + pw_log_debug("request process"); + if (!node->driving) { + pw_impl_node_send_command(node->driver_node, + &SPA_NODE_COMMAND_INIT(SPA_NODE_COMMAND_RequestProcess)); + } + break; default: - pw_log_debug("unhandled event"); + pw_log_debug("unhandled event %d", SPA_NODE_EVENT_ID(event)); break; } pw_impl_node_emit_event(node, event);