aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2014-10-20 12:11:58 -0400
committerTakashi Iwai <tiwai@suse.de>2014-10-21 02:12:15 -0400
commit7f471fd40742a5d87d887375430bf40331cbbcf6 (patch)
tree78f7144e95d3055af68b22c5982a7e780fefd93c /sound
parent6d416f594bf9a290406d267e2627c5286f51ea59 (diff)
ALSA: vx: Use snd_ctl_elem_info()
... and reduce the open codes. Also add missing const to text arrays. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/drivers/vx/vx_mixer.c35
1 files changed, 8 insertions, 27 deletions
diff --git a/sound/drivers/vx/vx_mixer.c b/sound/drivers/vx/vx_mixer.c
index 3b6823fc0606..be9477e30739 100644
--- a/sound/drivers/vx/vx_mixer.c
+++ b/sound/drivers/vx/vx_mixer.c
@@ -471,30 +471,18 @@ static struct snd_kcontrol_new vx_control_output_level = {
471 */ 471 */
472static int vx_audio_src_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 472static int vx_audio_src_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
473{ 473{
474 static char *texts_mic[3] = { 474 static const char * const texts_mic[3] = {
475 "Digital", "Line", "Mic" 475 "Digital", "Line", "Mic"
476 }; 476 };
477 static char *texts_vx2[2] = { 477 static const char * const texts_vx2[2] = {
478 "Digital", "Analog" 478 "Digital", "Analog"
479 }; 479 };
480 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 480 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
481 481
482 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 482 if (chip->type >= VX_TYPE_VXPOCKET)
483 uinfo->count = 1; 483 return snd_ctl_enum_info(uinfo, 1, 3, texts_mic);
484 if (chip->type >= VX_TYPE_VXPOCKET) { 484 else
485 uinfo->value.enumerated.items = 3; 485 return snd_ctl_enum_info(uinfo, 1, 2, texts_vx2);
486 if (uinfo->value.enumerated.item > 2)
487 uinfo->value.enumerated.item = 2;
488 strcpy(uinfo->value.enumerated.name,
489 texts_mic[uinfo->value.enumerated.item]);
490 } else {
491 uinfo->value.enumerated.items = 2;
492 if (uinfo->value.enumerated.item > 1)
493 uinfo->value.enumerated.item = 1;
494 strcpy(uinfo->value.enumerated.name,
495 texts_vx2[uinfo->value.enumerated.item]);
496 }
497 return 0;
498} 486}
499 487
500static int vx_audio_src_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 488static int vx_audio_src_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
@@ -539,18 +527,11 @@ static struct snd_kcontrol_new vx_control_audio_src = {
539 */ 527 */
540static int vx_clock_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 528static int vx_clock_mode_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
541{ 529{
542 static char *texts[3] = { 530 static const char * const texts[3] = {
543 "Auto", "Internal", "External" 531 "Auto", "Internal", "External"
544 }; 532 };
545 533
546 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED; 534 return snd_ctl_enum_info(uinfo, 1, 3, texts);
547 uinfo->count = 1;
548 uinfo->value.enumerated.items = 3;
549 if (uinfo->value.enumerated.item > 2)
550 uinfo->value.enumerated.item = 2;
551 strcpy(uinfo->value.enumerated.name,
552 texts[uinfo->value.enumerated.item]);
553 return 0;
554} 535}
555 536
556static int vx_clock_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 537static int vx_clock_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)