Lines Matching refs:slave
59 snd_pcm_channel_area_t *sareas; /* areas for splitted period (slave pcm) */
68 int start_pending; /* start is triggered but not commited to slave */
250 snd_output_printf(out, "REFINE (slave params):\n");
260 snd_output_printf(out, "REFINE (slave params):\n");
354 snd_pcm_t *slave = rate->gen.slave;
393 sinfo->format = slave->format;
394 sinfo->rate = slave->rate;
395 sinfo->buffer_size = slave->buffer_size;
396 sinfo->period_size = slave->period_size;
488 return snd_pcm_hw_free(rate->gen.slave);
494 snd_pcm_t *slave = rate->gen.slave;
498 *val = slave->buffer_size;
502 *val = div * slave->period_size;
504 *val = muldiv_near(*val, slave->period_size, pcm->period_size);
511 snd_pcm_t *slave = rate->gen.slave;
517 err = snd_pcm_sw_params_current(slave, sparams);
523 boundary2 = slave->buffer_size;
525 boundary2 * 2 <= LONG_MAX - slave->buffer_size) {
539 if (sparams->start_threshold <= slave->buffer_size) {
540 if (sparams->start_threshold > (slave->buffer_size / sparams->avail_min) * sparams->avail_min)
541 sparams->start_threshold = (slave->buffer_size / sparams->avail_min) * sparams->avail_min;
554 return snd_pcm_sw_params(slave, sparams);
619 do_convert(slave_areas, slave_offset, rate->gen.slave->period_size,
633 slave_areas, slave_offset, rate->gen.slave->period_size,
647 slave_hw_ptr_diff = pcm_frame_diff(slave_hw_ptr, rate->last_slave_hw_ptr, rate->gen.slave->boundary);
650 last_slave_hw_ptr_frac = rate->last_slave_hw_ptr % rate->gen.slave->period_size;
651 /* While handling fraction part fo slave period, rounded value will be
656 * rate->hw_ptr += [ (no. of updated slave periods * pcm rate period size) -
658 * fractional part of updated slave hw ptr's rounded value ]
661 (((last_slave_hw_ptr_frac + slave_hw_ptr_diff) / rate->gen.slave->period_size) * pcm->period_size) -
663 rate->ops.input_frames(rate->obj, (last_slave_hw_ptr_frac + slave_hw_ptr_diff) % rate->gen.slave->period_size));
672 snd_pcm_rate_sync_hwptr0(pcm, *rate->gen.slave->hw.ptr);
678 int err = snd_pcm_hwsync(rate->gen.slave);
700 err = snd_pcm_delay(rate->gen.slave, &slave_delay);
720 err = snd_pcm_prepare(rate->gen.slave);
736 err = snd_pcm_reset(rate->gen.slave);
788 result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
792 * Because snd_pcm_rate_write_areas1() below will convert to a full slave period
793 * then there had better be a full slave period available in the slave buffer.
795 if (slave_frames < rate->gen.slave->period_size) {
802 result = snd_pcm_mmap_commit(rate->gen.slave, slave_offset, slave_size);
806 result = snd_pcm_rewind(rate->gen.slave, result);
824 result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
834 rate->gen.slave->format);
835 result = snd_pcm_mmap_commit(rate->gen.slave, slave_offset, cont);
839 result = snd_pcm_rewind(rate->gen.slave, result);
852 result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
864 rate->gen.slave->format);
865 result = snd_pcm_mmap_commit(rate->gen.slave, slave_offset, cont);
869 result = snd_pcm_rewind(rate->gen.slave, result + xfer);
879 snd_pcm_start(rate->gen.slave);
890 rate->gen.slave->period_size);
905 result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
908 if (slave_frames < rate->gen.slave->period_size)
912 result = snd_pcm_mmap_commit(rate->gen.slave, slave_offset, rate->gen.slave->period_size);
913 if (result < (snd_pcm_sframes_t)rate->gen.slave->period_size) {
916 result = snd_pcm_rewind(rate->gen.slave, result);
923 result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
928 if (cont > rate->gen.slave->period_size)
929 cont = rate->gen.slave->period_size;
933 rate->gen.slave->format);
934 result = snd_pcm_mmap_commit(rate->gen.slave, slave_offset, cont);
938 result = snd_pcm_rewind(rate->gen.slave, result);
945 if (xfer == rate->gen.slave->period_size)
949 cont = rate->gen.slave->period_size - cont;
951 result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
963 rate->gen.slave->format);
964 result = snd_pcm_mmap_commit(rate->gen.slave, slave_offset, cont);
968 result = snd_pcm_rewind(rate->gen.slave, result + xfer);
999 snd_pcm_t *slave = rate->gen.slave;
1004 slave_size = snd_pcm_avail_update(slave);
1010 (snd_pcm_uframes_t)slave_size >= rate->gen.slave->period_size) {
1017 slave_size -= rate->gen.slave->period_size;
1047 snd_pcm_t *slave = rate->gen.slave;
1054 (snd_pcm_uframes_t)slave_size >= slave->period_size) {
1062 slave_size -= slave->period_size;
1075 slave_size = snd_pcm_avail_update(rate->gen.slave);
1104 /* timestamp is taken from the slave PCM */
1105 err = snd_pcm_htimestamp(rate->gen.slave, &tmp, tstamp);
1121 return snd_pcm_poll_descriptors_revents(rate->gen.slave, pfds, nfds, revents);
1140 snd_pcm_sw_params(rate->gen.slave, &sw_params);
1148 err = __snd_pcm_wait_in_lock(rate->gen.slave, SND_PCM_WAIT_DRAIN);
1153 spsize = rate->gen.slave->period_size;
1179 snd_pcm_sw_params(rate->gen.slave, &sw_params);
1184 return snd_pcm_drain(rate->gen.slave);
1192 return snd_pcm_state(rate->gen.slave);
1202 return snd_pcm_start(rate->gen.slave);
1204 if (snd_pcm_state(rate->gen.slave) != SND_PCM_STATE_PREPARED)
1209 avail = snd_pcm_mmap_playback_hw_avail(rate->gen.slave);
1219 return snd_pcm_start(rate->gen.slave);
1227 err = snd_pcm_status(rate->gen.slave, status);
1270 snd_pcm_dump(rate->gen.slave, out);
1285 * \brief Convert rate pcm frames to corresponding rate slave pcm frames
1287 * \param frames Frames to be converted to slave frames
1288 * \retval Corresponding slave frames
1488 * \param slave Slave PCM handle
1489 * \param close_slave When set, the slave PCM handle is closed with copy PCM
1498 snd_pcm_t *slave, int close_slave)
1509 assert(pcmp && slave);
1517 rate->gen.slave = slave;
1526 err = snd_pcm_new(&pcm, SND_PCM_TYPE_RATE, name, slave->stream, slave->mode);
1610 pcm->poll_fd = slave->poll_fd;
1611 pcm->poll_events = slave->poll_events;
1613 pcm->tstamp_type = slave->tstamp_type;
1630 slave STR # Slave name
1632 slave { # Slave definition
1681 snd_config_t *slave = NULL, *sconf;
1693 if (strcmp(id, "slave") == 0) {
1694 slave = n;
1704 if (!slave) {
1705 SNDERR("slave is not defined");
1709 err = snd_pcm_slave_conf(root, slave, &sconf, 2,
1717 SNDERR("slave format is not linear");