http://bugs.winehq.org/show_bug.cgi?id=23975
Summary: mcicda wants to open the nth cdrom in the system Product: Wine Version: 20020228 Platform: All OS/Version: All Status: UNCONFIRMED Severity: normal Priority: P2 Component: winmm&mci AssignedTo: wine-bugs@winehq.org ReportedBy: hoehle@users.sourceforge.net CC: eric.pouech@orange.fr
Eric,
I wanted to query you about the change you introduced 2002-01-13. As the subject says, MCI_Open opens the nth drive of type CD-ROM, where N is the dwDeviceID passed to the command.
Currently Wine passes in the device ID that will be used if Open succeeds, i.e. the number of open MCI devices (I believe it was 0 at some time in the past). Therefore open cdaudio alias c will work, while
open new type waveaudio alias w open avivideo alias a open cdaudio alias e will likely fail in Wine, unless you have 3 CD-ROMs. This is a bug. It works in native.
I found no documentation for this N thing in MSDN. Where does it come from?
My own testing -- as far as it can go with a single drive -- suggests that there's no such functionality in native. Quite to the contrary, using SHAREABLE, I could open a device multiple times using
mciSendCommand(N>0, MCI_OPEN, MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID | MCI_OPEN_SHAREABLE, (DWORD_PTR)&parm); (Not using SHAREABLE seems to reveal an interesting bug in native for N>0).
OTOH, perhaps this functionality exists in the driver, i.e. not accessible at the level of mciSendCommand and the bug is in Wine's MCI that does not pass a 0 as default id (it should pass 0 and stuff the new ID in openparms.wDeviceID)?
BTW, you may be interested by the mcicda patches I recently submitted.
Regards, Jörg Höhle.