From 1bd07952245e3fc8ed95af0c1eff45938098b40b Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Sun, 12 Dec 2021 23:06:54 +0100 Subject: Added playback via libmpdclient --- util.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 17 deletions(-) (limited to 'util.c') diff --git a/util.c b/util.c index 675dc3c..b74d2a2 100644 --- a/util.c +++ b/util.c @@ -46,6 +46,52 @@ assert(int cond, const char *file, int line, const char *condstr) exit(1); } +char * +aprintf(const char *fmtstr, ...) +{ + va_list ap, cpy; + size_t size; + char *str; + + va_copy(cpy, ap); + + va_start(ap, fmtstr); + size = vsnprintf(NULL, 0, fmtstr, ap); + va_end(ap); + + str = malloc(size + 1); + ASSERT(str != NULL); + + va_start(cpy, fmtstr); + vsnprintf(str, size + 1, fmtstr, cpy); + va_end(cpy); + + return str; +} + +char * +appendstrf(char *alloc, const char *fmtstr, ...) +{ + va_list ap, cpy; + size_t size, prevlen; + + va_copy(cpy, ap); + + va_start(ap, fmtstr); + size = vsnprintf(NULL, 0, fmtstr, ap); + va_end(ap); + + prevlen = alloc ? strlen(alloc) : 0; + alloc = realloc(alloc, prevlen + size + 1); + ASSERT(alloc != NULL); + + va_start(cpy, fmtstr); + vsnprintf(alloc + prevlen, size + 1, fmtstr, cpy); + va_end(cpy); + + return alloc; +} + char * sanitized(const char *instr) { @@ -65,25 +111,22 @@ sanitized(const char *instr) return clean; } -char * -aprintf(const char *fmtstr, ...) +const char * +timestr(unsigned int secs) { - va_list ap, cpy; - size_t size; - char *str; + static char buf[16]; + unsigned int mins, hours; - va_copy(cpy, ap); - - va_start(ap, fmtstr); - size = vsnprintf(NULL, 0, fmtstr, ap); - va_end(ap); - - str = malloc(size + 1); - ASSERT(str != NULL); + hours = secs / 3600; + mins = secs / 60 % 60; + secs = secs % 60; - va_start(cpy, fmtstr); - vsnprintf(str, size + 1, fmtstr, cpy); - va_end(cpy); + if (hours) { + snprintf(buf, sizeof(buf), "%02u:%02u:%02u", hours, mins, secs); + } else { + snprintf(buf, sizeof(buf), "%02u:%02u", mins, secs); + } - return str; + return buf; } + -- cgit v1.2.3-71-gd317