http://bugs.winehq.org/show_bug.cgi?id=31924
Bug #: 31924 Summary: mixerGetDevCaps does not support mixer device handles Product: Wine Version: unspecified Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winmm&mci AssignedTo: wine-bugs@winehq.org ReportedBy: nicode@gmx.net Classification: Unclassified
The Windows SDK documentation states: "This function also accepts a mixer device handle returned by the mixerOpen function as the uMxId parameter. The application should cast the HMIXER handle to a UINT."
This feature is missing in the mixerGetDevCaps(W) implementation.
It might be fixed by using mixerGetID((HMIXEROBJ)uDeviceID, &uMixerId, MIXER_OBJECTF_HMIXER) to resolve the handle to an identifier if uDeviceID is greater than or equal to mixerGetNumDevs().
http://bugs.winehq.org/show_bug.cgi?id=31924
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |aeikum@codeweavers.com
http://bugs.winehq.org/show_bug.cgi?id=31924
--- Comment #1 from Andrew Eikum aeikum@codeweavers.com 2012-10-12 09:57:38 CDT --- Probably better to get the mmdevice directly with WINMM_GetMixerMMDevice() if the given uDeviceID appears invalid. If you're interested, this should be easy to make a patch and tests for.
http://bugs.winehq.org/show_bug.cgi?id=31924
--- Comment #2 from Nico Bendlin nicode@gmx.net 2012-10-22 07:02:12 CDT --- (In reply to comment #1)
Probably better to get the mmdevice directly with WINMM_GetMixerMMDevice() if the given uDeviceID appears invalid. If you're interested, this should be easy to make a patch and tests for.
I'm fairly new to Wine and do not feel to be in a position to propose a patch and/or testcase. Therefore my comment targets the Windows API workaround (that I implemented in the run-time patch for the application).
https://bugs.winehq.org/show_bug.cgi?id=31924
--- Comment #3 from Austin English austinenglish@gmail.com --- Is this still an issue in current (1.7.35 or newer) wine? If so, please attach terminal output.
https://bugs.winehq.org/show_bug.cgi?id=31924
--- Comment #4 from Nico Bendlin nicode@gmx.net --- Yes, the implementation still includes the following code:
if(uDeviceID >= g_outmmdevices_count + g_inmmdevices_count) return MMSYSERR_BADDEVICEID;
https://bugs.winehq.org/show_bug.cgi?id=31924
--- Comment #5 from Andrew Eikum aeikum@codeweavers.com --- Thanks for the reminder. I believe this should be fixed by this commit in wine-git (will be in Wine 1.7.36), can you confirm?
commit bbc5244c0b52f8ad90e82c284f3ec0c9d13c64a6 Author: Andrew Eikum aeikum@codeweavers.com Date: Tue Jan 27 09:02:50 2015 -0600
winmm: Allow HMIXEROBJ handles in place of device IDs in mixerGetDevCaps.
https://bugs.winehq.org/show_bug.cgi?id=31924
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |bbc5244c0b52f8ad90e82c284f3 | |ec0c9d13c64a6 Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #6 from Andrew Eikum aeikum@codeweavers.com --- Should be fixed, please re-open if it's not working as you expected.
https://bugs.winehq.org/show_bug.cgi?id=31924
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.37.