aboutsummaryrefslogtreecommitdiff
path: root/paswitch.c
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2021-11-07 14:45:56 +0100
committerPřemysl Eric Janouch <p@janouch.name>2021-11-07 14:45:56 +0100
commit67bd22c154ccc6d32ebc0d9adcb16b4ebb33e452 (patch)
tree663b71521e8ecffde59306c5ff4f638884d19502 /paswitch.c
parent931ae4f82f5e1f5e6405f2a44018c36a1489f930 (diff)
downloaddesktop-tools-67bd22c154ccc6d32ebc0d9adcb16b4ebb33e452.tar.gz
desktop-tools-67bd22c154ccc6d32ebc0d9adcb16b4ebb33e452.tar.xz
desktop-tools-67bd22c154ccc6d32ebc0d9adcb16b4ebb33e452.zip
poller-pa.c: abandon the idea of quitting the loop
There are no users of this API in practice, and it prevents making the libpulse dependency optional.
Diffstat (limited to 'paswitch.c')
-rw-r--r--paswitch.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/paswitch.c b/paswitch.c
index b43fc00..ba7ffc8 100644
--- a/paswitch.c
+++ b/paswitch.c
@@ -143,6 +143,7 @@ struct app_context
struct poller_timer tty_timer; ///< Terminal input timeout
struct str tty_input_buffer; ///< Buffered terminal input
+ bool quitting; ///< Quitting requested
pa_mainloop_api *api; ///< PulseAudio event loop proxy
pa_context *context; ///< PulseAudio connection context
@@ -683,7 +684,7 @@ on_action (struct app_context *ctx, enum action action)
break;
case ACTION_QUIT:
- poller_pa_quit (ctx->api, 0);
+ ctx->quitting = true;
case ACTION_NONE:
break;
}
@@ -910,7 +911,7 @@ on_signal_pipe_readable (const struct pollfd *pfd, struct app_context *ctx)
(void) read (pfd->fd, &id, 1);
if (id == SIGINT || id == SIGTERM || id == SIGHUP)
- poller_pa_quit (ctx->api, 0);
+ ctx->quitting = true;
else if (id == SIGWINCH)
poller_idle_set (&ctx->redraw_event);
else
@@ -1068,7 +1069,9 @@ main (int argc, char *argv[])
poller_timer_init_and_set (&ctx.make_context, &ctx.poller,
on_make_context, &ctx);
- int status = poller_pa_run (ctx.api);
+ while (!ctx.quitting)
+ poller_run (&ctx.poller);
+
app_context_free (&ctx);
- return status;
+ return 0;
}