• Home
  • Raw
  • Download

Lines Matching full:loopback

2  *  Loopback soundcard
47 MODULE_DESCRIPTION("A loopback soundcard");
49 MODULE_SUPPORTED_DEVICE("{{ALSA,Loopback soundcard}}");
60 MODULE_PARM_DESC(index, "Index value for loopback soundcard.");
62 MODULE_PARM_DESC(id, "ID string for loopback soundcard.");
64 MODULE_PARM_DESC(enable, "Enable this loopback soundcard.");
66 MODULE_PARM_DESC(pcm_substreams, "PCM substreams # (1-8) for loopback driver.");
96 struct loopback { struct
105 struct loopback *loopback; argument
156 return &dpcm->loopback->setup[dpcm->substream->number][device]; in get_setup()
234 card = cable->streams[SNDRV_PCM_STREAM_PLAYBACK]->loopback->card; in loopback_check_format()
256 snd_ctl_notify(dpcm->loopback->card, in loopback_active_notify()
361 mutex_lock(&dpcm->loopback->cable_lock); in loopback_prepare()
367 mutex_unlock(&dpcm->loopback->cable_lock); in loopback_prepare()
601 mutex_lock(&dpcm->loopback->cable_lock); in loopback_hw_free()
603 mutex_unlock(&dpcm->loopback->cable_lock); in loopback_hw_free()
623 mutex_lock(&dpcm->loopback->cable_lock); in rule_format()
626 mutex_unlock(&dpcm->loopback->cable_lock); in rule_format()
637 mutex_lock(&dpcm->loopback->cable_lock); in rule_rate()
640 mutex_unlock(&dpcm->loopback->cable_lock); in rule_rate()
653 mutex_lock(&dpcm->loopback->cable_lock); in rule_channels()
656 mutex_unlock(&dpcm->loopback->cable_lock); in rule_channels()
664 struct loopback *loopback = substream->private_data; in free_cable() local
668 cable = loopback->cables[substream->number][dev]; in free_cable()
678 loopback->cables[substream->number][dev] = NULL; in free_cable()
686 struct loopback *loopback = substream->private_data; in loopback_open() local
692 mutex_lock(&loopback->cable_lock); in loopback_open()
698 dpcm->loopback = loopback; in loopback_open()
702 cable = loopback->cables[substream->number][dev]; in loopback_open()
711 loopback->cables[substream->number][dev] = cable; in loopback_open()
755 mutex_unlock(&loopback->cable_lock); in loopback_open()
761 struct loopback *loopback = substream->private_data; in loopback_close() local
765 mutex_lock(&loopback->cable_lock); in loopback_close()
767 mutex_unlock(&loopback->cable_lock); in loopback_close()
783 static int loopback_pcm_new(struct loopback *loopback, in loopback_pcm_new() argument
789 err = snd_pcm_new(loopback->card, "Loopback PCM", device, in loopback_pcm_new()
796 pcm->private_data = loopback; in loopback_pcm_new()
798 strcpy(pcm->name, "Loopback PCM"); in loopback_pcm_new()
800 loopback->pcm[device] = pcm; in loopback_pcm_new()
818 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_shift_get() local
820 mutex_lock(&loopback->cable_lock); in loopback_rate_shift_get()
822 loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_get()
824 mutex_unlock(&loopback->cable_lock); in loopback_rate_shift_get()
831 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_shift_put() local
840 mutex_lock(&loopback->cable_lock); in loopback_rate_shift_put()
841 if (val != loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_put()
843 loopback->setup[kcontrol->id.subdevice] in loopback_rate_shift_put()
847 mutex_unlock(&loopback->cable_lock); in loopback_rate_shift_put()
854 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_notify_get() local
856 mutex_lock(&loopback->cable_lock); in loopback_notify_get()
858 loopback->setup[kcontrol->id.subdevice] in loopback_notify_get()
860 mutex_unlock(&loopback->cable_lock); in loopback_notify_get()
867 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_notify_put() local
872 mutex_lock(&loopback->cable_lock); in loopback_notify_put()
873 if (val != loopback->setup[kcontrol->id.subdevice] in loopback_notify_put()
875 loopback->setup[kcontrol->id.subdevice] in loopback_notify_put()
879 mutex_unlock(&loopback->cable_lock); in loopback_notify_put()
886 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_active_get() local
891 mutex_lock(&loopback->cable_lock); in loopback_active_get()
892 cable = loopback->cables[kcontrol->id.subdevice][kcontrol->id.device ^ 1]; in loopback_active_get()
898 mutex_unlock(&loopback->cable_lock); in loopback_active_get()
917 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_format_get() local
920 loopback->setup[kcontrol->id.subdevice] in loopback_format_get()
939 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_rate_get() local
941 mutex_lock(&loopback->cable_lock); in loopback_rate_get()
943 loopback->setup[kcontrol->id.subdevice] in loopback_rate_get()
945 mutex_unlock(&loopback->cable_lock); in loopback_rate_get()
963 struct loopback *loopback = snd_kcontrol_chip(kcontrol); in loopback_channels_get() local
965 mutex_lock(&loopback->cable_lock); in loopback_channels_get()
967 loopback->setup[kcontrol->id.subdevice] in loopback_channels_get()
969 mutex_unlock(&loopback->cable_lock); in loopback_channels_get()
1022 static int loopback_mixer_new(struct loopback *loopback, int notify) in loopback_mixer_new() argument
1024 struct snd_card *card = loopback->card; in loopback_mixer_new()
1030 strcpy(card->mixername, "Loopback Mixer"); in loopback_mixer_new()
1032 pcm = loopback->pcm[dev]; in loopback_mixer_new()
1036 setup = &loopback->setup[substr][dev]; in loopback_mixer_new()
1045 loopback); in loopback_mixer_new()
1101 struct loopback *loopback, in print_substream_info() argument
1105 struct loopback_cable *cable = loopback->cables[sub][num]; in print_substream_info()
1122 struct loopback *loopback = entry->private_data; in print_cable_info() local
1125 mutex_lock(&loopback->cable_lock); in print_cable_info()
1129 print_substream_info(buffer, loopback, sub, num); in print_cable_info()
1130 mutex_unlock(&loopback->cable_lock); in print_cable_info()
1133 static int loopback_proc_new(struct loopback *loopback, int cidx) in loopback_proc_new() argument
1140 err = snd_card_proc_new(loopback->card, name, &entry); in loopback_proc_new()
1144 snd_info_set_text_ops(entry, loopback, print_cable_info); in loopback_proc_new()
1151 struct loopback *loopback; in loopback_probe() local
1156 sizeof(struct loopback), &card); in loopback_probe()
1159 loopback = card->private_data; in loopback_probe()
1166 loopback->card = card; in loopback_probe()
1167 mutex_init(&loopback->cable_lock); in loopback_probe()
1169 err = loopback_pcm_new(loopback, 0, pcm_substreams[dev]); in loopback_probe()
1172 err = loopback_pcm_new(loopback, 1, pcm_substreams[dev]); in loopback_probe()
1175 err = loopback_mixer_new(loopback, pcm_notify[dev] ? 1 : 0); in loopback_probe()
1178 loopback_proc_new(loopback, 0); in loopback_probe()
1179 loopback_proc_new(loopback, 1); in loopback_probe()
1180 strcpy(card->driver, "Loopback"); in loopback_probe()
1181 strcpy(card->shortname, "Loopback"); in loopback_probe()
1182 sprintf(card->longname, "Loopback %i", dev + 1); in loopback_probe()
1203 struct loopback *loopback = card->private_data; in loopback_suspend() local
1207 snd_pcm_suspend_all(loopback->pcm[0]); in loopback_suspend()
1208 snd_pcm_suspend_all(loopback->pcm[1]); in loopback_suspend()
1273 printk(KERN_ERR "aloop: No loopback enabled\n"); in alsa_card_loopback_init()