[Bug 26160] Broken control path in mcicda

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Feb 18 06:59:05 CST 2011


http://bugs.winehq.org/show_bug.cgi?id=26160

--- Comment #2 from Jörg Höhle <hoehle at users.sourceforge.net> 2011-02-18 06:59:04 CST ---
As a consequence of this bug, MCI_PLAY fails on MacOS because READ_Q_CHANNEL is
used to get the current position and it's not implemented.

I argue that this failure is wrong because the code path that depends on Direct
Sound + RAW_READ to play must not use IOCTL_CDROM to get the current position,
because (on Linux at least), this position is independent from RAW_READ.

In effect, on Linux (although this bug is about Mac OS), MCI_STATUS_POSITION
reports bogus positions, as an effect of this bug.

Instead the code should use the wmcda->start position maintained by
MCICDA_playLoop.  (BTW, native appears to behave similarly w.r.t. concurrent
seeking by other apps).

Likewise, MCI_SEEK should merely set an internal state variable when DS +
RAW_READ is used (this is also bug #26160).  IOCTL_CDROM_SEEK_AUDIO_MSF should
only be used when IOCTL_*_AUDIO is used to play music, not RAW_READ. (I was
considering this scenario when I wrote "don't know yet [which mode to use]"
earlier.)

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the wine-bugs mailing list