diff --git a/sdk/lib/drivers/sound/mmixer/controls.c b/sdk/lib/drivers/sound/mmixer/controls.c index a7521bf4dd3..f7d548d83dd 100644 --- a/sdk/lib/drivers/sound/mmixer/controls.c +++ b/sdk/lib/drivers/sound/mmixer/controls.c @@ -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; }