CD handling on MacOS - the big picture?
ken at codeweavers.com
Fri Feb 11 11:23:45 CST 2011
On Feb 11, 2011, at 10:23 AM, <Joerg-Cyril.Hoehle at t-systems.com> <Joerg-Cyril.Hoehle at t-systems.com> wrote:
> Mixed CDs occur in some games, but some audio CDs
> contain "bonus content" as well.
> On MacOS, mixed CDs are mounted as two volumes
> - the audio part,
> - the data/binary section
> not unlike Gnome which also displays 2 disc icons on the desktop.
> On Linux, Wine manages to map both to a single CD-ROM
> drive letter like D:, such that
> - D:\data\foo.exe works as well as
> - MCICDA: open D: type cdaudio alias D; play D work (but see bug 20555),
> which mimics native's behaviour.
> On MacOS, we're not there yet. I've no idea how that can be made to work.
> How would Wine on MacOS join the pieces?
I guess I'd say that Wine should create a drive letter only for the data/binary section. I suspect that that's already the case due to the logic in mountmgr.sys/diskarb.c.
Then, if some code needs to find the whole-media device that contains that section, it could use something like the get_parent_device() function in dlls/ntdll/cdrom.c. From there, it might have to enumerate the child entries to find the audio part. I don't know how one checks for that. Playing with such a mixed CD and /Developer/Applications/Utilities/IORegistryExplorer.app might be helpful in figuring that out.
More information about the wine-devel