Namespace Serenity.SoundMixer.Infrastructure.RelationshipManager.Editor
Classes
AudioChannelCreator
Creates a Serenity audio channel — a UnityAudioPlayerSettings asset routed to a mixer group — from validated input, with a single-asset rollback on failure. Kept separate from the window so the creation/validation can be unit tested in a temp folder.
AudioChannelCreator.Result
AudioMixerChannelDeletionPlanner
Pure (Unity-free) planner that, given the current configuration and a mixer group the user wants to delete, works out every Serenity-side reference that would break and the repair actions needed to keep the configuration consistent. Produces a preview/dry-run AudioMixerChannelDeletionPlanner.DeletionPlan; it never touches assets. The window applies the plan (with Undo) only after explicit confirmation.
AudioMixerChannelDeletionPlanner.DeletionPlan
The full preview of deleting a group: affected references, repair actions and warnings.
AudioMixerChannelDeletionPlanner.RepairAction
One planned repair, described in human terms.
AudioMixerChannelGroupCreator
Public, reusable helper that creates a plain mixer group (an audio channel's destination) under a parent group. It wraps the module's internal Serenity.SoundMixer.Infrastructure.AudioMixerEffectLoop.Editor.AudioMixerEffectLoopReflectionAdapter so the relationship-manager tool can create channels without duplicating the fragile internal-API access. Unlike the effect-loop creator, this does not add a Receive chain — it is just a group.
AudioMixerRelationshipAnalyzer
Pure (Unity-free) diff engine: compares a MixerSnapshot with a
SerenitySnapshot and reports every inconsistency as a RelationshipIssue.
Deterministic and side-effect free, so the rules can be exhaustively unit tested. The Unity-specific
scanning (reading the mixer, loading assets) is done elsewhere (AudioMixerRelationshipScanner).
AudioMixerRelationshipManagerWindow
Editor window (Tools > Serenity > Audio > Audio Channel Manager) that shows and reconciles the relationship between a Unity AudioMixer and the Serenity sound configuration: which groups exist, which channels (AudioPlayerSettings) route to them, the effect loops, the exposed parameters, and every inconsistency between the two sides. It can create a channel/group, run repair actions, and — with a dry-run preview, explicit confirmation and Undo for the reversible parts — delete a channel/group while migrating the references that would otherwise break.
The window only orchestrates: detection lives in AudioMixerRelationshipAnalyzer, repair planning in AudioMixerChannelDeletionPlanner, scanning in AudioMixerRelationshipScanner, and group/channel creation in their own helpers.
AudioMixerRelationshipScanner
Editor-only bridge that gathers the live Unity + Serenity state for a given UnityEngine.Audio.AudioMixer into the pure snapshots consumed by AudioMixerRelationshipAnalyzer and AudioMixerChannelDeletionPlanner, while also keeping the live asset references the window needs to apply changes. All AudioMixer structure reading is delegated to the existing AudioMixerYamlReader; this class only joins the pieces.
AudioMixerRelationshipScanner.ChannelAsset
A Serenity channel paired with the live settings asset it came from.
AudioMixerRelationshipScanner.ScanResult
Everything the window needs: the snapshots plus live asset references for applying edits.
ConfiguredChannel
A Serenity audio channel: a UnityAudioPlayerSettings asset routed to a mixer group.
EffectLoopConfig
A registered effect loop as Serenity sees it (from its definition asset).
MixerSnapshot
What the Unity AudioMixer reports (groups, exposed parameters, per-group volume parameter).
RelationshipIssue
A single detected inconsistency between the mixer and the Serenity configuration.
RelationshipModel
The derived diff: the two snapshots plus every detected issue.
SerenityMixerTopologyWindow
Read-only visual routing diagram for a Unity UnityEngine.Audio.AudioMixer and the Serenity sound
configuration: draws each Serenity audio channel wired to its mixer group, marks which groups have their
volume exposed, and lays out each effect loop's source groups feeding its loop group via sends.
Complements the Audio Channel Manager (which lists inconsistencies and creates/repairs channels):
this answers "how does my audio actually route?" at a glance, with no analysis or edits.
SerenitySnapshot
What Serenity's configuration reports (channels, exposed-parameter mappings, effect loops).
Enums
AudioMixerChannelDeletionPlanner.RepairActionKind
A single repair the deletion implies.
RelationshipIssueKind
Category of a detected relationship issue, so the UI can group and act on it.
RelationshipSeverity
Severity of a detected relationship issue.