diff options
Diffstat (limited to 'src/modules/alsa/alsa-util.c')
-rw-r--r-- | src/modules/alsa/alsa-util.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index 2d0ca107..5b5270b8 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -1094,7 +1094,8 @@ success: int pa_alsa_find_mixer_and_elem( snd_pcm_t *pcm, snd_mixer_t **_m, - snd_mixer_elem_t **_e) { + snd_mixer_elem_t **_e, + const char *control_name) { int err; snd_mixer_t *m; @@ -1146,11 +1147,17 @@ int pa_alsa_find_mixer_and_elem( switch (snd_pcm_stream(pcm)) { case SND_PCM_STREAM_PLAYBACK: - e = pa_alsa_find_elem(m, "Master", "PCM", TRUE); + if (control_name) + e = pa_alsa_find_elem(m, control_name, NULL, TRUE); + else + e = pa_alsa_find_elem(m, "Master", "PCM", TRUE); break; case SND_PCM_STREAM_CAPTURE: - e = pa_alsa_find_elem(m, "Capture", "Mic", FALSE); + if (control_name) + e = pa_alsa_find_elem(m, control_name, NULL, FALSE); + else + e = pa_alsa_find_elem(m, "Capture", "Mic", FALSE); break; default: |