Lines Matching defs:pcm

2  * \file pcm/pcm_plug.c
62 static int snd_pcm_plug_close(snd_pcm_t *pcm)
64 snd_pcm_plug_t *plug = pcm->private_data;
73 snd_pcm_unlink_hw_ptr(pcm, plug->req_slave);
74 snd_pcm_unlink_appl_ptr(pcm, plug->req_slave);
83 static int snd_pcm_plug_info(snd_pcm_t *pcm, snd_pcm_info_t *info)
85 snd_pcm_plug_t *plug = pcm->private_data;
351 static void snd_pcm_plug_clear(snd_pcm_t *pcm)
353 snd_pcm_plug_t *plug = pcm->private_data;
357 snd_pcm_unlink_hw_ptr(pcm, plug->gen.slave);
358 snd_pcm_unlink_appl_ptr(pcm, plug->gen.slave);
361 pcm->fast_ops = slave->fast_ops;
362 pcm->fast_op_arg = slave->fast_op_arg;
376 static int snd_pcm_plug_change_rate(snd_pcm_t *pcm, snd_pcm_t **new, snd_pcm_plug_params_t *clt, snd_pcm_plug_params_t *slv)
378 snd_pcm_plug_t *plug = pcm->private_data;
396 static int snd_pcm_plug_change_channels(snd_pcm_t *pcm, snd_pcm_t **new, snd_pcm_plug_params_t *clt, snd_pcm_plug_params_t *slv)
398 snd_pcm_plug_t *plug = pcm->private_data;
452 if (pcm->stream == SND_PCM_STREAM_PLAYBACK &&
458 } else if (pcm->stream == SND_PCM_STREAM_CAPTURE &&
510 static int snd_pcm_plug_change_format(snd_pcm_t *pcm, snd_pcm_t **new, snd_pcm_plug_params_t *clt, snd_pcm_plug_params_t *slv)
512 snd_pcm_plug_t *plug = pcm->private_data;
616 static int snd_pcm_plug_change_access(snd_pcm_t *pcm, snd_pcm_t **new, snd_pcm_plug_params_t *clt, snd_pcm_plug_params_t *slv)
618 snd_pcm_plug_t *plug = pcm->private_data;
630 static int snd_pcm_plug_change_mmap(snd_pcm_t *pcm, snd_pcm_t **new,
634 snd_pcm_plug_t *plug = pcm->private_data;
667 static int snd_pcm_plug_insert_plugins(snd_pcm_t *pcm,
671 snd_pcm_plug_t *plug = pcm->private_data;
700 snd_pcm_plug_clear(pcm);
703 err = funcs[k](pcm, &new, client, &p);
705 snd_pcm_plug_clear(pcm);
716 static int snd_pcm_plug_hw_refine_cprepare(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_hw_params_t *params)
742 static int snd_pcm_plug_hw_refine_sprepare(snd_pcm_t *pcm, snd_pcm_hw_params_t *sparams)
744 snd_pcm_plug_t *plug = pcm->private_data;
812 static int snd_pcm_plug_hw_refine_schange(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
815 snd_pcm_plug_t *plug = pcm->private_data;
827 (pcm->mode & SND_PCM_NO_AUTO_RESAMPLE) ||
836 if (plug->schannels == -2 || (pcm->mode & SND_PCM_NO_AUTO_CHANNELS))
843 if (plug->sformat == -2 || (pcm->mode & SND_PCM_NO_AUTO_FORMAT))
864 SNDERR("Unable to find an usable slave format for '%s'", pcm->name);
887 pcm->name);
912 static int snd_pcm_plug_hw_refine_cchange(snd_pcm_t *pcm ATTRIBUTE_UNUSED,
916 snd_pcm_plug_t *plug = pcm->private_data;
927 if (plug->schannels == -2 || (pcm->mode & SND_PCM_NO_AUTO_CHANNELS))
930 if (plug->sformat == -2 || (pcm->mode & SND_PCM_NO_AUTO_FORMAT))
974 (pcm->mode & SND_PCM_NO_AUTO_RESAMPLE) ||
1018 static int snd_pcm_plug_hw_refine_slave(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
1020 snd_pcm_plug_t *plug = pcm->private_data;
1024 static int snd_pcm_plug_hw_refine(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
1026 return snd_pcm_hw_refine_slave(pcm, params,
1034 static int snd_pcm_plug_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
1036 snd_pcm_plug_t *plug = pcm->private_data;
1042 err = snd_pcm_plug_hw_refine_sprepare(pcm, &sparams);
1045 err = snd_pcm_plug_hw_refine_schange(pcm, params, &sparams);
1060 snd_pcm_plug_clear(pcm);
1068 err = snd_pcm_plug_insert_plugins(pcm, &clt_params, &slv_params);
1075 snd_pcm_plug_clear(pcm);
1078 snd_pcm_unlink_hw_ptr(pcm, plug->req_slave);
1079 snd_pcm_unlink_appl_ptr(pcm, plug->req_slave);
1081 pcm->fast_ops = slave->fast_ops;
1082 pcm->fast_op_arg = slave->fast_op_arg;
1083 snd_pcm_link_hw_ptr(pcm, slave);
1084 snd_pcm_link_appl_ptr(pcm, slave);
1088 static int snd_pcm_plug_hw_free(snd_pcm_t *pcm)
1090 snd_pcm_plug_t *plug = pcm->private_data;
1093 snd_pcm_plug_clear(pcm);
1097 static int snd_pcm_plug_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t * params)
1099 snd_pcm_plug_t *plug = pcm->private_data;
1103 pcm->fast_ops = slave->fast_ops;
1104 pcm->fast_op_arg = slave->fast_op_arg;
1109 static void snd_pcm_plug_dump(snd_pcm_t *pcm, snd_output_t *out)
1111 snd_pcm_plug_t *plug = pcm->private_data;
1156 snd_pcm_t *pcm;
1175 err = snd_pcm_new(&pcm, SND_PCM_TYPE_PLUG, name, slave->stream, slave->mode);
1180 pcm->ops = &snd_pcm_plug_ops;
1181 pcm->fast_ops = slave->fast_ops;
1182 pcm->fast_op_arg = slave->fast_op_arg;
1187 snd_pcm_free(pcm);
1192 pcm->private_data = plug;
1193 pcm->poll_fd = slave->poll_fd;
1194 pcm->poll_events = slave->poll_events;
1195 pcm->mmap_shadow = 1;
1196 pcm->tstamp_type = slave->tstamp_type;
1197 snd_pcm_link_hw_ptr(pcm, slave);
1198 snd_pcm_link_appl_ptr(pcm, slave);
1199 *pcmp = pcm;
1211 pcm.name {
1216 pcm STR # Slave PCM name
1218 pcm { } # Slave PCM definition
1238 # default value is taken from defaults.pcm.rate_converter