Carlo Florendo wrote:
(1) I've written a command line MIDI sequencer for
lightweight systems and
am successful in making it work using the ALSA queue API. However, one
drawback of the API is its lack of callback functions. I wish to be able
to track events as they are drained by the queue.
(2) I know and have successfully worked on a work around whereby the
application itself subscribes to the output port so as to see events as
they are played.
You could also send special user-defined events just to yourself, but
the principle is the same.
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?
How could I get the app to <u|nano>sleep() in
the most accurate way in
userspace without using the ALSA queue nor the extra subscription to an
output port?
On newer kernels, you could try POSIX interval timers.
Or, is there a drain or output routine that supports
callbacks?
Why can't you simply call the callback when some event has been
received?
Regards,
Clemens