Lines Matching defs:pcm
2 * \file pcm/pcm_ladspa.c
208 static int snd_pcm_ladspa_close(snd_pcm_t *pcm)
210 snd_pcm_ladspa_t *ladspa = pcm->private_data;
213 return snd_pcm_generic_close(pcm);
216 static int snd_pcm_ladspa_hw_refine_cprepare(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_hw_params_t *params)
218 snd_pcm_ladspa_t *ladspa = pcm->private_data;
231 if (ladspa->channels > 0 && pcm->stream == SND_PCM_STREAM_PLAYBACK) {
240 static int snd_pcm_ladspa_hw_refine_sprepare(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_hw_params_t *sparams)
242 snd_pcm_ladspa_t *ladspa = pcm->private_data;
249 if (ladspa->channels > 0 && pcm->stream == SND_PCM_STREAM_CAPTURE)
254 static int snd_pcm_ladspa_hw_refine_schange(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_hw_params_t *params,
272 static int snd_pcm_ladspa_hw_refine_cchange(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_hw_params_t *params,
290 static int snd_pcm_ladspa_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
292 return snd_pcm_hw_refine_slave(pcm, params,
300 static int snd_pcm_ladspa_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params)
302 // snd_pcm_ladspa_t *ladspa = pcm->private_data;
303 int err = snd_pcm_hw_params_slave(pcm, params,
319 static void snd_pcm_ladspa_free_instances(snd_pcm_t *pcm, snd_pcm_ladspa_t *ladspa, int cleanup)
324 list = pcm->stream == SND_PCM_STREAM_PLAYBACK ? &ladspa->pplugins : &ladspa->cplugins;
611 static int snd_pcm_ladspa_allocate_instances(snd_pcm_t *pcm, snd_pcm_ladspa_t *ladspa)
620 list = pcm->stream == SND_PCM_STREAM_PLAYBACK ? &ladspa->pplugins : &ladspa->cplugins;
622 (pcm->stream == SND_PCM_STREAM_PLAYBACK ? pcm->channels : ladspa->plug.gen.slave->channels);
640 instance->handle = plugin->desc->instantiate(plugin->desc, pcm->rate);
686 static int snd_pcm_ladspa_allocate_memory(snd_pcm_t *pcm, snd_pcm_ladspa_t *ladspa)
696 if (pcm->buffer_size > ladspa->allocated)
697 ladspa->allocated = pcm->buffer_size;
698 if (pcm->stream == SND_PCM_STREAM_PLAYBACK) {
699 ichannels = pcm->channels;
703 ochannels = pcm->channels;
708 list = pcm->stream == SND_PCM_STREAM_PLAYBACK ? &ladspa->pplugins : &ladspa->cplugins;
823 static int snd_pcm_ladspa_init(snd_pcm_t *pcm)
825 snd_pcm_ladspa_t *ladspa = pcm->private_data;
828 snd_pcm_ladspa_free_instances(pcm, ladspa, 1);
829 err = snd_pcm_ladspa_allocate_instances(pcm, ladspa);
831 snd_pcm_ladspa_free_instances(pcm, ladspa, 1);
834 err = snd_pcm_ladspa_allocate_memory(pcm, ladspa);
836 snd_pcm_ladspa_free_instances(pcm, ladspa, 1);
842 static int snd_pcm_ladspa_hw_free(snd_pcm_t *pcm)
844 snd_pcm_ladspa_t *ladspa = pcm->private_data;
846 snd_pcm_ladspa_free_instances(pcm, ladspa, 1);
847 return snd_pcm_generic_hw_free(pcm);
851 snd_pcm_ladspa_write_areas(snd_pcm_t *pcm,
859 snd_pcm_ladspa_t *ladspa = pcm->private_data;
871 pcm->channels, size, pcm->format);
912 snd_pcm_ladspa_read_areas(snd_pcm_t *pcm,
920 snd_pcm_ladspa_t *ladspa = pcm->private_data;
932 pcm->channels, size, pcm->format);
1051 static void snd_pcm_ladspa_dump(snd_pcm_t *pcm, snd_output_t *out)
1053 snd_pcm_ladspa_t *ladspa = pcm->private_data;
1060 if (pcm->setup) {
1062 snd_pcm_dump_setup(pcm, out);
1593 snd_pcm_t *pcm;
1634 err = snd_pcm_new(&pcm, SND_PCM_TYPE_LADSPA, name, slave->stream, slave->mode);
1639 pcm->ops = &snd_pcm_ladspa_ops;
1640 pcm->fast_ops = &snd_pcm_plugin_fast_ops;
1641 pcm->private_data = ladspa;
1642 pcm->poll_fd = slave->poll_fd;
1643 pcm->poll_events = slave->poll_events;
1644 pcm->tstamp_type = slave->tstamp_type;
1645 snd_pcm_set_hw_ptr(pcm, &ladspa->plug.hw_ptr, -1, 0);
1646 snd_pcm_set_appl_ptr(pcm, &ladspa->plug.appl_ptr, -1, 0);
1647 *pcmp = pcm;
1676 pcm.name {
1681 pcm STR # Slave PCM name
1683 pcm { } # Slave PCM definition