}
void speaker_setup(ev_source *ev) {
- int sp[2], lfd;
+ int sp[2];
pid_t pid;
struct speaker_message sm;
if(socketpair(PF_UNIX, SOCK_DGRAM, 0, sp) < 0)
fatal(errno, "error calling socketpair");
- if(!isatty(2))
- lfd = logfd(ev, SPEAKER);
- else
- lfd = -1;
if(!(pid = xfork())) {
exitfn = _exit;
ev_signal_atfork(ev);
xdup2(sp[0], 1);
xclose(sp[0]);
xclose(sp[1]);
- if(lfd != -1) {
- xdup2(lfd, 2);
- xclose(lfd);
- }
signal(SIGPIPE, SIG_DFL);
#if 0
execlp("valgrind", "valgrind", SPEAKER, "--config", configfile,
- debugging ? "--debug" : "--no-debug", (char *)0);
+ debugging ? "--debug" : "--no-debug",
+ log_default == &log_syslog ? "--syslog" : "--no-syslog",
+ (char *)0);
#else
execlp(SPEAKER, SPEAKER, "--config", configfile,
- debugging ? "--debug" : "--no-debug", (char *)0);
+ debugging ? "--debug" : "--no-debug",
+ log_default == &log_syslog ? "--syslog" : "--no-syslog",
+ (char *)0);
#endif
fatal(errno, "error invoking %s", SPEAKER);
}
/* Wait for the speaker to be ready */
speaker_recv(speaker_fd, &sm);
nonblock(speaker_fd);
- ev_fd(ev, ev_read, speaker_fd, speaker_readable, 0);
+ ev_fd(ev, ev_read, speaker_fd, speaker_readable, 0, "speaker read");
}
void speaker_reload(void) {
}
/* Return values from start() */
-#define START_OK 0 /* Succeeded. */
-#define START_HARDFAIL 1 /* Track is broken. */
-#define START_SOFTFAIL 2 /* Track OK, system (temporarily?) broken */
+#define START_OK 0 /**< @brief Succeeded. */
+#define START_HARDFAIL 1 /**< @brief Track is broken. */
+#define START_SOFTFAIL 2 /**< @brief Track OK, system (temporarily?) broken */
/** @brief Play or prepare @p q
* @param ev Event loop
* @param q Track to play/prepare
* @param prepare_only If true, only prepares track
- * @return @ref START_OK, @ref START_HARDFAIL or @ref START_SOFTFTAIL
+ * @return @ref START_OK, @ref START_HARDFAIL or @ref START_SOFTFAIL
*/
static int start(ev_source *ev,
struct queue_entry *q,
speaker_send(speaker_fd, &sm);
D(("sent SM_PLAY for %s", sm.id));
}
- execlp("disorder-normalize", "disorder-normalize", (char *)0);
+ /* TODO stderr shouldn't be redirected for disorder-normalize
+ * (but it should be for play_track() */
+ execlp("disorder-normalize", "disorder-normalize",
+ log_default == &log_syslog ? "--syslog" : "--no-syslog",
+ (char *)0);
fatal(errno, "executing disorder-normalize");
/* end of the innermost fork */
}