/*
* auto generated by tools(注意:千万不要手动修改本文件)
* MusicTransition
*/
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
namespace OCES.Audio
{
[Serializable]
public partial class MusicTransition : IBinarySerializable
{
///
/// FromPathId x 1000 + ToPathId
///
public uint Id { get; set; }
///
/// 淡出总时长(s)
///
public float FadeOutTime { get; set; }
///
/// source的段尾偏移量(s)
///
public float FadeOutOffset { get; set; }
///
/// 淡入总时长(s)
///
public float FadeInTime { get; set; }
///
/// Destination段首偏移量(s)
///
public float FadeInOffset { get; set; }
///
/// 0 = 立即切换
/// 1 = 拍
/// 2 = 小节
///
public AlignMode AlignMode { get; set; }
///
/// 0 = Start
/// 1 = Same Time
///
public SyncPoint SyncPoint { get; set; }
///
/// samples
///
public uint StartOffset { get; set; }
///
/// samples
///
public uint EndOffset { get; set; }
public void DeSerialize(BinaryReader reader)
{
Id = reader.ReadUInt32();
FadeOutTime = reader.ReadSingle();
FadeOutOffset = reader.ReadSingle();
FadeInTime = reader.ReadSingle();
FadeInOffset = reader.ReadSingle();
AlignMode = (AlignMode)reader.ReadByte();
SyncPoint = (SyncPoint)reader.ReadByte();
StartOffset = reader.ReadUInt32();
EndOffset = reader.ReadUInt32();
}
public void Serialize(BinaryWriter writer)
{
writer.Write(Id);
writer.Write(FadeOutTime);
writer.Write(FadeOutOffset);
writer.Write(FadeInTime);
writer.Write(FadeInOffset);
writer.Write((byte)AlignMode);
writer.Write((byte)SyncPoint);
writer.Write(StartOffset);
writer.Write(EndOffset);
}
}
[Serializable]
public partial class MusicTransitionConfig : IBinarySerializable
{
Dictionary m_musicTransitionInfos = new();
List m_musicTransitionInfoList;
public List MusicTransitionList()
{
this.m_musicTransitionInfoList ??= new List(this.m_musicTransitionInfos.Values);
return this.m_musicTransitionInfoList;
}
public void DeSerialize(BinaryReader reader)
{
int count = reader.ReadInt32();
for (int i = 0; i < count; i++)
{
MusicTransition tempData = new();
tempData.DeSerialize(reader);
this.m_musicTransitionInfos.Add(tempData.Id, tempData);
}
}
public void Serialize(BinaryWriter writer)
{
writer.Write(this.m_musicTransitionInfos.Count);
foreach (MusicTransition musicTransition in this.m_musicTransitionInfos.Values)
{
musicTransition.Serialize(writer);
}
}
public MusicTransition QueryById(uint id)
{
return this.m_musicTransitionInfos.GetValueOrDefault(id);
}
}
}