mirror of
https://github.com/reactos/reactos.git
synced 2025-07-03 07:11:21 +00:00
![]() Fix broken volume level changing and left/right speakers balance level changing. - Force using MIXERCONTROLDETAILS_SIGNED structure instead of MIXERCONTROLDETAILS_UNSIGNED from MIXER_CONTROLDETAILS.paDetails member, which allows to use a negative Decibel values, those are more close to the absolute silence. This allows to start the counting of volume level from zero (silence) and then up to 100% (the maximum level of volume loudness). - Get and set volume level value for all available output channels instead of only the 1st channel (available in MIXERCONTROLDETAILS.cChannels member), so other channels don't have a non-set volume values now. This allows to control the volume for all channels, so now it works correctly. So now the volume control works correctly and hence, the volume level can be properly changed from Sound Properties (mmsys.cpl) and Volume Mixer (sndvol32.exe) as well. Note that the volume level settings changed by user are not saving after reboot yet. We need to save (write) and then load (read) them at next boot from HKLM/System/CurrentControlSet/Control/DeviceClasses/KSCATEGORY_AUDIO/.../DeviceParameters/Mixer/.../* keys inside wdmaud.sys, similarly to as it's done in Windows XP/2003. It can be tested (and is tested sveral times by me and is confirmed) by using MS wdmaud.sys in ReactOS. It writes the values in that key. So the actual volume values are stored there. Another key, HKCU/SOFTWARE/Microsoft/Windows/Applets/Volume Control/, is created and managed by sndvol32.exe instead, so it does not contain the actual values of volume Decibel levels. CORE-20059 |
||
---|---|---|
.. | ||
legacy | ||
mmebuddy | ||
mment4 | ||
mmixer | ||
shared | ||
soundblaster | ||
stdunk | ||
uartmidi | ||
CMakeLists.txt |