what's the most straight-forward way to maintain fixed latency between output and input without sitting in loop and continuously checking snd_pcm_avail_update() for the output and input descriptors? I was originally going to use callbacks, but I've recently read that is not a good idea. poll() seems to be the reccomended method. I could use separate threads for output and input, but then I have to perform synchronization between them, marshal external requests between the two threads, and make a lot more work for myself. I'm visualizing something like this: for(;;) { poll() if (output_is_ready) { /* write output buffer */ /* do output-side housekeeping */ } if (input_is_ready) { /* read input buffer */ /* do input-side housekeeping */ } /* communicate with other threads */ } combining the output and input snd_pcm_t into a single descriptor list for poll() seems straight-forward, but can I pass this superset list to snd_pcm_poll_descriptors_revents() without it getting confused? -- Aaron J. Grier | "Not your ordinary poofy goof." | agrier@xxxxxxxxxxxxx _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel