Again, comments about the patch are appreciated.
you asked for it ;-)
- volume_effect8 is bogus. 8 bit samples range from 0 to 255 not -32768 to +32767 - as an optimization, you could + not alloc and fill the output buffer in each call to wodPlayer_WriteMaxFrags, but rather have a buffer ready for the currently played wavehdr, and fill this buffer only when the wavehdr advances + this would also to check whether the buffer can be reused for the next wavehdr instead of a free/alloc pair + IMO, it would be better also to pass the buffer to the volume conversion routine and to fill this buffer at once with the volume conversion
A+