more small audiod cleanups.
[paraslash.git] / audiod.c
index bd7bb5b1ac704357e3639ebbe4716bf495797404..db94369c1e5eb036ee9f2557ca07a2edc6b49161 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -494,18 +494,6 @@ static void kill_all_decoders(void)
        }
 }
 
        }
 }
 
-static void check_sigchld(void)
-{
-       pid_t pid;
-
-reap_next_child:
-       pid = para_reap_child();
-       if (pid <= 0)
-               return;
-       PARA_CRIT_LOG("para_client died (pid %d)\n", pid);
-       goto reap_next_child;
-}
-
 static int get_empty_slot(void)
 {
        int i;
 static int get_empty_slot(void)
 {
        int i;
@@ -517,11 +505,7 @@ static int get_empty_slot(void)
                        clear_slot(i);
                        return i;
                }
                        clear_slot(i);
                        return i;
                }
-               if (s->wng)
-                       continue;
-               if (s->receiver_node)
-                       continue;
-               if (s->fc)
+               if (s->wng || s->receiver_node || s->fc)
                        continue;
                clear_slot(i);
                return i;
                        continue;
                clear_slot(i);
                return i;
@@ -564,7 +548,8 @@ static void close_stat_pipe(void)
        offset_seconds = 0;
        audiod_status_dump();
        playing = 0;
        offset_seconds = 0;
        audiod_status_dump();
        playing = 0;
-       stat_item_values[SI_STATUS_BAR] = make_message("%s:no connection to para_server\n",
+       stat_item_values[SI_STATUS_BAR] = make_message(
+               "%s:no connection to para_server\n",
                status_item_list[SI_STATUS_BAR]);
        stat_client_write(stat_item_values[SI_STATUS_BAR], SI_STATUS_BAR);
 }
                status_item_list[SI_STATUS_BAR]);
        stat_client_write(stat_item_values[SI_STATUS_BAR], SI_STATUS_BAR);
 }
@@ -580,13 +565,21 @@ static void __noreturn clean_exit(int status, const char *msg)
        exit(status);
 }
 
        exit(status);
 }
 
-/** get the number of filters for the given audio format */
+/**
+ * get the number of filters
+ *
+ * \param audio_format_num the number identifying the audio format
+ *
+ * \return the number of filters for the given audio format
+ *
+ * \sa struct filter;
+ */
 int num_filters(int audio_format_num)
 {
        return afi[audio_format_num].num_filters;
 }
 
 int num_filters(int audio_format_num)
 {
        return afi[audio_format_num].num_filters;
 }
 
-void filter_event_handler(struct task *t)
+static void filter_event_handler(struct task *t)
 {
        PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret));
        unregister_task(t);
 {
        PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret));
        unregister_task(t);
@@ -708,7 +701,7 @@ static void open_writer(int slot_num)
        activate_inactive_grab_clients(slot_num, s->format, &s->fc->filters);
 }
 
        activate_inactive_grab_clients(slot_num, s->format, &s->fc->filters);
 }
 
-void rn_event_handler(struct task *t)
+static void rn_event_handler(struct task *t)
 {
 //     struct receiver_node *rn = t->private_data;
        PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret));
 {
 //     struct receiver_node *rn = t->private_data;
        PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret));
@@ -865,7 +858,12 @@ static void handle_signal(int sig)
 {
        switch (sig) {
        case SIGCHLD:
 {
        switch (sig) {
        case SIGCHLD:
-               return check_sigchld();
+               for (;;) {
+                       pid_t pid = para_reap_child();
+                       if (pid <= 0)
+                               return;
+                       PARA_CRIT_LOG("para_client died (pid %d)\n", pid);
+               }
        case SIGINT:
        case SIGTERM:
        case SIGHUP:
        case SIGINT:
        case SIGTERM:
        case SIGHUP:
@@ -1111,6 +1109,7 @@ out:
        free(cmd);
        return ret;
 }
        free(cmd);
        return ret;
 }
+
 static int init_filters(void)
 {
        int i, ret, nf;
 static int init_filters(void)
 {
        int i, ret, nf;
@@ -1533,7 +1532,7 @@ static void command_post_select(struct sched *s, struct task *t)
                PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
 }
 
                PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
 }
 
-void init_command_task(struct command_task *ct)
+static void init_command_task(struct command_task *ct)
 {
        ct->task.pre_select = command_pre_select;
        ct->task.post_select = command_post_select;
 {
        ct->task.pre_select = command_pre_select;
        ct->task.post_select = command_post_select;