[MMIXER] HACK: Decrease SteppingDelta for each volume value by 1

This workarounds broken changing volume level for left and right volume controls separately ("Speakers Volume" button in "Sound" tab of mmsys.cpl).
CORE-19190
This commit is contained in:
Oleg Dubinskiy 2025-07-10 11:41:48 +02:00
parent 376708b586
commit 206b52833f

View file

@ -190,7 +190,7 @@ MMixerAddMixerControl(
DPRINT("NodeIndex %u Range Min %d Max %d Steps %x UMin %x UMax %x\n", NodeIndex, Range->Bounds.SignedMinimum, Range->Bounds.SignedMaximum, Range->SteppingDelta, Range->Bounds.UnsignedMinimum, Range->Bounds.UnsignedMaximum);
MaxRange = Range->Bounds.UnsignedMaximum - Range->Bounds.UnsignedMinimum;
MaxRange = Range->Bounds.UnsignedMaximum - Range->Bounds.UnsignedMinimum;
if (MaxRange)
{
@ -218,10 +218,11 @@ MMixerAddMixerControl(
}
Value = Range->Bounds.SignedMinimum;
for(Index = 0; Index < Steps; Index++)
for (Index = 0; Index < Steps; Index++)
{
VolumeData->Values[Index] = Value;
Value += Range->SteppingDelta;
// HACK: use '- 1' to make the left and right volume controls behave independently.
Value += Range->SteppingDelta - 1;
}
MixerControl->ExtraData = VolumeData;
}