ALSA, использование poll()
Экспериментирую с alsa. В тестовых целях пытаюсь написать некий код для вывода звука.
Не могу понять как правильно опрашивать хандлеры (snd_pcm_t) с помощью вызова poll()
Следующие функции:
int snd_pcm_poll_descriptors_count(snd_pcm_t *pcm)
int snd_pcm_poll_descriptors(snd_pcm_t *pcm, struct pollfd *pfds, unsigned int space)
int snd_pcm_poll_descriptors_revents(snd_pcm_t *pcm, struct pollfd *pfds, unsigned int nfds, unsigned short *revents)
Собственно вопросы:
- в каких случаях у хандлера может быть больше одного дескриптора?
- в случае двух и больше дескрипторов, по какому из них запускать snd_pcm_poll_descriptors_revents()? По первому? По каждому?
- можно ли в тот же массив struct pollfd добавлять другие дескрипторы, например сетевые?
В документации (которая практически отсутствует) к alsa ответов не нашел. Гугл также молчит. Надеюсь на вашу помощь в познании «истины» alsa. :)