SonicAudioTools/Source/CsbBuilder/CriTableSoundElement.cs

128 lines
2.5 KiB
C#
Raw Normal View History

2016-12-25 21:43:22 +03:00
using System.Collections.Generic;
using System.IO;
using SonicAudioLib.CriMw;
using SonicAudioLib.CriMw.Serialization;
using System;
using System.Xml.Serialization;
namespace CsbBuilder
{
[Serializable]
[CriSerializable("TBLSDL")]
public class CriTableSoundElement
{
2016-12-31 15:56:10 +03:00
public enum EnumFormat : byte
2016-12-25 21:43:22 +03:00
{
Adx = 0,
Dsp = 4,
};
private string _name = string.Empty;
private EnumFormat _fmt = EnumFormat.Adx;
private byte _nch = 0;
2016-12-31 15:56:10 +03:00
private bool _stmflg = false;
2016-12-25 21:43:22 +03:00
private uint _sfreq = 0;
private uint _nsmpl = 0;
[CriField("name", 0)]
public string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}
[CriIgnore]
public List<CriTableAax> DataList { get; set; }
[XmlIgnore]
[CriField("data", 1)]
public byte[] Data
{
get
{
return CriTableSerializer.Serialize(DataList, CriTableWriterSettings.AdxSettings);
}
set
{
2016-12-31 15:56:10 +03:00
if (value.Length > 0)
{
DataList = CriTableSerializer.Deserialize<CriTableAax>(value);
}
2016-12-25 21:43:22 +03:00
}
}
[CriField("fmt", 2)]
2016-12-31 15:56:10 +03:00
public EnumFormat Format
2016-12-25 21:43:22 +03:00
{
get
{
2016-12-31 15:56:10 +03:00
return _fmt;
2016-12-25 21:43:22 +03:00
}
set
{
2016-12-31 15:56:10 +03:00
_fmt = value;
2016-12-25 21:43:22 +03:00
}
}
[CriField("nch", 3)]
public byte NumberChannels
{
get
{
return _nch;
}
set
{
_nch = value;
}
}
[CriField("stmflg", 4)]
2016-12-31 15:56:10 +03:00
public bool Streaming
2016-12-25 21:43:22 +03:00
{
get
{
2016-12-31 15:56:10 +03:00
return _stmflg;
2016-12-25 21:43:22 +03:00
}
set
{
2016-12-31 15:56:10 +03:00
_stmflg = value;
2016-12-25 21:43:22 +03:00
}
}
[CriField("sfreq", 5)]
public uint SoundFrequence
{
get
{
return _sfreq;
}
set
{
_sfreq = value;
}
}
[CriField("nsmpl", 6)]
public uint NumberSamples
{
get
{
return _nsmpl;
}
set
{
_nsmpl = value;
}
}
}
}