Lines Matching full:dummy

3  *  Dummy soundcard
26 MODULE_DESCRIPTION("Dummy soundcard (/dev/null)");
63 MODULE_PARM_DESC(index, "Index value for dummy soundcard.");
65 MODULE_PARM_DESC(id, "ID string for dummy soundcard.");
67 MODULE_PARM_DESC(enable, "Enable this dummy soundcard.");
71 MODULE_PARM_DESC(pcm_devs, "PCM devices # (0-4) for dummy driver.");
73 MODULE_PARM_DESC(pcm_substreams, "PCM substreams # (1-128) for dummy driver.");
75 //MODULE_PARM_DESC(midi_devs, "MIDI devices # (0-2) for dummy driver.");
77 MODULE_PARM_DESC(mixer_volume_level_min, "Minimum mixer volume level for dummy driver. Default: -50…
79 MODULE_PARM_DESC(mixer_volume_level_max, "Maximum mixer volume level for dummy driver. Default: 100…
543 struct snd_dummy *dummy = snd_pcm_substream_chip(substream); in dummy_pcm_open() local
544 const struct dummy_model *model = dummy->model; in dummy_pcm_open()
560 runtime->hw = dummy->pcm_hw; in dummy_pcm_open()
593 * dummy buffer handling
667 static int snd_card_dummy_pcm(struct snd_dummy *dummy, int device, in snd_card_dummy_pcm() argument
674 err = snd_pcm_new(dummy->card, "Dummy PCM", device, in snd_card_dummy_pcm()
678 dummy->pcm = pcm; in snd_card_dummy_pcm()
685 pcm->private_data = dummy; in snd_card_dummy_pcm()
687 strcpy(pcm->name, "Dummy PCM"); in snd_card_dummy_pcm()
723 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); in snd_dummy_volume_get() local
726 spin_lock_irq(&dummy->mixer_lock); in snd_dummy_volume_get()
727 ucontrol->value.integer.value[0] = dummy->mixer_volume[addr][0]; in snd_dummy_volume_get()
728 ucontrol->value.integer.value[1] = dummy->mixer_volume[addr][1]; in snd_dummy_volume_get()
729 spin_unlock_irq(&dummy->mixer_lock); in snd_dummy_volume_get()
736 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); in snd_dummy_volume_put() local
750 spin_lock_irq(&dummy->mixer_lock); in snd_dummy_volume_put()
751 change = dummy->mixer_volume[addr][0] != left || in snd_dummy_volume_put()
752 dummy->mixer_volume[addr][1] != right; in snd_dummy_volume_put()
753 dummy->mixer_volume[addr][0] = left; in snd_dummy_volume_put()
754 dummy->mixer_volume[addr][1] = right; in snd_dummy_volume_put()
755 spin_unlock_irq(&dummy->mixer_lock); in snd_dummy_volume_put()
772 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); in snd_dummy_capsrc_get() local
775 spin_lock_irq(&dummy->mixer_lock); in snd_dummy_capsrc_get()
776 ucontrol->value.integer.value[0] = dummy->capture_source[addr][0]; in snd_dummy_capsrc_get()
777 ucontrol->value.integer.value[1] = dummy->capture_source[addr][1]; in snd_dummy_capsrc_get()
778 spin_unlock_irq(&dummy->mixer_lock); in snd_dummy_capsrc_get()
784 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); in snd_dummy_capsrc_put() local
790 spin_lock_irq(&dummy->mixer_lock); in snd_dummy_capsrc_put()
791 change = dummy->capture_source[addr][0] != left && in snd_dummy_capsrc_put()
792 dummy->capture_source[addr][1] != right; in snd_dummy_capsrc_put()
793 dummy->capture_source[addr][0] = left; in snd_dummy_capsrc_put()
794 dummy->capture_source[addr][1] = right; in snd_dummy_capsrc_put()
795 spin_unlock_irq(&dummy->mixer_lock); in snd_dummy_capsrc_put()
810 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); in snd_dummy_iobox_get() local
812 value->value.enumerated.item[0] = dummy->iobox; in snd_dummy_iobox_get()
819 struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol); in snd_dummy_iobox_put() local
825 changed = value->value.enumerated.item[0] != dummy->iobox; in snd_dummy_iobox_put()
827 dummy->iobox = value->value.enumerated.item[0]; in snd_dummy_iobox_put()
829 if (dummy->iobox) { in snd_dummy_iobox_put()
830 dummy->cd_volume_ctl->vd[0].access &= in snd_dummy_iobox_put()
832 dummy->cd_switch_ctl->vd[0].access &= in snd_dummy_iobox_put()
835 dummy->cd_volume_ctl->vd[0].access |= in snd_dummy_iobox_put()
837 dummy->cd_switch_ctl->vd[0].access |= in snd_dummy_iobox_put()
841 snd_ctl_notify(dummy->card, SNDRV_CTL_EVENT_MASK_INFO, in snd_dummy_iobox_put()
842 &dummy->cd_volume_ctl->id); in snd_dummy_iobox_put()
843 snd_ctl_notify(dummy->card, SNDRV_CTL_EVENT_MASK_INFO, in snd_dummy_iobox_put()
844 &dummy->cd_switch_ctl->id); in snd_dummy_iobox_put()
870 static int snd_card_dummy_new_mixer(struct snd_dummy *dummy) in snd_card_dummy_new_mixer() argument
872 struct snd_card *card = dummy->card; in snd_card_dummy_new_mixer()
877 spin_lock_init(&dummy->mixer_lock); in snd_card_dummy_new_mixer()
878 strcpy(card->mixername, "Dummy Mixer"); in snd_card_dummy_new_mixer()
879 dummy->iobox = 1; in snd_card_dummy_new_mixer()
882 kcontrol = snd_ctl_new1(&snd_dummy_controls[idx], dummy); in snd_card_dummy_new_mixer()
887 dummy->cd_volume_ctl = kcontrol; in snd_card_dummy_new_mixer()
889 dummy->cd_switch_ctl = kcontrol; in snd_card_dummy_new_mixer()
899 static void print_formats(struct snd_dummy *dummy, in print_formats() argument
905 if (dummy->pcm_hw.formats & pcm_format_to_bits(i)) in print_formats()
910 static void print_rates(struct snd_dummy *dummy, in print_rates() argument
919 if (dummy->pcm_hw.rates & SNDRV_PCM_RATE_CONTINUOUS) in print_rates()
921 if (dummy->pcm_hw.rates & SNDRV_PCM_RATE_KNOT) in print_rates()
924 if (dummy->pcm_hw.rates & (1 << i)) in print_rates()
928 #define get_dummy_int_ptr(dummy, ofs) \ argument
929 (unsigned int *)((char *)&((dummy)->pcm_hw) + (ofs))
930 #define get_dummy_ll_ptr(dummy, ofs) \ argument
931 (unsigned long long *)((char *)&((dummy)->pcm_hw) + (ofs))
962 struct snd_dummy *dummy = entry->private_data; in dummy_proc_read() local
969 *get_dummy_int_ptr(dummy, fields[i].offset)); in dummy_proc_read()
972 *get_dummy_ll_ptr(dummy, fields[i].offset)); in dummy_proc_read()
974 print_formats(dummy, buffer); in dummy_proc_read()
976 print_rates(dummy, buffer); in dummy_proc_read()
984 struct snd_dummy *dummy = entry->private_data; in dummy_proc_write() local
1004 *get_dummy_int_ptr(dummy, fields[i].offset) = val; in dummy_proc_write()
1006 *get_dummy_ll_ptr(dummy, fields[i].offset) = val; in dummy_proc_write()
1022 struct snd_dummy *dummy; in snd_dummy_probe() local
1031 dummy = card->private_data; in snd_dummy_probe()
1032 dummy->card = card; in snd_dummy_probe()
1035 pr_info("snd-dummy: Using model '%s' for card %i\n", in snd_dummy_probe()
1037 m = dummy->model = *mdl; in snd_dummy_probe()
1046 err = snd_card_dummy_pcm(dummy, idx, pcm_substreams[dev]); in snd_dummy_probe()
1051 dummy->pcm_hw = dummy_pcm_hardware; in snd_dummy_probe()
1054 dummy->pcm_hw.formats = m->formats; in snd_dummy_probe()
1056 dummy->pcm_hw.buffer_bytes_max = m->buffer_bytes_max; in snd_dummy_probe()
1058 dummy->pcm_hw.period_bytes_min = m->period_bytes_min; in snd_dummy_probe()
1060 dummy->pcm_hw.period_bytes_max = m->period_bytes_max; in snd_dummy_probe()
1062 dummy->pcm_hw.periods_min = m->periods_min; in snd_dummy_probe()
1064 dummy->pcm_hw.periods_max = m->periods_max; in snd_dummy_probe()
1066 dummy->pcm_hw.rates = m->rates; in snd_dummy_probe()
1068 dummy->pcm_hw.rate_min = m->rate_min; in snd_dummy_probe()
1070 dummy->pcm_hw.rate_max = m->rate_max; in snd_dummy_probe()
1072 dummy->pcm_hw.channels_min = m->channels_min; in snd_dummy_probe()
1074 dummy->pcm_hw.channels_max = m->channels_max; in snd_dummy_probe()
1078 pr_warn("snd-dummy: Invalid mixer volume level: min=%d, max=%d. Fall back to default value.\n", in snd_dummy_probe()
1083 err = snd_card_dummy_new_mixer(dummy); in snd_dummy_probe()
1086 strcpy(card->driver, "Dummy"); in snd_dummy_probe()
1087 strcpy(card->shortname, "Dummy"); in snd_dummy_probe()
1088 sprintf(card->longname, "Dummy %i", dev + 1); in snd_dummy_probe()
1090 dummy_proc_init(dummy); in snd_dummy_probe()
1169 pr_err("Dummy soundcard not found or device busy\n"); in alsa_card_dummy_init()