Fix playListNumber to stream-name mapping; add JavaFX ui module

- Playlist.streamForPlayListNumber maps the 1-based playListNumber to the
  actual stream entry; stream names are not sequential across discs
  (The Dark Knight: 00001/00003/00004; The Day After Tomorrow has
  duplicate 00002 names).
- CLI menu playback now resolves the correct .MPS file for every region.
- ui module: JavaFX via org.openjfx.javafxplugin + PlayerApp smoke test
  (window verified on this display).
- Validated menus + playback on 4 discs: Batman Begins (USA), Jackass
  (Australia), The Dark Knight (Europe), The Day After Tomorrow (Japan).
This commit is contained in:
2026-09-15 23:04:24 -04:00
parent fd41390642
commit b1896cd71b
4 changed files with 68 additions and 2 deletions
@@ -27,6 +27,16 @@ public final class Playlist {
return streams;
}
/** Returns the stream with the given 1-based playListNumber, or null. */
public Stream streamForPlayListNumber(int playListNumber) {
for (Stream stream : streams) {
if (stream.playListNumber() == playListNumber) {
return stream;
}
}
return null;
}
/** A single MPS stream (playlist item). */
public record Stream(
String name,