Lines Matching refs:ctl_list
62 struct ctl_list *uc_mgr_get_master_ctl(snd_use_case_mgr_t *uc_mgr)
65 struct ctl_list *ctl_list = NULL, *ctl_list2;
67 list_for_each(pos, &uc_mgr->ctl_list) {
68 ctl_list2 = list_entry(pos, struct ctl_list, list);
71 if (ctl_list) {
75 ctl_list = ctl_list2;
77 return ctl_list;
80 struct ctl_list *uc_mgr_get_ctl_by_card(snd_use_case_mgr_t *uc_mgr, int card)
82 struct ctl_list *ctl_list;
87 err = uc_mgr_open_ctl(uc_mgr, &ctl_list, cname, 1);
90 return ctl_list;
93 struct ctl_list *uc_mgr_get_ctl_by_name(snd_use_case_mgr_t *uc_mgr, const char *name, int idx)
96 struct ctl_list *ctl_list;
101 list_for_each(pos, &uc_mgr->ctl_list) {
102 ctl_list = list_entry(pos, struct ctl_list, list);
103 s = snd_ctl_card_info_get_name(ctl_list->ctl_info);
108 return ctl_list;
119 ctl_list = uc_mgr_get_ctl_by_card(uc_mgr, card);
120 if (ctl_list == NULL)
122 s = snd_ctl_card_info_get_name(ctl_list->ctl_info);
125 return ctl_list;
137 struct ctl_list *ctl_list;
139 ctl_list = uc_mgr_get_master_ctl(uc_mgr);
140 if (ctl_list)
141 return ctl_list->ctl;
145 static void uc_mgr_free_ctl(struct ctl_list *ctl_list)
150 list_for_each_safe(pos, npos, &ctl_list->dev_list) {
155 snd_ctl_card_info_free(ctl_list->ctl_info);
156 free(ctl_list);
162 struct ctl_list *ctl_list;
164 list_for_each_safe(pos, npos, &uc_mgr->ctl_list) {
165 ctl_list = list_entry(pos, struct ctl_list, list);
166 snd_ctl_close(ctl_list->ctl);
167 list_del(&ctl_list->list);
168 uc_mgr_free_ctl(ctl_list);
172 static int uc_mgr_ctl_add_dev(struct ctl_list *ctl_list, const char *device)
178 list_for_each(pos, &ctl_list->dev_list) {
193 list_add_tail(&ctl_dev->list, &ctl_list->dev_list);
198 struct ctl_list **ctl_list,
204 struct ctl_list *cl = NULL;
211 if (!(*ctl_list)) {
223 *ctl_list = cl;
226 (*ctl_list)->slave = slave;
231 err = uc_mgr_ctl_add_dev(*ctl_list, dev);
237 err = uc_mgr_ctl_add_dev(*ctl_list, dev);
242 err = uc_mgr_ctl_add_dev(*ctl_list, device);
247 list_add_tail(&(*ctl_list)->list, &uc_mgr->ctl_list);
251 if (*ctl_list == cl) {
253 *ctl_list = NULL;
259 struct ctl_list **ctll,
265 struct ctl_list *ctl_list;
277 list_for_each(pos1, &uc_mgr->ctl_list) {
278 ctl_list = list_entry(pos1, struct ctl_list, list);
279 if (ctl_list->ucm_group != ucm_group)
281 list_for_each(pos2, &ctl_list->dev_list) {
284 *ctll = ctl_list;
286 ctl_list->slave = 0;
307 list_for_each(pos1, &uc_mgr->ctl_list) {
308 ctl_list = list_entry(pos1, struct ctl_list, list);
309 if (ctl_list->ucm_group != ucm_group)
311 if (strcmp(id, snd_ctl_card_info_get_id(ctl_list->ctl_info)) == 0) {
313 err = uc_mgr_ctl_add(uc_mgr, &ctl_list, ctl, card, info, device + ucm_offset, slave);
317 ctl_list->ucm_group = ucm_group;
318 *ctll = ctl_list;
323 ctl_list = NULL;
324 err = uc_mgr_ctl_add(uc_mgr, &ctl_list, ctl, -1, info, device + ucm_offset, slave);
328 ctl_list->ucm_group = ucm_group;
329 *ctll = ctl_list;