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

+2 -2
View File
@@ -2,7 +2,7 @@
## Owned files
- Related rack implementation: `../FXProcessor.h`, `../FXProcessor.cpp`
- FXProcessor.h, FXProcessor.cpp
- Biquad.h
- Hyper.h, Hyper.cpp
- Chorus.h, Chorus.cpp
@@ -27,7 +27,7 @@
## IF-THEN
- IF a unit needs a delay line THEN allocate it in `prepare()` at the full required length and only read and write it in `process`.
- Include the existing rack interface via `../FXProcessor.h`; no source relocation is implied by this guidance.
- Include the rack interface via `FXProcessor.h`.
## Examples
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
namespace serum
{
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
namespace serum
{
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
namespace serum
{
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
#include "Biquad.h"
namespace serum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
#include "Biquad.h"
namespace serum
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
namespace serum
{
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
#include "Biquad.h"
namespace serum
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
namespace serum
{
+1 -1
View File
@@ -1,6 +1,6 @@
#pragma once
#include "../FXProcessor.h"
#include "FXProcessor.h"
namespace serum
{
@@ -1,9 +1,8 @@
# engine module
## Related source files
## Owned files
This directory contains guidance; the implementation remains in `../Engine.h`
and `../Engine.cpp`.
- Engine.h, Engine.cpp
## Rules
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -2,7 +2,7 @@
## Owned files
- Related editor implementation: `../PluginEditor.h`, `../PluginEditor.cpp`
- PluginEditor.h, PluginEditor.cpp
- Knob.h, Knob.cpp
- KnobLookAndFeel.h, KnobLookAndFeel.cpp
- ToggleButton.h, ToggleButton.cpp
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include <JuceHeader.h>
#include "../Resources.h"
#include "Resources.h"
namespace serum
{
+2 -2
View File
@@ -1,6 +1,6 @@
#include "EnvelopeDisplay.h"
#include "../Envelope.h"
#include "../ExactCompare.h"
#include "Envelope.h"
#include "ExactCompare.h"
namespace serum
{
+2 -2
View File
@@ -1,8 +1,8 @@
#pragma once
#include <JuceHeader.h>
#include "../Resources.h"
#include "../Params.h"
#include "Resources.h"
#include "Params.h"
namespace serum
{
+1 -1
View File
@@ -1,5 +1,5 @@
#include "FilterDisplay.h"
#include "../ExactCompare.h"
#include "ExactCompare.h"
namespace serum
{
+2 -2
View File
@@ -1,8 +1,8 @@
#pragma once
#include <JuceHeader.h>
#include "../Resources.h"
#include "../Params.h"
#include "Resources.h"
#include "Params.h"
namespace serum
{
+1 -1
View File
@@ -2,7 +2,7 @@
#include <JuceHeader.h>
#include <memory>
#include "../Resources.h"
#include "Resources.h"
#include "KnobLookAndFeel.h"
namespace serum
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include <JuceHeader.h>
#include "../Resources.h"
#include "Resources.h"
namespace serum
{
+1 -1
View File
@@ -1,5 +1,5 @@
#include "LFODisplay.h"
#include "../ExactCompare.h"
#include "ExactCompare.h"
namespace serum
{
+3 -3
View File
@@ -1,9 +1,9 @@
#pragma once
#include <JuceHeader.h>
#include "../Resources.h"
#include "../Params.h"
#include "../LFO.h"
#include "Resources.h"
#include "Params.h"
#include "LFO.h"
namespace serum
{
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include <JuceHeader.h>
#include "../Resources.h"
#include "Resources.h"
namespace serum
{
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include <JuceHeader.h>
#include "../Resources.h"
#include "Resources.h"
namespace serum
{
+3 -3
View File
@@ -1,9 +1,9 @@
#pragma once
#include <JuceHeader.h>
#include "../ExactCompare.h"
#include "../Resources.h"
#include "../Wavetable.h"
#include "ExactCompare.h"
#include "Resources.h"
#include "Wavetable.h"
namespace serum
{
@@ -1,13 +1,10 @@
# modulation module
## Related source files
## Owned files
This directory contains guidance; implementations remain in the parent `Source/`
directory:
- `../ModulationMatrix.h`, `../ModulationMatrix.cpp`
- `../MacroControls.h`, `../MacroControls.cpp`
- `../RAVEButton.h`, `../RAVEButton.cpp`, which define `RaveController`
- ModulationMatrix.h, ModulationMatrix.cpp
- MacroControls.h, MacroControls.cpp
- RAVEButton.h, RAVEButton.cpp, which define `RaveController`
## Rules
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,15 +1,14 @@
# params module
## Related source files
## Owned files
This directory contains guidance; the implementation remains in `../Params.h`
and `../Params.cpp`.
- Params.h, Params.cpp
## Rules
- Use the `ids::` namespace for every APVTS parameter ID string.
- Require one `ids::` entry per audio parameter, and one entry only.
- Reach indexed parameters through the `paramIds::` arrays in `../Params.h`, which pair each
- Reach indexed parameters through the `paramIds::` arrays in `Params.h`, which pair each
ID with its slot: `paramIds::oscillators`, `paramIds::envAttack`, `paramIds::lfoRate`,
`paramIds::fxType`, `paramIds::macros` and their siblings. Use a single `ids::` entry only
when the parameter has no index.
File renamed without changes.
File renamed without changes.
@@ -1,9 +1,8 @@
# plugin module
## Related source files
## Owned files
This directory contains guidance; the implementation remains in
`../PluginProcessor.h` and `../PluginProcessor.cpp`.
- PluginProcessor.h, PluginProcessor.cpp
## Rules
File renamed without changes.
File renamed without changes.
+2 -2
View File
@@ -1,8 +1,8 @@
#pragma once
#include <JuceHeader.h>
#include "../Params.h"
#include "../ModulationMatrix.h"
#include "Params.h"
#include "ModulationMatrix.h"
namespace serum
{
+1 -1
View File
@@ -2,7 +2,7 @@
## Owned files
- Related embedded assets and helpers: `../Resources.h`, `../Resources.cpp`
- Resources.h, Resources.cpp
- logo.svg
- background.svg
File renamed without changes.
File renamed without changes.
@@ -1,9 +1,6 @@
# synth module
## Related source files
This directory contains guidance. All files listed below remain in the parent
`Source/` directory.
## Owned files
- Wavetable.h, Wavetable.cpp
- Oscillator.h, Oscillator.cpp
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
View File
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -1,7 +1,7 @@
#include <JuceHeader.h>
#include <cmath>
#include <iostream>
#include "../PluginProcessor.h"
#include "PluginProcessor.h"
// ===========================================================================
// Headless QA harness: instantiates the processor, plays notes through every