Maarten Lankhorst : winealsa: Don't require a cswitch control for capture.
Module: wine Branch: master Commit: affd447db0c7cb9c4c056916ce930d0ffd9511aa URL: http://source.winehq.org/git/wine.git/?a=commit;h=affd447db0c7cb9c4c056916ce... Author: Maarten Lankhorst <maarten(a)codeweavers.com> Date: Wed Dec 12 23:48:04 2007 +0100 winealsa: Don't require a cswitch control for capture. --- dlls/winealsa.drv/mixer.c | 13 +++++++------ 1 files changed, 7 insertions(+), 6 deletions(-) diff --git a/dlls/winealsa.drv/mixer.c b/dlls/winealsa.drv/mixer.c index 6b13610..90b539e 100644 --- a/dlls/winealsa.drv/mixer.c +++ b/dlls/winealsa.drv/mixer.c @@ -233,8 +233,7 @@ static int blacklisted(snd_mixer_elem_t *elem) BOOL blisted = 0; if (!snd_mixer_selem_has_playback_volume(elem) && - (!snd_mixer_selem_has_capture_volume(elem) || - !snd_mixer_selem_has_capture_switch(elem))) + !snd_mixer_selem_has_capture_volume(elem)) blisted = 1; TRACE("%s: %x\n", name, blisted); @@ -382,7 +381,7 @@ static void filllines(mixer *mmixer, snd_mixer_elem_t *mastelem, snd_mixer_elem_ else if (!capt) continue; - if (capt && snd_mixer_selem_has_capture_switch(elem)) + if (capt && snd_mixer_selem_has_capture_volume(elem)) { (++mline)->component = comp; MultiByteToWideChar(CP_UNIXCP, 0, name, -1, mline->name, MAXPNAMELEN); @@ -473,7 +472,7 @@ static void ALSA_MixerInit(void) captelem = elem; else if (!blacklisted(elem)) { - if (snd_mixer_selem_has_capture_switch(elem)) + if (snd_mixer_selem_has_capture_volume(elem)) ++capcontrols; if (snd_mixer_selem_has_playback_volume(elem)) { @@ -1306,14 +1305,14 @@ static DWORD MIX_GetLineInfo(UINT wDevID, LPMIXERLINEW Ml, DWORD_PTR flags) return MMSYSERR_INVALPARAM; } - Ml->fdwLine = MIXERLINE_LINEF_ACTIVE; Ml->dwUser = 0; - + Ml->fdwLine = MIXERLINE_LINEF_DISCONNECTED; switch (qf) { case MIXER_GETLINEINFOF_COMPONENTTYPE: { Ml->dwLineID = 0xFFFF; + TRACE("Looking for componenttype %d/%x\n", Ml->dwComponentType, Ml->dwComponentType); for (idx = 0; idx < mmixer->chans; ++idx) if (mmixer->lines[idx].component == Ml->dwComponentType) { @@ -1383,6 +1382,8 @@ static DWORD MIX_GetLineInfo(UINT wDevID, LPMIXERLINEW Ml, DWORD_PTR flags) return MMSYSERR_INVALPARAM; } + Ml->fdwLine &= ~MIXERLINE_LINEF_DISCONNECTED; + Ml->fdwLine |= MIXERLINE_LINEF_ACTIVE; if (Ml->dwLineID >= mmixer->dests) Ml->fdwLine |= MIXERLINE_LINEF_SOURCE;
participants (1)
-
Alexandre Julliard