|
@@ -1486,3 +1486,30 @@ int snd_ctl_create(struct snd_card *card)
|
|
|
snd_assert(card != NULL, return -ENXIO);
|
|
|
return snd_device_new(card, SNDRV_DEV_CONTROL, card, &ops);
|
|
|
}
|
|
|
+
|
|
|
+/*
|
|
|
+ * Frequently used control callbacks
|
|
|
+ */
|
|
|
+int snd_ctl_boolean_mono_info(struct snd_kcontrol *kcontrol,
|
|
|
+ struct snd_ctl_elem_info *uinfo)
|
|
|
+{
|
|
|
+ uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
|
|
|
+ uinfo->count = 1;
|
|
|
+ uinfo->value.integer.min = 0;
|
|
|
+ uinfo->value.integer.max = 1;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+EXPORT_SYMBOL(snd_ctl_boolean_mono_info);
|
|
|
+
|
|
|
+int snd_ctl_boolean_stereo_info(struct snd_kcontrol *kcontrol,
|
|
|
+ struct snd_ctl_elem_info *uinfo)
|
|
|
+{
|
|
|
+ uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
|
|
|
+ uinfo->count = 2;
|
|
|
+ uinfo->value.integer.min = 0;
|
|
|
+ uinfo->value.integer.max = 1;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+EXPORT_SYMBOL(snd_ctl_boolean_stereo_info);
|