dsound: Add support for adjusting volume of more than 2 channels

Andrew Eikum aeikum at codeweavers.com
Fri Jul 13 08:15:06 CDT 2012


On Fri, Jul 13, 2012 at 05:59:03PM +1000, Donny Yang wrote:
> -	if (channels != 1 && channels != 2)
> -	{
> -		FIXME("There is no support for %u channels\n", channels);
> +	if (dsb->device->pwfx->wFormatTag == WAVE_FORMAT_EXTENSIBLE)
> +		channelMask = ((WAVEFORMATEXTENSIBLE*)dsb->device->pwfx)->dwChannelMask;
> +	else if (channels == 1)
> +		channelMask = SPEAKER_FRONT_CENTER;
> +	else if (channels == 2)
> +		channelMask = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT;
> +	else {
> +		FIXME("There is no support for %u channels without an extensible wave format\n", channels);
>  		return;
>  	}

Before you resend, please consider testing how Windows behaves in this
condition. Does it actually refuse to apply any volume at all?

Andrew



More information about the wine-devel mailing list