static void idle(void) {
D(("idle"));
#if API_ALSA
- if(pcm) {
+ if(!config->speaker_command && pcm) {
int err;
if((err = snd_pcm_nonblock(pcm, 0)) < 0)
}
return 0;
}
+ if(config->speaker_command)
+ return -1;
#if API_ALSA
/* If we need to change format then close the current device. */
if(pcm && !formats_equal(&playing->format, &pcm_format))
else
avail_bytes = playing->used;
- if(kidfd == -1) {
+ if(!config->speaker_command) {
#if API_ALSA
snd_pcm_sframes_t pcm_written_frames;
size_t avail_frames;
#endif
set_progname(argv);
- mem_init(0);
if(!setlocale(LC_CTYPE, "")) fatal(errno, "error calling setlocale");
while((n = getopt_long(argc, argv, "hVc:dD", options, 0)) >= 0) {
switch(n) {
alsa_slots = -1;
kid_slot = -1;
if(ready && !forceplay) {
- if(kidfd >= 0)
- kid_slot = addfd(kidfd, POLLOUT);
- else {
+ if(config->speaker_command) {
+ if(kidfd >= 0)
+ kid_slot = addfd(kidfd, POLLOUT);
+ } else {
#if API_ALSA
int retry = 3;