mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 13:14:07 +08:00
ALSA: echoaudio: purge contradictions between dimension matrix members and total number of members
Currently, sound device drivers for PCI cards produced by Echo Audio support dimension parameter of element information. But the information has contradictions to the number of members of each element. I guess that this comes from the assumption that these sound cards are used only by 'echomixer' in userspace. But ideally, they should be used with usual ALSA control applications. This commit removes the contradiction. As a result, 'Monitor Mixer Volume' and 'VMixer Volume' elements are shown in usual ALSA control applications such as 'amixer' and 'alsamixer' in series. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
41e8a5788b
commit
275353bb68
@ -1272,11 +1272,11 @@ static int snd_echo_mixer_info(struct snd_kcontrol *kcontrol,
|
||||
|
||||
chip = snd_kcontrol_chip(kcontrol);
|
||||
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
|
||||
uinfo->count = 1;
|
||||
uinfo->value.integer.min = ECHOGAIN_MINOUT;
|
||||
uinfo->value.integer.max = ECHOGAIN_MAXOUT;
|
||||
uinfo->dimen.d[0] = num_busses_out(chip);
|
||||
uinfo->dimen.d[1] = num_busses_in(chip);
|
||||
uinfo->count = uinfo->dimen.d[0] * uinfo->dimen.d[1];
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1344,11 +1344,11 @@ static int snd_echo_vmixer_info(struct snd_kcontrol *kcontrol,
|
||||
|
||||
chip = snd_kcontrol_chip(kcontrol);
|
||||
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
|
||||
uinfo->count = 1;
|
||||
uinfo->value.integer.min = ECHOGAIN_MINOUT;
|
||||
uinfo->value.integer.max = ECHOGAIN_MAXOUT;
|
||||
uinfo->dimen.d[0] = num_busses_out(chip);
|
||||
uinfo->dimen.d[1] = num_pipes_out(chip);
|
||||
uinfo->count = uinfo->dimen.d[0] * uinfo->dimen.d[1];
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1728,7 +1728,6 @@ static int snd_echo_vumeters_info(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_info *uinfo)
|
||||
{
|
||||
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
|
||||
uinfo->count = 96;
|
||||
uinfo->value.integer.min = ECHOGAIN_MINOUT;
|
||||
uinfo->value.integer.max = 0;
|
||||
#ifdef ECHOCARD_HAS_VMIXER
|
||||
@ -1738,6 +1737,7 @@ static int snd_echo_vumeters_info(struct snd_kcontrol *kcontrol,
|
||||
#endif
|
||||
uinfo->dimen.d[1] = 16; /* 16 channels */
|
||||
uinfo->dimen.d[2] = 2; /* 0=level, 1=peak */
|
||||
uinfo->count = uinfo->dimen.d[0] * uinfo->dimen.d[1] * uinfo->dimen.d[2];
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user