LINUX.ORG.RU

ALSA, использование poll()

 ,


0

1

Экспериментирую с 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. :)


Ответ на: комментарий от x905

Спасибо посмотрю, правда мне нужно на чистом Си.

rom_ka
() автор топика

По поводу опроса дескрипторов. Нашел неплохой пример speexclient а также в исходниках jack.

rom_ka
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.