commit 946944db0c7e4c83a9842b6c8fc9870616d44364 from: Omar Polo date: Wed Feb 16 20:17:15 2022 UTC print debugging info on SIGINFO commit - 8ff9231f014b105cce3b220d9afede547f153d6e commit + 946944db0c7e4c83a9842b6c8fc9870616d44364 blob - fb8aab8c435d364c7c7a4bf64e6919e1d2bb6b71 blob + 1c24940ec5b8a99e1ee2315338d28155e7e8dcd4 --- amused.c +++ amused.c @@ -50,6 +50,7 @@ const char *argv0; pid_t player_pid; struct event ev_sigint; struct event ev_sigterm; +struct event ev_siginfo; enum amused_process { PROC_MAIN, @@ -80,6 +81,32 @@ main_shutdown(void) log_info("terminating"); exit(0); +} + +static void +main_status(void) +{ + const char *cur; + + switch (play_state) { + case STATE_STOPPED: + log_info("status: stopped"); + break; + case STATE_PLAYING: + log_info("status: playing"); + break; + case STATE_PAUSED: + log_info("status: paused"); + break; + default: + log_info("status: unknown"); + break; + } + + if ((cur = playlist_current()) != NULL) + log_info("playing %s", cur); + else + log_info("not playing anything"); } static void @@ -95,6 +122,9 @@ main_sig_handler(int sig, short event, void *arg) case SIGINT: main_shutdown(); break; + case SIGINFO: + main_status(); + break; default: fatalx("unexpected signal %d", sig); } @@ -222,9 +252,11 @@ amused_main(void) signal_set(&ev_sigint, SIGINT, main_sig_handler, NULL); signal_set(&ev_sigterm, SIGTERM, main_sig_handler, NULL); + signal_set(&ev_siginfo, SIGINFO, main_sig_handler, NULL); signal_add(&ev_sigint, NULL); signal_add(&ev_sigterm, NULL); + signal_add(&ev_siginfo, NULL); signal(SIGHUP, SIG_IGN); signal(SIGCHLD, SIG_IGN);