/* * auto generated by tools(注意:千万不要手动修改本文件) * MusicContainer */ using System; using System.IO; using System.Collections.Generic; using System.Text; namespace OCES.Audio { [Serializable] public partial class MusicContainer : IBinarySerializable { /// /// 一定不要出现循环 /// public uint Id { get; set; } /// /// 1000000以下的是musicId 以上的是ContainerId /// public List Segments { get; set; } /// /// 0 = 随机播放 /// 1 = 顺序播放 /// 2 = 同时播放 /// public ContainerType ContainerType { get; set; } /// /// 0 = 步进 /// 1 = 持续 /// public bool ContainerPlayMode { get; set; } /// /// sequence: 间隔时间(s) /// public ushort StrategyParam { get; set; } /// /// -1 = 无限循环 /// 0 = 不循环 /// >= 1 按次数循环 /// public short LoopCount { get; set; } /// /// 速度 /// 可以是小数 /// public float Bpm { get; set; } /// /// 拍号 /// 采用德国体系定义 /// public string TimeSig { get; set; } public void DeSerialize(BinaryReader reader) { Id = reader.ReadUInt32(); var segmentsCount = reader.ReadInt32(); if (segmentsCount > 0) { Segments = new List(); for (int i = 0; i < segmentsCount; i++) { Segments.Add(reader.ReadUInt32()); } } else { Segments = null; } ContainerType = (ContainerType)reader.ReadByte(); ContainerPlayMode = reader.ReadBoolean(); StrategyParam = reader.ReadUInt16(); LoopCount = reader.ReadInt16(); Bpm = reader.ReadSingle(); TimeSig = reader.ReadString(); } public void Serialize(BinaryWriter writer) { writer.Write(Id); if (Segments == null || Segments.Count == 0) { writer.Write(0); } else { writer.Write(Segments.Count); for (int i = 0; i < Segments.Count; i++) { writer.Write(Segments[i]); } } writer.Write((byte)ContainerType); writer.Write(ContainerPlayMode); writer.Write(StrategyParam); writer.Write(LoopCount); writer.Write(Bpm); writer.Write(TimeSig); } } [Serializable] public partial class MusicContainerConfig : IBinarySerializable { Dictionary m_musicContainerInfos = new(); List m_musicContainerInfoList; public List MusicContainerList() { this.m_musicContainerInfoList ??= new List(m_musicContainerInfos.Values); return this.m_musicContainerInfoList; } public void DeSerialize(BinaryReader reader) { int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { MusicContainer tempData = new(); tempData.DeSerialize(reader); this.m_musicContainerInfos.Add(tempData.Id, tempData); } } public void Serialize(BinaryWriter writer) { writer.Write(this.m_musicContainerInfos.Count); foreach (MusicContainer musicContainer in this.m_musicContainerInfos.Values) { musicContainer.Serialize(writer); } } public MusicContainer QueryById(uint id) { return this.m_musicContainerInfos.GetValueOrDefault(id); } } }