|
@@ -206,6 +206,12 @@
|
|
|
.get = snd_soc_dapm_get_enum_double, \
|
|
|
.put = snd_soc_dapm_put_enum_double, \
|
|
|
.private_value = (unsigned long)&xenum }
|
|
|
+#define SOC_DAPM_ENUM_VIRT(xname, xenum) \
|
|
|
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
|
|
|
+ .info = snd_soc_info_enum_double, \
|
|
|
+ .get = snd_soc_dapm_get_enum_virt, \
|
|
|
+ .put = snd_soc_dapm_put_enum_virt, \
|
|
|
+ .private_value = (unsigned long)&xenum }
|
|
|
#define SOC_DAPM_VALUE_ENUM(xname, xenum) \
|
|
|
{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
|
|
|
.info = snd_soc_info_enum_double, \
|
|
@@ -260,6 +266,10 @@ int snd_soc_dapm_get_enum_double(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_ctl_elem_value *ucontrol);
|
|
|
int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_ctl_elem_value *ucontrol);
|
|
|
+int snd_soc_dapm_get_enum_virt(struct snd_kcontrol *kcontrol,
|
|
|
+ struct snd_ctl_elem_value *ucontrol);
|
|
|
+int snd_soc_dapm_put_enum_virt(struct snd_kcontrol *kcontrol,
|
|
|
+ struct snd_ctl_elem_value *ucontrol);
|
|
|
int snd_soc_dapm_get_value_enum_double(struct snd_kcontrol *kcontrol,
|
|
|
struct snd_ctl_elem_value *ucontrol);
|
|
|
int snd_soc_dapm_put_value_enum_double(struct snd_kcontrol *kcontrol,
|