refactor(source): move every implementation into its module directory

- 36 files move into the module whose AGENTS.md already claimed them:
  Engine/, Synth/, Modulation/, Params/, Plugin/, GUI/, EffectUnits/, Resources/
- Source/engine, modulation, params, plugin and synth become Engine,
  Modulation, Params, Plugin and Synth, matching the directories that already
  hold code
- ExactCompare.h stays at the Source/ root as the one shared header
- SERUMALT_INCLUDE_DIRS adds one include directory per module, so the 31
  parent-relative includes become plain names with no path prefix
- the module AGENTS.md files list owned files instead of describing a move
  that had not happened, and README.md and AGENTS.md describe the real tree

Verified: the harness passes CTest, the Linux VST3 and Standalone link, the
Windows cross-build passes its module checks, each configure exposes only its
own targets, no first-party warning line appears, and the generated Windows
manifest is unchanged.
This commit is contained in:
biggy committed 2026-10-06 09:17:49 +02:00
1 parent facd5c5b5e
commit 4b0db50271
70 files changed
+115 -111

No files matched your search

+23 -15
View File
@@ -83,23 +83,31 @@ extra files. Never edit generated CMakeCache.txt files. The checked-in
## Current source layout
`CMakeLists.txt` owns the explicit `SERUMALT_SOURCES` list and shared target setup.
`cmake/Plugin.cmake` owns production formats and MinGW link flags;
`cmake/Harness.cmake` owns the console harness and CTest registration.
The harness compiles the same processor/editor sources independently of the plugin.
`CMakeLists.txt` owns the explicit `SERUMALT_SOURCES` list, the module include
directories and shared target setup. `cmake/Plugin.cmake` owns production formats
and MinGW link flags; `cmake/Harness.cmake` owns the console harness and CTest
registration. The harness compiles the same processor/editor sources independently
of the plugin.
Most C++ files still live directly under `Source/`. Existing implementation
subdirectories are `EffectUnits/`, `GUI/`, `Presets/`, `Resources/`, and `Tests/`.
`FXProcessor`, `PluginEditor`, `Resources`, and `RAVEButton` remain at the source root.
`RAVEButton.{h,cpp}` defines `RaveController`.
Every implementation lives in a module directory under `Source/`, and the
`AGENTS.md` in that directory owns its rules:
The lowercase `Source/engine`, `modulation`, `params`, `plugin`, and `synth`
directories currently hold guidance, not relocated implementations. Consult their
`AGENTS.md` files when editing the related root-level sources. Consult the matching
`AGENTS.md` when editing an existing implementation subdirectory.
`docs/AUDIT_REPORT.md` is a historical audit and proposed refactor, not a pending
instruction to move files. Update the explicit source list and includes only when
an actual source move is part of the requested task.
- `Engine/` the voice pool, LFOs, wavetable library, FX rack, matrix and macros.
- `Synth/` wavetables, oscillators, filters, envelopes, LFOs and the voice.
- `Modulation/` the modulation matrix, macros, and `RAVEButton`, which defines
`RaveController`.
- `Params/` parameter IDs, indexed groups, enums and unit mappings.
- `Plugin/` the JUCE `AudioProcessor` boundary.
- `GUI/` the editor with its controls and previews.
- `EffectUnits/` the effect rack and the effect units.
- `Presets/`, `Resources/` and `Tests/`, as their names suggest.
`Source/ExactCompare.h` is the one shared header, and several modules include it.
`SERUMALT_INCLUDE_DIRS` lists one include directory per module, so a source names a
header without a path prefix. No two headers share a basename; check that before
adding one. `docs/AUDIT_REPORT.md` is a historical audit and proposed refactor, not
a pending instruction. Update `SERUMALT_SOURCES` and `SERUMALT_INCLUDE_DIRS` when
files move.
## Style and ownership