Replace EntryHeader with AudioHeader

This commit is contained in:
Matt Nadareski
2023-01-15 16:26:05 -08:00
parent 8c164d776e
commit 87c08d6fbd
7 changed files with 223 additions and 309 deletions

View File

@@ -8,7 +8,7 @@ namespace BurnOutSharp.Models.PlayJ
/// <summary>
/// Header
/// </summary>
public EntryHeader Header { get; set; }
public AudioHeader Header { get; set; }
/// <summary>
/// Unknown block 1
@@ -18,7 +18,7 @@ namespace BurnOutSharp.Models.PlayJ
#region V1 Only
/// <summary>
/// Value referred to by <see cref="EntryHeader.UnknownOffset2"/>
/// Value referred to by <see cref="AudioHeaderV1.UnknownOffset2"/>
/// </summary>
/// <remarks>Typically 0x00000000</remarks>
public uint UnknownValue2 { get; set; }

View File

@@ -67,15 +67,40 @@ namespace BurnOutSharp.Models.PlayJ
public uint Unknown10;
/// <summary>
/// Unknown (Always 0x00000000)
/// Unknown
/// </summary>
public uint Unknown11;
/// <summary>
/// Unknown (Always 0x00000007)
/// Unknown (Always 0x0000005)
/// </summary>
public uint Unknown12;
/// <summary>
/// Unknown (Always 0x0000009)
/// </summary>
public uint Unknown13;
/// <summary>
/// Unknown
/// </summary>
public uint Unknown14;
/// <summary>
/// Unknown
/// </summary>
public uint Unknown15;
/// <summary>
/// Unknown (Always 0x0000000)
/// </summary>
public uint Unknown16;
/// <summary>
/// Unknown (Always 0x00000007)
/// </summary>
public uint Unknown17;
/// <summary>
/// Download track ID
/// </summary>
@@ -96,6 +121,6 @@ namespace BurnOutSharp.Models.PlayJ
/// <summary>
/// Unknown
/// </summary>
public uint Unknown13;
public uint Unknown18;
}
}

View File

@@ -1,146 +0,0 @@
namespace BurnOutSharp.Models.PlayJ
{
/// <summary>
/// PlayJ audio header / CDS entry header
/// </summary>
/// <remarks>This is only valid for V1 right now</remarks>
public sealed class EntryHeader
{
/// <summary>
/// Signature (0x4B539DFF)
/// </summary>
public uint Signature;
/// <summary>
/// Version
/// </summary>
public uint Version;
/// <summary>
/// Download track ID
/// </summary>
/// <remarks>0xFFFFFFFF if unset</remarks>
public uint TrackID;
/// <summary>
/// Offset to unknown data block 1
/// </summary>
public uint UnknownOffset1;
/// <summary>
/// Offset to unknown data block 2
/// </summary>
public uint UnknownOffset2;
/// <summary>
/// Offset to unknown data block 3
/// </summary>
public uint UnknownOffset3;
/// <summary>
/// Unknown
/// </summary>
/// <remarks>Always 0x00000001</remarks>
public uint Unknown1;
/// <summary>
/// Unknown
/// </summary>
/// <remarks>Typically 0x00000001 in download titles</remarks>
public uint Unknown2;
/// <summary>
/// Track year
/// </summary>
/// <remarks>0xFFFFFFFF if unset</remarks>
public uint Year;
/// <summary>
/// Track number
/// </summary>
/// <remarks>Byte in V1, UInt32 in V2</remarks>
public uint TrackNumber;
/// <summary>
/// Subgenre
/// </summary>
public Subgenre Subgenre;
/// <summary>
/// Track duration in seconds
/// </summary>
public uint Duration;
/// <summary>
/// Length of the track name
/// </summary>
public ushort TrackLength;
/// <summary>
/// Track name (not null-terminated)
/// </summary>
public string Track;
/// <summary>
/// Length of the artist name
/// </summary>
public ushort ArtistLength;
/// <summary>
/// Artist name (not null-terminated)
/// </summary>
public string Artist;
/// <summary>
/// Length of the album name
/// </summary>
public ushort AlbumLength;
/// <summary>
/// Album name (not null-terminated)
/// </summary>
public string Album;
/// <summary>
/// Length of the writer name
/// </summary>
public ushort WriterLength;
/// <summary>
/// Writer name (not null-terminated)
/// </summary>
public string Writer;
/// <summary>
/// Length of the publisher name
/// </summary>
public ushort PublisherLength;
/// <summary>
/// Publisher name (not null-terminated)
/// </summary>
public string Publisher;
/// <summary>
/// Length of the label name
/// </summary>
public ushort LabelLength;
/// <summary>
/// Label name (not null-terminated)
/// </summary>
public string Label;
/// <summary>
/// Length of the comments
/// </summary>
/// <remarks>Optional field only in some samples</remarks>
public ushort CommentsLength;
/// <summary>
/// Comments (not null-terminated)
/// </summary>
/// <remarks>Optional field only in some samples</remarks>
public string Comments;
}
}

View File

@@ -1,7 +1,7 @@
namespace BurnOutSharp.Models.PlayJ
{
/// <summary>
/// Data referred to by <see cref="EntryHeader.UnknownOffset1"/>
/// Data referred to by <see cref="AudioHeaderV1.UnknownOffset1"/> or <see cref="AudioHeaderV2.UnknownOffset1"/>
/// </summary>
public sealed class UnknownBlock1
{

View File

@@ -1,7 +1,7 @@
namespace BurnOutSharp.Models.PlayJ
{
/// <summary>
/// Data referred to by <see cref="EntryHeader.UnknownOffset3"/>
/// Data referred to by <see cref="AudioHeaderV1.UnknownOffset3"/>
/// </summary>
public sealed class UnknownBlock3
{