Lines Matching refs:mixer

72 	fmixer->mixer = card->mixer_oss;  in snd_mixer_oss_open()
101 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_info() local
105 strlcpy(info.id, mixer && mixer->id[0] ? mixer->id : card->driver, sizeof(info.id)); in snd_mixer_oss_info()
106 strlcpy(info.name, mixer && mixer->name[0] ? mixer->name : card->mixername, sizeof(info.name)); in snd_mixer_oss_info()
117 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_info_obsolete() local
121 strlcpy(info.id, mixer && mixer->id[0] ? mixer->id : card->driver, sizeof(info.id)); in snd_mixer_oss_info_obsolete()
122 strlcpy(info.name, mixer && mixer->name[0] ? mixer->name : card->mixername, sizeof(info.name)); in snd_mixer_oss_info_obsolete()
130 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_caps() local
133 if (mixer == NULL) in snd_mixer_oss_caps()
135 if (mixer->get_recsrc && mixer->put_recsrc) in snd_mixer_oss_caps()
142 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_devmask() local
146 if (mixer == NULL) in snd_mixer_oss_devmask()
149 pslot = &mixer->slots[chn]; in snd_mixer_oss_devmask()
158 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_stereodevs() local
162 if (mixer == NULL) in snd_mixer_oss_stereodevs()
165 pslot = &mixer->slots[chn]; in snd_mixer_oss_stereodevs()
174 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_recmask() local
177 if (mixer == NULL) in snd_mixer_oss_recmask()
179 if (mixer->put_recsrc && mixer->get_recsrc) { /* exclusive */ in snd_mixer_oss_recmask()
180 result = mixer->mask_recsrc; in snd_mixer_oss_recmask()
185 pslot = &mixer->slots[chn]; in snd_mixer_oss_recmask()
195 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_get_recsrc() local
198 if (mixer == NULL) in snd_mixer_oss_get_recsrc()
200 if (mixer->put_recsrc && mixer->get_recsrc) { /* exclusive */ in snd_mixer_oss_get_recsrc()
203 if ((err = mixer->get_recsrc(fmixer, &index)) < 0) in snd_mixer_oss_get_recsrc()
210 pslot = &mixer->slots[chn]; in snd_mixer_oss_get_recsrc()
219 return mixer->oss_recsrc = result; in snd_mixer_oss_get_recsrc()
224 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_set_recsrc() local
230 if (mixer == NULL) in snd_mixer_oss_set_recsrc()
232 if (mixer->get_recsrc && mixer->put_recsrc) { /* exclusive input */ in snd_mixer_oss_set_recsrc()
233 if (recsrc & ~mixer->oss_recsrc) in snd_mixer_oss_set_recsrc()
234 recsrc &= ~mixer->oss_recsrc; in snd_mixer_oss_set_recsrc()
235 mixer->put_recsrc(fmixer, ffz(~recsrc)); in snd_mixer_oss_set_recsrc()
236 mixer->get_recsrc(fmixer, &index); in snd_mixer_oss_set_recsrc()
240 pslot = &mixer->slots[chn]; in snd_mixer_oss_set_recsrc()
248 pslot = &mixer->slots[chn]; in snd_mixer_oss_set_recsrc()
262 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_get_volume() local
266 if (mixer == NULL || slot > 30) in snd_mixer_oss_get_volume()
268 pslot = &mixer->slots[slot]; in snd_mixer_oss_get_volume()
290 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_set_volume() local
294 if (mixer == NULL || slot > 30) in snd_mixer_oss_set_volume()
296 pslot = &mixer->slots[slot]; in snd_mixer_oss_set_volume()
395 fmixer.mixer = card->mixer_oss; in snd_mixer_oss_ioctl_card()
456 struct snd_mixer_oss *mixer = card->mixer_oss;
457 if (mixer)
458 mixer->mask_recsrc |= 1 << slot;
463 struct snd_mixer_oss *mixer = card->mixer_oss;
464 if (mixer && (mixer->mask_recsrc & (1 << slot)))
510 static struct snd_kcontrol *snd_mixer_oss_test_id(struct snd_mixer_oss *mixer, const char *name, in… in snd_mixer_oss_test_id() argument
512 struct snd_card *card = mixer->card; in snd_mixer_oss_test_id()
807 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_get_recsrc2() local
822 kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0); in snd_mixer_oss_get_recsrc2()
832 if (!(mixer->mask_recsrc & (1 << idx))) in snd_mixer_oss_get_recsrc2()
834 pslot = &mixer->slots[idx]; in snd_mixer_oss_get_recsrc2()
857 struct snd_mixer_oss *mixer = fmixer->mixer; in snd_mixer_oss_put_recsrc2() local
873 kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0); in snd_mixer_oss_put_recsrc2()
881 if (!(mixer->mask_recsrc & (1 << idx))) in snd_mixer_oss_put_recsrc2()
883 pslot = &mixer->slots[idx]; in snd_mixer_oss_put_recsrc2()
915 static int snd_mixer_oss_build_test(struct snd_mixer_oss *mixer, struct slot *slot, const char *nam… in snd_mixer_oss_build_test() argument
919 struct snd_card *card = mixer->card; in snd_mixer_oss_build_test()
923 kcontrol = snd_mixer_oss_test_id(mixer, name, index); in snd_mixer_oss_build_test()
970 static int snd_mixer_oss_build_test_all(struct snd_mixer_oss *mixer, in snd_mixer_oss_build_test_all() argument
977 err = snd_mixer_oss_build_test(mixer, slot, ptr->name, ptr->index, in snd_mixer_oss_build_test_all()
982 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
987 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
992 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
997 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
1002 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
1007 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
1012 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
1017 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
1022 err = snd_mixer_oss_build_test(mixer, slot, str, ptr->index, in snd_mixer_oss_build_test_all()
1035 static int snd_mixer_oss_build_input(struct snd_mixer_oss *mixer, struct snd_mixer_oss_assign_table… in snd_mixer_oss_build_input() argument
1044 if (mixer->slots[ptr->oss_id].get_volume && ! replace_old) in snd_mixer_oss_build_input()
1049 if (snd_mixer_oss_build_test_all(mixer, ptr, &slot)) in snd_mixer_oss_build_input()
1051 down_read(&mixer->card->controls_rwsem); in snd_mixer_oss_build_input()
1052 if (ptr->index == 0 && (kctl = snd_mixer_oss_test_id(mixer, "Capture Source", 0)) != NULL) { in snd_mixer_oss_build_input()
1057 up_read(&mixer->card->controls_rwsem); in snd_mixer_oss_build_input()
1062 up_read(&mixer->card->controls_rwsem); in snd_mixer_oss_build_input()
1078 up_read(&mixer->card->controls_rwsem); in snd_mixer_oss_build_input()
1090 up_read(&mixer->card->controls_rwsem); in snd_mixer_oss_build_input()
1099 rslot = &mixer->slots[ptr->oss_id]; in snd_mixer_oss_build_input()
1112 mixer->mask_recsrc |= 1 << ptr->oss_id; in snd_mixer_oss_build_input()
1160 struct snd_mixer_oss *mixer = entry->private_data; in snd_mixer_oss_proc_read() local
1163 mutex_lock(&mixer->reg_mutex); in snd_mixer_oss_proc_read()
1169 p = (struct slot *)mixer->slots[i].private_data; in snd_mixer_oss_proc_read()
1178 mutex_unlock(&mixer->reg_mutex); in snd_mixer_oss_proc_read()
1184 struct snd_mixer_oss *mixer = entry->private_data; in snd_mixer_oss_proc_write() local
1205 mutex_lock(&mixer->reg_mutex); in snd_mixer_oss_proc_write()
1206 mixer_slot_clear(&mixer->slots[ch]); in snd_mixer_oss_proc_write()
1207 mutex_unlock(&mixer->reg_mutex); in snd_mixer_oss_proc_write()
1216 mutex_lock(&mixer->reg_mutex); in snd_mixer_oss_proc_write()
1217 slot = (struct slot *)mixer->slots[ch].private_data; in snd_mixer_oss_proc_write()
1232 if (snd_mixer_oss_build_input(mixer, tbl, 1, 1) <= 0) { in snd_mixer_oss_proc_write()
1237 mutex_unlock(&mixer->reg_mutex); in snd_mixer_oss_proc_write()
1241 static void snd_mixer_oss_proc_init(struct snd_mixer_oss *mixer) in snd_mixer_oss_proc_init() argument
1245 entry = snd_info_create_card_entry(mixer->card, "oss_mixer", in snd_mixer_oss_proc_init()
1246 mixer->card->proc_root); in snd_mixer_oss_proc_init()
1253 entry->private_data = mixer; in snd_mixer_oss_proc_init()
1258 mixer->proc_entry = entry; in snd_mixer_oss_proc_init()
1261 static void snd_mixer_oss_proc_done(struct snd_mixer_oss *mixer) in snd_mixer_oss_proc_done() argument
1263 snd_info_free_entry(mixer->proc_entry); in snd_mixer_oss_proc_done()
1264 mixer->proc_entry = NULL; in snd_mixer_oss_proc_done()
1271 static void snd_mixer_oss_build(struct snd_mixer_oss *mixer) in snd_mixer_oss_build() argument
1316 snd_mixer_oss_build_input(mixer, &table[idx], 0, 0); in snd_mixer_oss_build()
1317 if (mixer->mask_recsrc) { in snd_mixer_oss_build()
1318 mixer->get_recsrc = snd_mixer_oss_get_recsrc2; in snd_mixer_oss_build()
1319 mixer->put_recsrc = snd_mixer_oss_put_recsrc2; in snd_mixer_oss_build()
1329 struct snd_mixer_oss *mixer = private; in snd_mixer_oss_free1() local
1333 if (!mixer) in snd_mixer_oss_free1()
1335 card = mixer->card; in snd_mixer_oss_free1()
1336 if (snd_BUG_ON(mixer != card->mixer_oss)) in snd_mixer_oss_free1()
1340 struct snd_mixer_oss_slot *chn = &mixer->slots[idx]; in snd_mixer_oss_free1()
1344 kfree(mixer); in snd_mixer_oss_free1()
1350 struct snd_mixer_oss *mixer; in snd_mixer_oss_notify_handler() local
1355 mixer = kcalloc(2, sizeof(*mixer), GFP_KERNEL); in snd_mixer_oss_notify_handler()
1356 if (mixer == NULL) in snd_mixer_oss_notify_handler()
1358 mutex_init(&mixer->reg_mutex); in snd_mixer_oss_notify_handler()
1365 kfree(mixer); in snd_mixer_oss_notify_handler()
1368 mixer->oss_dev_alloc = 1; in snd_mixer_oss_notify_handler()
1369 mixer->card = card; in snd_mixer_oss_notify_handler()
1371 strlcpy(mixer->name, card->mixername, sizeof(mixer->name)); in snd_mixer_oss_notify_handler()
1373 snprintf(mixer->name, sizeof(mixer->name), in snd_mixer_oss_notify_handler()
1378 mixer->name); in snd_mixer_oss_notify_handler()
1381 mixer->slots[idx].number = idx; in snd_mixer_oss_notify_handler()
1382 card->mixer_oss = mixer; in snd_mixer_oss_notify_handler()
1383 snd_mixer_oss_build(mixer); in snd_mixer_oss_notify_handler()
1384 snd_mixer_oss_proc_init(mixer); in snd_mixer_oss_notify_handler()
1386 mixer = card->mixer_oss; in snd_mixer_oss_notify_handler()
1387 if (mixer == NULL) in snd_mixer_oss_notify_handler()
1389 if (mixer->oss_dev_alloc) { in snd_mixer_oss_notify_handler()
1391 snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_MIXERS, mixer->card->number); in snd_mixer_oss_notify_handler()
1393 snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_MIXER, mixer->card, 0); in snd_mixer_oss_notify_handler()
1394 mixer->oss_dev_alloc = 0; in snd_mixer_oss_notify_handler()
1398 snd_mixer_oss_proc_done(mixer); in snd_mixer_oss_notify_handler()
1399 return snd_mixer_oss_free1(mixer); in snd_mixer_oss_notify_handler()