]> git.alsa-project.org Git - alsa-utils.git/commitdiff
aplaymidi: Set event completely for tempo event
authorJohn K. Luebs <john@luebs.org>
Sun, 7 Jan 2024 19:33:33 +0000 (13:33 -0600)
committerTakashi Iwai <tiwai@suse.de>
Mon, 8 Jan 2024 08:52:55 +0000 (09:52 +0100)
After UMP support was added in b399fb8 ev.type setting was inadvertently
dropped in the code path handling tempo meta event.
This is causing tempo meta events to not be handled at all.
Moreover, snd_seq_ev_set_fixed is also missing so MIDI files with
variable events such as SYSEX before the tempo meta event usually are
causing a segfault.

Fixes: b399fb85a919 ("aplaymidi: Add UMP support")
Closes: https://github.com/alsa-project/alsa-utils/issues/241
Signed-off-by: Takashi Iwai <tiwai@suse.de>
seq/aplaymidi/aplaymidi.c

index a7293d31fb31dd70008c3bd4379d1920c7e345c1..66038e278d4a983a1fc0181b865289872b02bec8 100644 (file)
@@ -819,6 +819,8 @@ static void play_midi(void)
                ev.time.tick = event->tick;
                ev.dest = ports[event->port];
                if (event->type == SND_SEQ_EVENT_TEMPO) {
+                       snd_seq_ev_set_fixed(&ev);
+                       ev.type = event->type;
                        ev.dest.client = SND_SEQ_CLIENT_SYSTEM;
                        ev.dest.port = SND_SEQ_PORT_SYSTEM_TIMER;
                        ev.data.queue.queue = queue;