Outputs the specified event record to sequencer. The event is once decoded to byte-stream and put on the buffer of ALSA-lib. The buffered data are sent to sequencer core after the buffer becomes full, or triggered via snd_seq_flush_output.
If the buffer is already or becoming full by this event, this function invokes snd_seq_flush_output internally. In blocking mode, the application may sleep until the output memory pool of the current client has enough room. See memory pool section for more details.
Function returns zero if successfully output. If an error occurs during flushing buffer, this returns the error code. In non-blocking mode, this may return -EAGAIN error if the output memory pool on kernel becomes full. Note that the event which caused an error still remains on the buffer. In order to remove such an error event, use snd_seq_extract_output.