alsa_midi: Prevent some notes to linger when application is closed (#16815)

Appears to be enough to silence any lingering notes when midi is playing
and core is suddenly closed. Tried adding this on the core side but
midi_free comes first before retro_deinit/retro_unload_game so the
driver was already closed.

Another way to fix this in the core's side is to call 'flush'
immediately after any midi writes, but that doesn't appear to be the
api's design, flush is supposed to get called at the end of the
retro_run.

Im open for any better methods. but this should work for the issue
without causing other problems.

Co-authored-by: negativeExponent <negativeExponent@users.noreply.github.com>
This commit is contained in:
negativeExponent 2024-07-26 02:38:09 +08:00 committed by GitHub
parent b090f85620
commit 22d7fbd521
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -157,7 +157,11 @@ static void alsa_midi_free(void *p)
if (d)
{
if (d->seq)
{
snd_seq_drain_output(d->seq);
snd_seq_close(d->seq);
}
free(d);
}
}