D(("SM_PAUSED %s %ld", sm.id, sm.data));
playing->sofar = sm.data;
break;
- case SM_FINISHED:
- /* the playing track finished */
- D(("SM_FINISHED %s", sm.id));
- finished(ev);
+ case SM_FINISHED: /* scratched the playing track */
+ case SM_STILLBORN: /* scratched too early */
+ case SM_UNKNOWN: /* scratched WAY too early */
+ if(playing && !strcmp(sm.id, playing->id))
+ finished(ev);
break;
case SM_PLAYING:
/* track ID is playing, DATA seconds played */
* (but it should be for play_track() */
execlp("disorder-normalize", "disorder-normalize",
log_default == &log_syslog ? "--syslog" : "--no-syslog",
+ "--config", configfile,
(char *)0);
fatal(errno, "executing disorder-normalize");
/* end of the innermost fork */