tsunpack-csharp/TSUnpackLibrary/MstsApk.cs

125 lines
5.0 KiB
C#

// This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuild
using System.Collections.Generic;
namespace Kaitai
{
public partial class MstsApk : KaitaiStruct
{
public static MstsApk FromFile(string fileName)
{
return new MstsApk(new KaitaiStream(fileName));
}
public MstsApk(KaitaiStream p__io) : this(p__io, null) { }
public MstsApk(KaitaiStream p__io, KaitaiStruct p__parent) : this(p__io, p__parent, null) { }
public MstsApk(KaitaiStream p__io, KaitaiStruct p__parent, MstsApk p__root) : base(p__io)
{
m_parent = p__parent;
m_root = p__root;
_read();
}
private void _read()
{
_routeDisplayName = new ApkString(m_io, this, m_root);
_routeId1 = new ApkString(m_io, this, m_root);
_routeId2 = new ApkString(m_io, this, m_root);
_unknownNumber = m_io.ReadU4le();
_fileCount = m_io.ReadU4le();
_files = new List<File>((int) (FileCount));
for (int i = 0; i < FileCount; i++)
{
_files.Add(new File(m_io, this, m_root));
}
}
public partial class ApkString : KaitaiStruct
{
public static ApkString FromFile(string fileName)
{
return new ApkString(new KaitaiStream(fileName));
}
public ApkString(KaitaiStream p__io) : this(p__io, null) { }
public ApkString(KaitaiStream p__io, KaitaiStruct p__parent) : this(p__io, p__parent, null) { }
public ApkString(KaitaiStream p__io, KaitaiStruct p__parent, MstsApk p__root) : base(p__io)
{
m_parent = p__parent;
m_root = p__root;
_read();
}
private void _read() {
_len = m_io.ReadU4le();
_value = System.Text.Encoding.GetEncoding("utf-16").GetString(m_io.ReadBytes(((Len - 1) * 2)));
_terminator = m_io.ReadU2le();
}
private uint _len;
private string _value;
private ushort _terminator;
private MstsApk m_root;
private KaitaiStruct m_parent;
public uint Len { get { return _len; } }
public string Value { get { return _value; } }
/// <summary>
/// Two-byte string terminator.
/// Added here because UTF-16 support is far from perfect in Kaitai Struct!
/// </summary>
public ushort Terminator { get { return _terminator; } }
public MstsApk M_Root { get { return m_root; } }
public KaitaiStruct M_Parent { get { return m_parent; } }
}
public partial class File : KaitaiStruct
{
public static File FromFile(string fileName)
{
return new File(new KaitaiStream(fileName));
}
public File(KaitaiStream p__io) : this(p__io, null) { }
public File(KaitaiStream p__io, KaitaiStruct p__parent) : this(p__io, p__parent, null) { }
public File(KaitaiStream p__io, KaitaiStruct p__parent, MstsApk p__root) : base(p__io)
{
m_parent = (MstsApk)p__parent;
m_root = p__root;
_read();
}
private void _read()
{
_fileLen = m_io.ReadU4le();
_name = new ApkString(m_io, this, m_root);
_content = m_io.ReadBytes(FileLen);
}
private uint _fileLen;
private ApkString _name;
private byte[] _content;
private MstsApk m_root;
private MstsApk m_parent;
public uint FileLen { get { return _fileLen; } }
public ApkString Name { get { return _name; } }
public byte[] Content { get { return _content; } }
public MstsApk M_Root { get { return m_root; } }
public MstsApk M_Parent { get { return m_parent; } }
}
private ApkString _routeDisplayName;
private ApkString _routeId1;
private ApkString _routeId2;
private uint _unknownNumber;
private uint _fileCount;
private List<File> _files;
private MstsApk m_root;
private KaitaiStruct m_parent;
public ApkString RouteDisplayName { get { return _routeDisplayName; } }
public ApkString RouteId1 { get { return _routeId1; } }
public ApkString RouteId2 { get { return _routeId2; } }
/// <summary>
/// I do not know what this value is and I can work without it!
/// </summary>
public uint UnknownNumber { get { return _unknownNumber; } }
public uint FileCount { get { return _fileCount; } }
public List<File> Files { get { return _files; } }
public MstsApk M_Root { get { return m_root; } }
public KaitaiStruct M_Parent { get { return m_parent; } }
}
}