s->fci->error = 1;
}
+static void set_restart_barrier(int format, struct timeval *now)
+{
+ struct timeval tmp;
+
+ if (now)
+ tmp = *now;
+ else
+ gettimeofday(&tmp, NULL);
+ tv_add(&tmp, &restart_delay, &afi[format].restart_barrier);
+}
+
static void close_receiver(int slot_num)
{
struct slot_info *s = &slot[slot_num];
a->receiver->close(s->receiver_node);
free(s->receiver_node);
s->receiver_node = NULL;
- gettimeofday(&now, NULL);
- tv_add(&now, &restart_delay, &a->restart_barrier); /* FIXME: Use set_restart_barrier() */
+ set_restart_barrier(s->format, NULL);
}
static void kill_all_decoders(void)
}
}
-static void set_restart_barrier(int format, struct timeval *now)
-{
- struct timeval tmp;
-
- if (now)
- tmp = *now;
- else
- gettimeofday(&tmp, NULL);
- tv_add(&tmp, &restart_delay, &afi[format].restart_barrier);
-}
-
static void check_sigchld(void)
{
pid_t pid;
stat_pipe = -1;
kill_all_decoders();
for (i = 0; i < RINGBUFFER_SIZE; i++)
- ringbuffer_add(stat_item_ringbuf, para_strdup(NULL));
+ free(ringbuffer_add(stat_item_ringbuf, para_strdup(NULL)));
dump_empty_status();
length_seconds = 0;
offset_seconds = 0;
playing = 0;
msg = make_message("%s:no connection to para_server\n",
status_item_list[SI_STATUS_BAR]);
- ringbuffer_add(stat_item_ringbuf, msg);
+ free(ringbuffer_add(stat_item_ringbuf, msg));
stat_client_write(msg);
- free(msg);
}
static void __noreturn clean_exit(int status, const char *msg)
if (!line)
return;
- ringbuffer_add(stat_item_ringbuf, line);
+ free(ringbuffer_add(stat_item_ringbuf, para_strdup(line)));
stat_client_write(line);
itemnum = stat_line_valid(line);
if (itemnum < 0)
buf = &rn->buf;
len = &rn->loaded;
}
- PARA_DEBUG_LOG("writing %p (%d bytes)\n", *buf, *len);
+ PARA_DEBUG_LOG("writing %p (%zd bytes)\n", *buf, *len);
rv = write(s->write_fd, *buf, *len);
- PARA_DEBUG_LOG("wrote %d/%d\n", rv, *len);
+ PARA_DEBUG_LOG("wrote %d/%zd\n", rv, *len);
if (rv < 0) {
PARA_WARNING_LOG("write error in slot %d (fd %d): %s\n",
slot_num, s->write_fd, strerror(errno));
*len = 0;
s->fci->error = E_WRITE_AUDIO_DATA;
} else if (rv != *len) {
- PARA_DEBUG_LOG("partial %s write (%i/%i) for slot %d\n",
+ PARA_DEBUG_LOG("partial %s write (%i/%zd) for slot %d\n",
audio_formats[s->format], rv, *len, slot_num);
*len -= rv;
memmove(*buf, *buf + rv, *len);
} else {
status_buf[ret + sbo] = '\0';
sbo = for_each_line(status_buf, ret + sbo,
- &check_stat_line, 0);
+ &check_stat_line);
}
}
slot_io(&wfds);