Quoting Colin Guthrie gmane@colin.guthr.ie:
Actually just having a very quick glance at the Alsa API docs, it doesn't mention that this value should be 0 if there are no samples to play:
http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#ga0d9e14a4b...
Closest it says is: "It's positive and less than buffer size in normal situation".
So perhaps this is an invalid assumption at the wine side?
However this part:
Delay is distance between current application frame position and sound frame position.
suggests that it indeed can be zero. Or why would a soundcard have a gap between the read and write positions if it has played everything?
If Wine uses a wrong assumption, then please clarify the function description.
Is there perhaps a more appropriate API call they can use to do whatever test they are doing?
What Wine needs to know, is whether a particular sample has already been played or not. It does 'bytes_written - delay_in_bytes' to find out how much of the written data the soundcard has already played. If there is a better test for it, please explain.
tom