File 0027-aplaymidi-Set-event-completely-for-tempo-event.patch of Package alsa-utils

From 4cb3e3a7b5b2347e87747a5544c1f4db62a7be53 Mon Sep 17 00:00:00 2001
From: "John K. Luebs" <john@luebs.org>
Date: Sun, 7 Jan 2024 13:33:33 -0600
Subject: [PATCH] aplaymidi: Set event completely for tempo event

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 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/seq/aplaymidi/aplaymidi.c b/seq/aplaymidi/aplaymidi.c
index a7293d31fb31..66038e278d4a 100644
--- a/seq/aplaymidi/aplaymidi.c
+++ b/seq/aplaymidi/aplaymidi.c
@@ -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;
-- 
2.35.3

openSUSE Build Service is sponsored by