https://bugs.winehq.org/show_bug.cgi?id=49075
Bug ID: 49075 Summary: foobar2000 reports 'No CD drives found.' because GetDriveTypeW returns DRIVE_FIXED for audio CD Product: Wine Version: 5.4 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: spoon0042@hotmail.com Distribution: ---
Created attachment 67048 --> https://bugs.winehq.org/attachment.cgi?id=67048 foobar2000 log +volume
Summary should be self-explanatory. ;) Attached a log with +volume starting foobar2000 and selecting File -> Open audio CD. Relevant line would be
0033:trace:volume:GetDriveTypeW L"\\.\D:\" -> 3
Confusingly running winecfg with +volume correctly finds an audio CD. (And incorrectly an extra one?)
0009:trace:volume:GetVolumeInformationW L"\??\D:\": found audio CD 0009:trace:volume:GetVolumeInformationW L"\??\E:\": found audio CD
Hacking GetDriveTypeW to return 5 for D: things work as expected. Can play a CD, fetch tags, rip.
https://bugs.winehq.org/show_bug.cgi?id=49075
--- Comment #1 from Michael McGuire spoon0042@hotmail.com --- I found a different application (CUERipper) and when it does that call...
0072:trace:volume:GetDriveTypeW L"D:\" -> 5
so it may be the path string that's the issue?
https://bugs.winehq.org/show_bug.cgi?id=49075
Michael McGuire spoon0042@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.foobar2000.org/d | |ownload
--- Comment #2 from Michael McGuire spoon0042@hotmail.com --- I was looking at this due to this forum thread: https://forum.winehq.org/viewtopic.php?f=8&t=33813
Another user reports the same call results in the expected behavior for them, so rather confused.
I seem to have trouble getting winecfg to "stick" or keep drive settings, no idea what's causing that but that could certainly be an issue.
https://bugs.winehq.org/show_bug.cgi?id=49075
--- Comment #3 from Michael McGuire spoon0042@hotmail.com --- Poking at this more, the drive string (root) gets passed as is to get_mountmgr_drive_type() which assumes the first character is the drive letter, but since it's '' returns 0. GDTW maps this to DRIVE_FIXED (3) if the drive exists or DRIVE_NO_ROOT_DIR (1) if not. (The automatic audio CD assignment is "not" in this case. Done manually it returns 3 though.)
For me anyway, no idea how this is working for the other person on the forum.
A less stupid hack that also works for me anyway but is probably still wrong: add to the top of GTDW
static const WCHAR device_prefix[4] = {'\','\','.','\'};
if (!memcmp(root, device_prefix, sizeof(device_prefix))) root += 4;
https://bugs.winehq.org/show_bug.cgi?id=49075
LingM lingm+winebz@posteo.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |lingm+winebz@posteo.org
--- Comment #4 from LingM lingm+winebz@posteo.org --- Confirming and still present in Wine 6.5. Tested with foobar2000 1.6.4.
Just start the program and click on File > Open audio CD...
https://web.archive.org/web/20210217111216/https://www.foobar2000.org/files/...
https://bugs.winehq.org/show_bug.cgi?id=49075
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.foobar2000.org/d |https://web.archive.org/web |ownload |/20210217111216/https://www | |.foobar2000.org/files/fooba | |r2000_v1.6.4.exe