Lines Matching refs:kctl
585 struct snd_kcontrol *kctl, in snd_usb_mixer_add_list() argument
591 while (snd_ctl_find_id(mixer->chip->card, &kctl->id)) in snd_usb_mixer_add_list()
592 kctl->id.index++; in snd_usb_mixer_add_list()
593 err = snd_ctl_add(mixer->chip->card, kctl); in snd_usb_mixer_add_list()
599 list->kctl = kctl; in snd_usb_mixer_add_list()
1067 void snd_usb_mixer_elem_free(struct snd_kcontrol *kctl) in snd_usb_mixer_elem_free() argument
1069 usb_mixer_elem_info_free(kctl->private_data); in snd_usb_mixer_elem_free()
1070 kctl->private_data = NULL; in snd_usb_mixer_elem_free()
1079 struct snd_kcontrol *kctl) in volume_control_quirks() argument
1085 if (strcmp(kctl->id.name, "Effect Duration") == 0) { in volume_control_quirks()
1091 if (strcmp(kctl->id.name, "Effect Volume") == 0 || in volume_control_quirks()
1092 strcmp(kctl->id.name, "Effect Feedback Volume") == 0) { in volume_control_quirks()
1097 if (strstr(kctl->id.name, "Effect Return") != NULL) { in volume_control_quirks()
1103 if ((strstr(kctl->id.name, "Playback Volume") != NULL) || in volume_control_quirks()
1104 (strstr(kctl->id.name, "Effect Send") != NULL)) { in volume_control_quirks()
1113 if (strcmp(kctl->id.name, "Effect Duration") == 0) { in volume_control_quirks()
1121 if (strcmp(kctl->id.name, "Effect Volume") == 0 || in volume_control_quirks()
1122 strcmp(kctl->id.name, "Effect Feedback Volume") == 0) { in volume_control_quirks()
1132 if (!strcmp(kctl->id.name, "PCM Playback Volume")) { in volume_control_quirks()
1148 if (!strcmp(kctl->id.name, "PCM Playback Volume") && in volume_control_quirks()
1157 if (!strcmp(kctl->id.name, "Mic Capture Volume")) { in volume_control_quirks()
1181 if (!strcmp(kctl->id.name, "Mic Capture Volume")) { in volume_control_quirks()
1188 if ((strstr(kctl->id.name, "Playback Volume") != NULL) || in volume_control_quirks()
1189 strstr(kctl->id.name, "Capture Volume") != NULL) { in volume_control_quirks()
1202 int default_min, struct snd_kcontrol *kctl) in get_min_max_with_quirks() argument
1286 if (kctl) in get_min_max_with_quirks()
1287 volume_control_quirks(cval, kctl); in get_min_max_with_quirks()
1540 static size_t append_ctl_name(struct snd_kcontrol *kctl, const char *str) in append_ctl_name() argument
1542 return strlcat(kctl->id.name, str, sizeof(kctl->id.name)); in append_ctl_name()
1550 static void check_no_speaker_on_headset(struct snd_kcontrol *kctl, in check_no_speaker_on_headset() argument
1558 if (strcmp("Speaker", kctl->id.name)) in check_no_speaker_on_headset()
1570 strlcpy(kctl->id.name, "Headphone", sizeof(kctl->id.name)); in check_no_speaker_on_headset()
1594 struct snd_kcontrol *kctl; in __build_feature_ctl() local
1644 kctl = snd_ctl_new1(&usb_feature_unit_ctl_ro, cval); in __build_feature_ctl()
1646 kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval); in __build_feature_ctl()
1648 if (!kctl) { in __build_feature_ctl()
1653 kctl->private_free = snd_usb_mixer_elem_free; in __build_feature_ctl()
1655 len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name)); in __build_feature_ctl()
1659 kctl->id.name, sizeof(kctl->id.name)); in __build_feature_ctl()
1675 kctl->id.name, in __build_feature_ctl()
1676 sizeof(kctl->id.name), 1); in __build_feature_ctl()
1679 kctl->id.name, in __build_feature_ctl()
1680 sizeof(kctl->id.name), 1); in __build_feature_ctl()
1682 snprintf(kctl->id.name, sizeof(kctl->id.name), in __build_feature_ctl()
1687 check_no_speaker_on_headset(kctl, mixer->chip->card); in __build_feature_ctl()
1696 append_ctl_name(kctl, " Capture"); in __build_feature_ctl()
1698 append_ctl_name(kctl, " Playback"); in __build_feature_ctl()
1700 append_ctl_name(kctl, control == UAC_FU_MUTE ? in __build_feature_ctl()
1705 strlcpy(kctl->id.name, audio_feature_info[control-1].name, in __build_feature_ctl()
1706 sizeof(kctl->id.name)); in __build_feature_ctl()
1711 get_min_max_with_quirks(cval, 0, kctl); in __build_feature_ctl()
1717 cval->head.id, kctl->id.name); in __build_feature_ctl()
1718 snd_ctl_free_one(kctl); in __build_feature_ctl()
1726 kctl->tlv.c = snd_usb_mixer_vol_tlv; in __build_feature_ctl()
1727 kctl->vd[0].access |= in __build_feature_ctl()
1733 snd_usb_mixer_fu_apply_quirk(mixer, cval, unitid, kctl); in __build_feature_ctl()
1747 cval->head.id, kctl->id.name, cval->channels, in __build_feature_ctl()
1752 cval->head.id, kctl->id.name, cval->channels, in __build_feature_ctl()
1754 snd_usb_mixer_add_control(&cval->head, kctl); in __build_feature_ctl()
1802 struct snd_kcontrol *kctl; in build_connector_control() local
1833 kctl = snd_ctl_new1(&usb_connector_ctl_ro, cval); in build_connector_control()
1834 if (!kctl) { in build_connector_control()
1840 if (check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name))) in build_connector_control()
1841 strlcat(kctl->id.name, " Jack", sizeof(kctl->id.name)); in build_connector_control()
1843 get_connector_control_name(mixer, term, is_input, kctl->id.name, in build_connector_control()
1844 sizeof(kctl->id.name)); in build_connector_control()
1845 kctl->private_free = snd_usb_mixer_elem_free; in build_connector_control()
1846 snd_usb_mixer_add_control(&cval->head, kctl); in build_connector_control()
1854 struct snd_kcontrol *kctl; in parse_clock_source_unit() local
1883 kctl = snd_ctl_new1(&usb_bool_master_control_ctl_ro, cval); in parse_clock_source_unit()
1885 if (!kctl) { in parse_clock_source_unit()
1890 kctl->private_free = snd_usb_mixer_elem_free; in parse_clock_source_unit()
1894 snprintf(kctl->id.name, sizeof(kctl->id.name), in parse_clock_source_unit()
1897 snprintf(kctl->id.name, sizeof(kctl->id.name), in parse_clock_source_unit()
1900 return snd_usb_mixer_add_control(&cval->head, kctl); in parse_clock_source_unit()
2077 struct snd_kcontrol *kctl; in build_mixer_unit_ctl() local
2103 kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval); in build_mixer_unit_ctl()
2104 if (!kctl) { in build_mixer_unit_ctl()
2109 kctl->private_free = snd_usb_mixer_elem_free; in build_mixer_unit_ctl()
2111 len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name)); in build_mixer_unit_ctl()
2113 len = get_term_name(state->chip, iterm, kctl->id.name, in build_mixer_unit_ctl()
2114 sizeof(kctl->id.name), 0); in build_mixer_unit_ctl()
2116 len = sprintf(kctl->id.name, "Mixer Source %d", in_ch + 1); in build_mixer_unit_ctl()
2117 append_ctl_name(kctl, " Volume"); in build_mixer_unit_ctl()
2120 cval->head.id, kctl->id.name, cval->channels, cval->min, cval->max); in build_mixer_unit_ctl()
2121 snd_usb_mixer_add_control(&cval->head, kctl); in build_mixer_unit_ctl()
2384 struct snd_kcontrol *kctl; in build_audio_procunit() local
2494 kctl = snd_ctl_new1(&mixer_procunit_ctl, cval); in build_audio_procunit()
2495 if (!kctl) { in build_audio_procunit()
2499 kctl->private_free = snd_usb_mixer_elem_free; in build_audio_procunit()
2501 if (check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name))) { in build_audio_procunit()
2504 strlcpy(kctl->id.name, info->name, sizeof(kctl->id.name)); in build_audio_procunit()
2514 kctl->id.name, in build_audio_procunit()
2515 sizeof(kctl->id.name)); in build_audio_procunit()
2517 strlcpy(kctl->id.name, name, sizeof(kctl->id.name)); in build_audio_procunit()
2519 append_ctl_name(kctl, " "); in build_audio_procunit()
2520 append_ctl_name(kctl, valinfo->suffix); in build_audio_procunit()
2524 cval->head.id, kctl->id.name, cval->channels, in build_audio_procunit()
2527 err = snd_usb_mixer_add_control(&cval->head, kctl); in build_audio_procunit()
2627 static void usb_mixer_selector_elem_free(struct snd_kcontrol *kctl) in usb_mixer_selector_elem_free() argument
2631 if (kctl->private_data) { in usb_mixer_selector_elem_free()
2632 struct usb_mixer_elem_info *cval = kctl->private_data; in usb_mixer_selector_elem_free()
2635 kctl->private_data = NULL; in usb_mixer_selector_elem_free()
2637 if (kctl->private_value) { in usb_mixer_selector_elem_free()
2638 char **itemlist = (char **)kctl->private_value; in usb_mixer_selector_elem_free()
2642 kctl->private_value = 0; in usb_mixer_selector_elem_free()
2656 struct snd_kcontrol *kctl; in parse_audio_selector_unit() local
2722 kctl = snd_ctl_new1(&mixer_selectunit_ctl, cval); in parse_audio_selector_unit()
2723 if (! kctl) { in parse_audio_selector_unit()
2728 kctl->private_value = (unsigned long)namelist; in parse_audio_selector_unit()
2729 kctl->private_free = usb_mixer_selector_elem_free; in parse_audio_selector_unit()
2732 len = check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name)); in parse_audio_selector_unit()
2743 nameid, kctl->id.name, in parse_audio_selector_unit()
2744 sizeof(kctl->id.name)); in parse_audio_selector_unit()
2754 kctl->id.name, sizeof(kctl->id.name), 0); in parse_audio_selector_unit()
2757 strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name)); in parse_audio_selector_unit()
2762 append_ctl_name(kctl, " Clock Source"); in parse_audio_selector_unit()
2764 append_ctl_name(kctl, " Capture Source"); in parse_audio_selector_unit()
2766 append_ctl_name(kctl, " Playback Source"); in parse_audio_selector_unit()
2770 cval->head.id, kctl->id.name, desc->bNrInPins); in parse_audio_selector_unit()
2771 return snd_usb_mixer_add_control(&cval->head, kctl); in parse_audio_selector_unit()
3268 &list->kctl->id); in snd_usb_mixer_notify_id()
3312 if (list->kctl) in snd_usb_mixer_proc_read()
3315 list->kctl->id.name, in snd_usb_mixer_proc_read()
3316 list->kctl->id.index); in snd_usb_mixer_proc_read()
3351 if (!list->kctl) in snd_usb_mixer_interrupt_v2()
3369 &info->head.kctl->id); in snd_usb_mixer_interrupt_v2()
3508 struct snd_kcontrol *kctl = snd_ctl_new1(&keep_iface_ctl, mixer); in create_keep_iface_ctl() local
3511 if (snd_ctl_find_id(mixer->chip->card, &kctl->id)) { in create_keep_iface_ctl()
3512 snd_ctl_free_one(kctl); in create_keep_iface_ctl()
3516 return snd_ctl_add(mixer->chip->card, kctl); in create_keep_iface_ctl()