why would an scontrol think that it should have 2 items instead of just 1?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello

The VT1618 codec has a register value that turns on the Surround Side
Output (it's off by default)

I have implemented the control, but I am getting a really weird result,
i have a bogus 'Item1' that shouldnt exist:

jutz-gntdv alsa-driver # amixer sset Side On
Simple mixer control 'Side',0
  Capabilities: pvolume pswitch enum
  Items: 'On' 'Off'
  Item0: 'On'
  Item1: 'On'
jutz-gntdv alsa-driver # amixer sset Side Off
Simple mixer control 'Side',0
  Capabilities: pvolume pswitch enum
  Items: 'On' 'Off'
  Item0: 'Off'
  Item1: 'On'

This wasnt always there, it just showed up during development. Is the
number of items cached in a temp file somewhere that i just need to
remove?

Here's the mixer element:

	{
		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
		.name  = "Side",
		.info  = snd_ac97_vt1618_surside_info,
		.get   = snd_ac97_vt1618_surside_get,
		.put   = snd_ac97_vt1618_surside_put
	},

Here's the function impls:

/* surround side power up or down */

static int snd_ac97_vt1618_surside_info(struct snd_kcontrol *kcontrol,
				     struct snd_ctl_elem_info *uinfo)
{
	static const char* texts[] = {"On", "Off"};
	return ac97_enum_text_info(kcontrol, uinfo, texts, 2);
}

static int snd_ac97_vt1618_surside_get(struct snd_kcontrol *kcontrol,
				       struct snd_ctl_elem_value
*ucontrol) {
	struct snd_ac97 *pac97 = snd_kcontrol_chip(kcontrol);
  
	ucontrol->value.enumerated.item[0] = 
		(snd_ac97_read(pac97, 0x5c) & 0x0008) >> 3;

	return 0;
}

static int snd_ac97_vt1618_surside_put(struct snd_kcontrol *kcontrol,
				       struct snd_ctl_elem_value
*ucontrol) {
  //0x5c,  3, 1,
	struct snd_ac97 *pac97 = snd_kcontrol_chip(kcontrol);

	snd_ac97_update_bits(pac97, 0x5c, 0x0008,
			     ucontrol->value.enumerated.item[0] << 3);
	return 0;
}

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux