Skip to content

JMPLAYER R2.7d

Choose a tag to compare

@jihodaya jihodaya released this 19 Aug 22:33
· 7 commits to main since this release
Fix the MIDI button acting on the wrong song while paused

Reported as "the previous song plays when switching between FM and
MIDI". patchTargetPath() asked only isPlaying, but a paused song has
isPlaying false while still being the song on screen - so pausing moved
the button's target to whatever row was highlighted in the playlist,
which during playback is usually a different song. Toggling wrote the
mode onto that file, left the loaded one alone, and the next play
started the highlighted song.

m_pausedByUser is what separates a pause from a stop, so the target is
now chosen by "isPlaying || m_pausedByUser".

The same guard had a second effect: toggling while paused changed the
flag but not the loaded stream, and playPause() would resume the old
engine under the new label. A paused song is now stopped, so the next
play loads it through the engine actually selected. F5's
rebuild-on-close carried the identical guard and got the same fix.

Also brings in midiall, the fourth test tool: MidiPlayer's parse, tempo
map, sound-mode verdict and lyric decoding over 7,884 containers and a
sample of the 116,085 .mid files. It would not have caught this one -
transport state is in the UI, which none of the tools can see.