diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c index d340fee0a..22865875d 100644 --- a/src/modules/module-loopback.c +++ b/src/modules/module-loopback.c @@ -180,6 +180,14 @@ static void stream_state_changed(void *data, enum pw_stream_state old, pw_stream_flush(impl->playback, false); pw_stream_flush(impl->capture, false); break; + case PW_STREAM_STATE_UNCONNECTED: + pw_log_info("module %p: unconnected", impl); + pw_impl_module_schedule_destroy(impl->module); + break; + case PW_STREAM_STATE_ERROR: + pw_log_error("module %p: error: %s", impl, error); + pw_impl_module_schedule_destroy(impl->module); + break; default: break; } @@ -211,7 +219,6 @@ static void playback_destroy(void *d) impl->playback = NULL; } - static void playback_param_changed(void *data, uint32_t id, const struct spa_pod *param) { struct impl *impl = data;