Namespace Serenity.MusicPlayer.Installation.Settings.Editor.Builder
Classes
BatchMusicTrackImportWindow
Wizard window (Tools ▸ Serenity ▸ Create ▸ Audio ▸ Batch Import Music Tracks) for importing and configuring many music tracks at once. The common workflow (id, title, artist, clip) is always visible; the precise loop configuration (tail-preserving loop, loop region in time codes or musical bars, tail fade-out) is tucked into a per-track "Advanced" foldout. All logic lives in BatchMusicTrackImporter; the shared IMGUI scaffolding (destination folders, drop zone, item list, summary/create) lives in BatchAudioImportWindow<TItem, TInput, TResult, TAsset>; this window supplies only what is specific to music tracks: its own copy, the default-artist field, the common fields plus advanced-loop foldout per row, and the foldout's own open/closed state.
BatchMusicTrackImporter
Builds UnityMusicTrackDefinition assets in batch from validated wizard input, with rollback on failure. Everything shared with the sound-effect importer (inference, duplicate detection, validation skeleton, batched creation with rollback, Addressables registration, external file import) lives in BatchAudioAssetImportEngine<TItem, TInput, TResult, TAsset>; this class supplies only the music-specific parts via BatchMusicTrackImporter.ImportEngine — the advanced loop fields (tail-preserving loop, loop region as time codes or musical bars, tail fade-out) and their validation. The BatchMusicTrackImportWindow only collects input; all inference, validation, advanced settings serialization and asset creation live here so they can be unit tested without the window.
BatchMusicTrackImporter.Input
Everything needed to create a batch of music track definitions.
BatchMusicTrackImporter.Item
One music track to import: its source, resolved clip, common metadata and advanced loop config.
BatchMusicTrackImporter.Result
Outcome of a Create(Input) call.