Make setGenericVolume keep balance between channels
Previously setGenericVolume would apply the same amount of difference on all channels, making e.g. 100%/50% -> 80%/30%.
This commit changes it to keep the ratios equal instead, so that the resulting volume would be 80%/40%, keeping the balance the same.
BUG: 435840 FIXED-IN: 5.27.7 (cherry picked from commit cfe4a360f2640d7bd4e2d936804b100a299b268a)