#include <fcntl.h>
#include <poll.h>
#include <sys/un.h>
+#include <sys/stat.h>
#include "configuration.h"
#include "syscalls.h"
playing = 0;
}
destroy(t);
- } else
+ } else {
+ sm.type = SM_UNKNOWN;
+ speaker_send(1, &sm);
error(0, "SM_CANCEL for unknown track %s", sm.id);
+ }
report();
break;
case SM_RELOAD:
if(getuid() == 0 || geteuid() == 0) fatal(0, "do not run as root");
/* identify the backend used to play */
for(n = 0; backends[n]; ++n)
- if(backends[n]->backend == config->speaker_backend)
+ if(backends[n]->backend == config->api)
break;
if(!backends[n])
- fatal(0, "unsupported backend %d", config->speaker_backend);
+ fatal(0, "unsupported api %d", config->api);
backend = backends[n];
/* backend-specific initialization */
backend->init();
/* create the socket directory */
byte_xasprintf(&dir, "%s/speaker", config->home);
unlink(dir); /* might be a leftover socket */
- if(mkdir(dir, 0700) < 0)
+ if(mkdir(dir, 0700) < 0 && errno != EEXIST)
fatal(errno, "error creating %s", dir);
/* set up the listen socket */
listenfd = xsocket(PF_UNIX, SOCK_STREAM, 0);