[alsa-devel] [LAD] How to get correct midi timings from ALSA using the library only

Carlo Florendo subscribermail at gmail.com
Wed Jul 25 09:16:28 UTC 2007


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



More information about the Linux-audio-dev mailing list