Browse Source

Check early if jack_midi_event_get() was successful.

tags/v1.9.13
Thomas Brand 6 years ago
parent
commit
cf0892305d
1 changed files with 5 additions and 4 deletions
  1. +5
    -4
      example-clients/midi_dump.c

+ 5
- 4
example-clients/midi_dump.c View File

@@ -79,13 +79,14 @@ process (jack_nframes_t frames, void* arg)
for (i = 0; i < N; ++i) {
jack_midi_event_t event;
int r;

r = jack_midi_event_get (&event, buffer, i);

if(event.size>MSG_BUFFER_SIZE) {
if (r != 0) {continue;}

if (event.size > MSG_BUFFER_SIZE) {
fprintf(stderr, "Error: MIDI message was too large, skipping event. Max. allowed size: %d bytes\n", MSG_BUFFER_SIZE);
}
else if (r == 0 && jack_ringbuffer_write_space (rb) >= sizeof(midimsg)) {
else if (jack_ringbuffer_write_space (rb) >= sizeof(midimsg)) {
midimsg m;
m.tme_mon = monotonic_cnt;
m.tme_rel = event.time;
@@ -94,7 +95,7 @@ process (jack_nframes_t frames, void* arg)
jack_ringbuffer_write (rb, (void *) &m, sizeof(midimsg));
}
else {
fprintf(stderr, "Error: ringbuffer was full, skipping event.\n");
fprintf (stderr, "Error: ringbuffer was full, skipping event.\n");
}
}



Loading…
Cancel
Save