The problem call comes from audio_thread(), line 1817:
if (ev.id == SYS_TIMEOUT && play_pending)
{
ev.id = Q_AUDIO_PLAY;
ev.data = (bool *)1;
}
The offset (ev.data) is set to 1 here - anybody know what's going on?
If I set it to 0, tracks play properly (but note it doesn't fix the skip
crossfading after all).
There's another similarly strange call in initiate_dir_change(), line 1791,
queue_post(&audio_queue, Q_AUDIO_PLAY, (bool *)true);
And sure enough, if you skip a directory, the start of the first track is
missing again.
Why are these setting boolean values (especially as true compiles to 1 and
not -1, which the code would at least treat differently)?? Are these
remnants from an old version of the code or am I missing something?
--
gl