Clemens Ladisch wrote:
Carlo Florendo wrote:
Clemens Ladisch wrote:
However, I wish to be able to make the sequencer or player work without the use of the ALSA queue nor the workaround in (2).
Why?
Because the queue output and draining, AFAICS, is implemented in a blocking manner.

When non-blocking mode is set (see snd_seq_nonblock()),
snd_seq_drain_output() does not block but writes only as many events to
the kernel buffer as fit inside (or returns -EAGAIN if the kernel buffer
is completely full).

Bingo! My recent tests show that snd_seq_nonblock() is indeed a useful function and enables me to have control of the sequencer every time it outputs an event :)

Gee, I've read the ALSA lib doc for months and never came across this function. Up to now, I've not seen the part of the doc that describes snd_seq_nonblock so I went straight to the source code of alsa-lib under src/seq/seq.c and grepped for snd_seq_block().

The alsa-lib docs have to be improved :)

Thank you for the pointers!


Regards,
Clemens


Best Regards,

Carlo

--
Carlo Florendo
Softare Engineer/Network Co-Administrator
Astra Philippines Inc.
UP-Ayala Technopark, Diliman 1101, Quezon City
Philippines
http://www.astra.ph

--
The Astra Group of Companies
5-3-11 Sekido, Tama City
Tokyo 206-0011, Japan
http://www.astra.co.jp
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-dev

Reply via email to