mmdevapi event driven (aka. pull) mode

Joerg-Cyril.Hoehle at t-systems.com Joerg-Cyril.Hoehle at t-systems.com
Wed Jun 8 02:54:56 CDT 2011


Hi,

>What behavior do you think Wine is going to do wrong
Matthew van Eerde's web log has a sample silence playing
application using EVENTCALLBACK mode.
http://blogs.msdn.com/b/matthew_van_eerde/archive/2008/12/10/sample-playing-silence-via-wasapi-event-driven-pull-mode.aspx

Running it in Wine shows that Wine violates the assumption/invariant/guarantee IMHO
 Event signaled  => there's room in the buffer
  -- much like winmm's MOM_DONE signals that a buffer is free.
I don't know when the first event is signaled nor at what rate they are signaled.
(Perhaps one is signaled every time one of the mixer's 10ms chunks is processed?).
The app immediately complains and exits.

Wine's mmdevapi current unconditional and periodic SetEvent does not match
the above program's expectations (nor would it match exclusive mode behaviour:
 event => complete buffer free for writing). A periodic 10ms event may be fine when
playing goes smooth, but that's not the case right at the beginning, esp. when
filling the buffer before calling Start.

I should turn that into a distinct bug report.

Regards,
 Jörg Höhle


More information about the wine-devel mailing list