Lines Matching refs:io
59 ioplug_priv_t *io = pcm->private_data;
62 hw = io->data->callback->pointer(io->data);
67 if ((snd_pcm_uframes_t)hw >= io->last_hw)
68 delta = hw - io->last_hw;
71 (io->data->flags & SND_PCM_IOPLUG_FLAG_BOUNDARY_WA) ?
73 delta = wrap_point + hw - io->last_hw;
75 snd_pcm_mmap_hw_forward(io->data->pcm, delta);
77 if (io->data->state == SND_PCM_STATE_DRAINING) {
82 io->last_hw = (snd_pcm_uframes_t)hw;
84 if (io->data->state == SND_PCM_STATE_DRAINING)
87 io->data->state = SNDRV_PCM_STATE_XRUN;
112 ioplug_priv_t *io = pcm->private_data;
114 if (io->data->version >= 0x010001 &&
115 io->data->callback->delay)
116 return io->data->callback->delay(io->data, delayp);
126 ioplug_priv_t *io = pcm->private_data;
131 status->state = io->data->state;
132 status->trigger_tstamp = io->trigger_tstamp;
135 status->avail_max = io->avail_max;
146 ioplug_priv_t *io = pcm->private_data;
147 return io->data->state;
158 ioplug_priv_t *io = pcm->private_data;
160 io->data->appl_ptr = 0;
161 io->data->hw_ptr = 0;
162 io->last_hw = 0;
163 io->avail_max = 0;
169 ioplug_priv_t *io = pcm->private_data;
173 if (io->data->callback->prepare) {
175 err = io->data->callback->prepare(io->data);
181 io->data->state = SND_PCM_STATE_PREPARED;
288 ioplug_priv_t *io = pcm->private_data;
295 io->params, i);
303 io->params, i);
326 io->params, SND_PCM_IOPLUG_HW_PERIOD_BYTES);
349 io->params, SND_PCM_IOPLUG_HW_BUFFER_BYTES);
361 io->params, SND_PCM_IOPLUG_HW_PERIODS);
394 io->params, SND_PCM_IOPLUG_HW_PERIOD_BYTES);
405 p = &io->params[SND_PCM_IOPLUG_HW_ACCESS];
419 if (io->data->callback->pause)
421 if (io->data->callback->resume)
433 ioplug_priv_t *io = pcm->private_data;
436 INTERNAL(snd_pcm_hw_params_get_access)(params, &io->data->access);
437 INTERNAL(snd_pcm_hw_params_get_format)(params, &io->data->format);
438 INTERNAL(snd_pcm_hw_params_get_channels)(params, &io->data->channels);
439 INTERNAL(snd_pcm_hw_params_get_rate)(params, &io->data->rate, 0);
440 INTERNAL(snd_pcm_hw_params_get_period_size)(params, &io->data->period_size, 0);
441 INTERNAL(snd_pcm_hw_params_get_buffer_size)(params, &io->data->buffer_size);
442 if (io->data->callback->hw_params) {
443 err = io->data->callback->hw_params(io->data, params);
446 INTERNAL(snd_pcm_hw_params_get_access)(params, &io->data->access);
447 INTERNAL(snd_pcm_hw_params_get_format)(params, &io->data->format);
448 INTERNAL(snd_pcm_hw_params_get_channels)(params, &io->data->channels);
449 INTERNAL(snd_pcm_hw_params_get_rate)(params, &io->data->rate, 0);
450 INTERNAL(snd_pcm_hw_params_get_period_size)(params, &io->data->period_size, 0);
451 INTERNAL(snd_pcm_hw_params_get_buffer_size)(params, &io->data->buffer_size);
458 ioplug_priv_t *io = pcm->private_data;
460 if (io->data->callback->hw_free)
461 return io->data->callback->hw_free(io->data);
467 ioplug_priv_t *io = pcm->private_data;
470 if (!io->data->callback->sw_params)
474 err = io->data->callback->sw_params(io->data, params);
483 ioplug_priv_t *io = pcm->private_data;
486 if (io->data->state != SND_PCM_STATE_PREPARED)
489 err = io->data->callback->start(io->data);
493 gettimestamp(&io->trigger_tstamp, pcm->tstamp_type);
494 io->data->state = SND_PCM_STATE_RUNNING;
501 ioplug_priv_t *io = pcm->private_data;
503 if (io->data->state == SND_PCM_STATE_OPEN)
506 io->data->callback->stop(io->data);
508 gettimestamp(&io->trigger_tstamp, pcm->tstamp_type);
509 io->data->state = SND_PCM_STATE_SETUP;
516 ioplug_priv_t *io = pcm->private_data;
518 while (io->data->state == SND_PCM_STATE_DRAINING) {
520 if (io->data->state != SND_PCM_STATE_DRAINING)
523 if (io->data->nonblock)
535 ioplug_priv_t *io = pcm->private_data;
539 switch (io->data->state) {
547 if (!io->data->callback->drain) {
552 io->data->state = SND_PCM_STATE_DRAINING;
556 io->data->state = SND_PCM_STATE_DRAINING;
562 if (io->data->state == SND_PCM_STATE_DRAINING) {
563 if (io->data->callback->drain) {
565 err = io->data->callback->drain(io->data);
573 if (!err && io->data->state != SND_PCM_STATE_SETUP)
581 ioplug_priv_t *io = pcm->private_data;
589 if (io->data->state != states[prev])
591 if (io->data->callback->pause) {
592 err = io->data->callback->pause(io->data, enable);
596 io->data->state = states[enable];
625 ioplug_priv_t *io = pcm->private_data;
627 if (io->data->callback->resume)
628 io->data->callback->resume(io->data);
638 ioplug_priv_t *io = pcm->private_data;
643 if (io->data->callback->transfer)
644 result = io->data->callback->transfer(io->data, areas, offset, size);
705 ioplug_priv_t *io = pcm->private_data;
712 if (io->data->callback->transfer &&
716 result = io->data->callback->transfer(io->data, *areas, *offset, *frames);
754 ioplug_priv_t *io = pcm->private_data;
758 if (io->data->state == SND_PCM_STATE_XRUN)
762 if (avail > io->avail_max)
763 io->avail_max = avail;
769 ioplug_priv_t *io = pcm->private_data;
771 io->data->nonblock = nonblock;
777 ioplug_priv_t *io = pcm->private_data;
780 if (io->data->callback->poll_descriptors_count) {
782 err = io->data->callback->poll_descriptors_count(io->data);
790 ioplug_priv_t *io = pcm->private_data;
793 if (io->data->callback->poll_descriptors) {
795 err = io->data->callback->poll_descriptors(io->data, pfds, space);
812 ioplug_priv_t *io = pcm->private_data;
815 if (io->data->callback->poll_revents) {
817 err = io->data->callback->poll_revents(io->data, pfds, nfds, revents);
845 ioplug_priv_t *io = pcm->private_data;
847 if (io->data->version >= 0x010002 &&
848 io->data->callback->query_chmaps)
849 return io->data->callback->query_chmaps(io->data);
855 ioplug_priv_t *io = pcm->private_data;
857 if (io->data->version >= 0x010002 &&
858 io->data->callback->get_chmap)
859 return io->data->callback->get_chmap(io->data);
865 ioplug_priv_t *io = pcm->private_data;
867 if (io->data->version >= 0x010002 &&
868 io->data->callback->set_chmap)
869 return io->data->callback->set_chmap(io->data, map);
875 ioplug_priv_t *io = pcm->private_data;
877 if (io->data->callback->dump)
878 io->data->callback->dump(io->data, out);
880 if (io->data->name)
881 snd_output_printf(out, "%s\n", io->data->name);
891 static void clear_io_params(ioplug_priv_t *io)
895 snd_ext_parm_clear(&io->params[i]);
900 ioplug_priv_t *io = pcm->private_data;
902 clear_io_params(io);
903 if (io->data->callback->close)
904 io->data->callback->close(io->data);
905 free(io);
1077 ioplug_priv_t *io;
1094 io = calloc(1, sizeof(*io));
1095 if (! io)
1098 io->data = ioplug;
1104 free(io);
1111 pcm->private_data = io;
1140 ioplug_priv_t *io = ioplug->pcm->private_data;
1141 clear_io_params(io);
1157 ioplug_priv_t *io = ioplug->pcm->private_data;
1163 io->params[type].integer = 1;
1164 return snd_ext_parm_set_list(&io->params[type], num_list, list);
1181 ioplug_priv_t *io = ioplug->pcm->private_data;
1191 io->params[type].integer = 1;
1192 return snd_ext_parm_set_minmax(&io->params[type], min, max);