On Sun, 11 Mar 2012, Clemens Ladisch wrote:
I'd suggest to use one queue for both kinds of events, and to add the delay to the scheduled time. To remove certain events, use snd_seq_remove_events().
In order to understand how snd_seq_remove_events works, I looked into its source code ... I wondered why I can set the queue as condition with snd_seq_remove_events_set_queue but there is no flag that enables queue matching and actually the queue is not checked in remove_match, as far as I can see.
I have another question: Is snd_seq_remove_events atomic, that is, if some events have the same time stamp, is it guaranteed that they are removed all or none at all? Are events still delivered while removing? Or is there a possibility to check what I actually removed? I also thought about using snd_seq_extract_output, but I am concerned about removing events while events are delivered.
Regards, Henning