From 34dada9c4cc8242a73963f7df6d517f2ea945b64 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 1 Jun 2020 18:14:53 +0200 Subject: [PATCH] media-session: install ctrl-C handler ..so that we can clean up. --- src/examples/media-session/media-session.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/examples/media-session/media-session.c b/src/examples/media-session/media-session.c index 578d17bed..829fdefd5 100644 --- a/src/examples/media-session/media-session.c +++ b/src/examples/media-session/media-session.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "config.h" @@ -1637,7 +1638,7 @@ static void core_error(void *data, uint32_t id, int seq, int res, const char *me pw_log_error("error id:%u seq:%d res:%d (%s): %s", id, seq, res, spa_strerror(res), message); - if (id == 0) { + if (id == PW_ID_CORE) { if (res == -EPIPE) pw_main_loop_quit(impl->loop); } @@ -1691,6 +1692,8 @@ static void session_shutdown(struct impl *impl) { struct sm_object *obj; + pw_log_info(NAME" %p", impl); + spa_list_for_each(obj, &impl->global_list, link) sm_media_session_emit_remove(impl, obj); @@ -1706,6 +1709,13 @@ static void session_shutdown(struct impl *impl) pw_core_info_free(impl->this.info); } +static void do_quit(void *data, int signal_number) +{ + struct impl *impl = data; + pw_main_loop_quit(impl->loop); +} + + #define DEFAULT_ENABLED "alsa-pcm,alsa-seq,v4l2,bluez5,metadata,suspend-node,policy-node" #define DEFAULT_DISABLED "" @@ -1815,6 +1825,10 @@ int main(int argc, char *argv[]) if (impl.loop == NULL) return -1; impl.this.loop = pw_main_loop_get_loop(impl.loop); + + pw_loop_add_signal(impl.this.loop, SIGINT, do_quit, &impl); + pw_loop_add_signal(impl.this.loop, SIGTERM, do_quit, &impl); + impl.this.context = pw_context_new(impl.this.loop, NULL, 0); if (impl.this.context == NULL) return -1;