using System.IO; namespace OCES.Audio { /// /// 替换策略类型 /// public enum KillMode { Oldest, // 打断最早开始的 Newest, // 打断最新开始的 } /// /// 混音分组 /// public enum MixingType { Sfx = 0, Voice, Accented, } /// /// 声音容器类型 /// public enum ContainerType { Random = 0, Sequence, Blend, Switch, } public enum BlendCrossFadeType { Exponential = 0, Linear, Logarithmic, } public enum AlignMode { Immediate, Beat, Bar, } public enum CallbackFlags { MusicSyncBeat = 1, MusicSyncBar = 2, MusicSyncGrid = 3, } public enum ActiveSoundState { Pending, // 已进入调度,但还没真正播放 Playing, // 已经开始播放 Finished, } public enum SyncPoint { Start, SameAsCurrentSegment, } public interface IBinarySerializable { void DeSerialize(BinaryReader reader); void Serialize(BinaryWriter writer); } // ───────────────────────────────────────────── // 辅助接口,让泛型方法同时处理 MusicPath 和 AmbiencePath // ───────────────────────────────────────────── public interface IPathEntry { uint Id { get; } string Path { get; } uint ContainerId { get; } int Priority { get; } } public interface ITransitionConfig { float FadeOutOffset { get; } float FadeOutTime { get; } float FadeInOffset { get; } float FadeInTime { get; } } public partial class MusicTransition : ITransitionConfig { } public partial class AmbienceTransition : ITransitionConfig { } public partial class MusicPath : IPathEntry { } public partial class AmbiencePath : IPathEntry { } }