Added an alternative GUI based on JUCE; I like FLTK more...

This commit is contained in:
Johannes Findeisen 2026-11-06 23:17:49 +01:00
commit cd2f87a8b3
58 changed files with 11136 additions and 10 deletions

View file

@ -254,3 +254,29 @@ It requires an existing JACK/PipeWire server, changes no user preferences and
connects no physical outputs. Enable `XTC_ENABLE_LIVE_TESTS` to include
`playback` in CTest. The fake-backend `gui-midi-workflows` test also checks absent
input/output/both, returning devices and genuine backend failures.
The optional JUCE workstation builds the shared GUI regression source against
`src/gui/JUCE` as `test_juce_gui`; `juce-gui-*` CTests cover the same retained
commands, fault injection, dialogs, hierarchy and gestures without FLTK. Build
all test fixtures before running them. The real-backend `test_juce_playback`
delivers JUCE MouseEvents to native transport buttons, resumes with a JUCE
KeyPress, and checks finite nonzero stereo samples through a private JACK probe
with missing saved MIDI devices. It writes no user preferences and connects no
physical ports. Run it from the repository root under Xvfb after building:
```sh
cmake --build build/juce-gui --parallel 4
ctest --test-dir build/juce-gui -R juce-gui --output-on-failure -j1
xvfb-run -a ./build/juce-gui/test_juce_playback
```
`XTC_ENABLE_LIVE_TESTS` registers the latter as `juce-playback`. An optional
`XTC_JUCE_SCREENSHOT` absolute output path captures the actual workstation
component during that live regression.
Linux qualification used JUCE 8.0.15: all 12 JUCE GUI workflows passed (with
focused reruns after native focus/blur fixes), alongside all 57 existing
FLTK/core tests. Native Play/Stop/Space, expanded-track rendering and finite
stereo output passed with deliberately unavailable saved MIDI devices. Bare
Xvfb can emit JUCE X11 BadAtom diagnostics without a window manager; these do
not indicate a failed assertion in the workflow checks.