Hi Clemens, On 22/08/16 13:43, Clemens Ladisch wrote: > Felipe F. Tonello wrote: >> +.I \-D, \-\-delay=mseconds >> +Adds a delay in between each SysEx message sent to a device. > >> + while (data < (send_data + send_data_length)) { >> + int len = send_data + send_data_length - data; >> + char *temp; >> + >> + if (data > send_data) >> + usleep(delay * 1000); > > The MIDI data is sent asynchonously, so this delay is not _between_ messages. > You'd have to add 320 µs for any byte not yet sent (I guess you have to use > snd_rawmidi_status_get_avail() to find out how many have been sent). Right. Or I can just use snd_rawmidi_drain()? Otherwise it will add too much complexity. > > >> + /* find end of SysEx */ >> + if ((temp = memchr(data, 0xf7, len))) > > This would be clearer with "!= NULL". Ok. > >> + len = temp - data + 1; >> + >> + if ((err = snd_rawmidi_write(output, data, len)) < 0) { >> + error("cannot send data: %s", snd_strerror(err)); >> + return err; >> + } >> + >> + data += len; >> + } >> } >> } > Thanks -- Felipe
Attachment:
0x92698E6A.asc
Description: application/pgp-keys
_______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel