Commit 0b4c99cd authored by Jeff Cook's avatar Jeff Cook Committed by Alexandre Julliard

winealsa.drv: Rewrite channel counting for additional readability and…

winealsa.drv: Rewrite channel counting for additional readability and circumvention of a couple of crashes.
parent e96d3d53
...@@ -491,7 +491,10 @@ static void ALSA_MixerInit(void) ...@@ -491,7 +491,10 @@ static void ALSA_MixerInit(void)
for (elem = snd_mixer_first_elem(mixdev[mixnum].mix); elem; elem = snd_mixer_elem_next(elem)) for (elem = snd_mixer_first_elem(mixdev[mixnum].mix); elem; elem = snd_mixer_elem_next(elem))
if (!strcasecmp(snd_mixer_selem_get_name(elem), "Master") && !mastelem) if (!strcasecmp(snd_mixer_selem_get_name(elem), "Master") && !mastelem)
{
mastelem = elem; mastelem = elem;
++(mixdev[mixnum].chans);
}
else if (!strcasecmp(snd_mixer_selem_get_name(elem), "Capture") && !captelem) else if (!strcasecmp(snd_mixer_selem_get_name(elem), "Capture") && !captelem)
captelem = elem; captelem = elem;
else if (!strcasecmp(snd_mixer_selem_get_name(elem), "Mic") && !micelem && !mastelem && total_elems == 1) else if (!strcasecmp(snd_mixer_selem_get_name(elem), "Mic") && !micelem && !mastelem && total_elems == 1)
...@@ -517,13 +520,12 @@ static void ALSA_MixerInit(void) ...@@ -517,13 +520,12 @@ static void ALSA_MixerInit(void)
headelem = elem; headelem = elem;
else if (!strcasecmp(snd_mixer_selem_get_name(elem), "PCM") && !pcmelem) else if (!strcasecmp(snd_mixer_selem_get_name(elem), "PCM") && !pcmelem)
pcmelem = elem; pcmelem = elem;
else ++(mixdev[mixnum].chans);
++(mixdev[mixnum].chans);
} }
} }
/* Add master channel, uncounted channels and an extra for capture */ /* Add dummy capture channel, wanted by Windows */
mixdev[mixnum].chans += !!mastelem + !!headelem + !!pcmelem + 1; mixdev[mixnum].chans += 1;
/* If there is only 'Capture' and 'Master', this device is not worth it */ /* If there is only 'Capture' and 'Master', this device is not worth it */
if (mixdev[mixnum].chans == 2) if (mixdev[mixnum].chans == 2)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment