return 0;
if (!getsem (unitnum))
return 0;
+ state[unitnum].play_end_pos = endlsn;
if (state[unitnum].device_func->play == NULL)
v = sys_command_cd_play (unitnum, startlsn, endlsn, scan);
else
cdu->cdda_scan = scan > 0 ? 10 : (scan < 0 ? 10 : 0);
cdu->cdda_delay = setstate (cdu, -1, -1);
cdu->cdda_delay_frames = setstate (cdu, -2, -1);
- setstate (cdu, AUDIO_STATUS_NOT_SUPPORTED, -1);
+ setstate (cdu, cdu->cdda_delay > 0 || cdu->cdda_delay_frames ? AUDIO_STATUS_NOT_SUPPORTED : AUDIO_STATUS_IN_PROGRESS, -1);
if (!isaudiotrack (&cdu->di.toc, startlsn)) {
setstate (cdu, AUDIO_STATUS_PLAY_ERROR, -1);
return 0;
memcpy (p, subbuf + 12, 12);
}
+ if (cdu->cdda_play_state == AUDIO_STATUS_PLAY_COMPLETE || cdu->cdda_play_state == AUDIO_STATUS_PLAY_ERROR)
+ cdu->cdda_play_state = AUDIO_STATUS_NO_STATUS;
+
return 1;
}