]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ALSA: bebob: Use snd_ctl_enum_info()
authorTakashi Iwai <tiwai@suse.de>
Mon, 20 Oct 2014 16:12:26 +0000 (18:12 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 21 Oct 2014 06:26:55 +0000 (08:26 +0200)
... and reduce the open codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/bebob/bebob_maudio.c

index 34cba8037b36d8ea1ca55f01e93e2cacfc799fa4..a422aaa3bb0cb6a7ea2f1e0de3b86380a52bf012 100644 (file)
@@ -352,17 +352,8 @@ static int special_clk_get(struct snd_bebob *bebob, unsigned int *id)
 static int special_clk_ctl_info(struct snd_kcontrol *kctl,
                                struct snd_ctl_elem_info *einf)
 {
-       einf->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
-       einf->count = 1;
-       einf->value.enumerated.items = ARRAY_SIZE(special_clk_labels);
-
-       if (einf->value.enumerated.item >= einf->value.enumerated.items)
-               einf->value.enumerated.item = einf->value.enumerated.items - 1;
-
-       strcpy(einf->value.enumerated.name,
-              special_clk_labels[einf->value.enumerated.item]);
-
-       return 0;
+       return snd_ctl_enum_info(einf, 1, ARRAY_SIZE(special_clk_labels),
+                                special_clk_labels);
 }
 static int special_clk_ctl_get(struct snd_kcontrol *kctl,
                               struct snd_ctl_elem_value *uval)
@@ -444,17 +435,9 @@ static const char *const special_dig_in_iface_labels[] = {
 static int special_dig_in_iface_ctl_info(struct snd_kcontrol *kctl,
                                         struct snd_ctl_elem_info *einf)
 {
-       einf->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
-       einf->count = 1;
-       einf->value.enumerated.items = ARRAY_SIZE(special_dig_in_iface_labels);
-
-       if (einf->value.enumerated.item >= einf->value.enumerated.items)
-               einf->value.enumerated.item = einf->value.enumerated.items - 1;
-
-       strcpy(einf->value.enumerated.name,
-              special_dig_in_iface_labels[einf->value.enumerated.item]);
-
-       return 0;
+       return snd_ctl_enum_info(einf, 1,
+                                ARRAY_SIZE(special_dig_in_iface_labels),
+                                special_dig_in_iface_labels);
 }
 static int special_dig_in_iface_ctl_get(struct snd_kcontrol *kctl,
                                        struct snd_ctl_elem_value *uval)
@@ -545,17 +528,9 @@ static const char *const special_dig_out_iface_labels[] = {
 static int special_dig_out_iface_ctl_info(struct snd_kcontrol *kctl,
                                          struct snd_ctl_elem_info *einf)
 {
-       einf->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
-       einf->count = 1;
-       einf->value.enumerated.items = ARRAY_SIZE(special_dig_out_iface_labels);
-
-       if (einf->value.enumerated.item >= einf->value.enumerated.items)
-               einf->value.enumerated.item = einf->value.enumerated.items - 1;
-
-       strcpy(einf->value.enumerated.name,
-              special_dig_out_iface_labels[einf->value.enumerated.item]);
-
-       return 0;
+       return snd_ctl_enum_info(einf, 1,
+                                ARRAY_SIZE(special_dig_out_iface_labels),
+                                special_dig_out_iface_labels);
 }
 static int special_dig_out_iface_ctl_get(struct snd_kcontrol *kctl,
                                         struct snd_ctl_elem_value *uval)