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

Reply via email to