protected WaveDataChunk(RiffParser parser, BinaryReader reader) : base(reader) { if (parser.ReadDataChunk) { Data = reader.ReadBytes(SubChunkSize); } }
protected WaveFmtChunk(RiffParser parser, BinaryReader reader) : base(reader) { FormatTag = reader.ReadUInt16(); ChannelCount = reader.ReadInt16(); SampleRate = reader.ReadInt32(); AvgBytesPerSec = reader.ReadInt32(); BlockAlign = reader.ReadInt16(); BitsPerSample = reader.ReadInt16(); if (FormatTag == WaveFormatTags.WaveFormatExtensible && parser.FormatExtensibleParser != null) { long startOffset = reader.BaseStream.Position + 2; Ext = parser.FormatExtensibleParser(parser, reader); long endOffset = startOffset + Ext.Size; int remainingBytes = (int)Math.Max(endOffset - reader.BaseStream.Position, 0); Ext.Extra = reader.ReadBytes(remainingBytes); } }
public static WaveFmtChunk Parse(RiffParser parser, BinaryReader reader) => new WaveFmtChunk(parser, reader);
public static WaveSmplChunk Parse(RiffParser parser, BinaryReader reader) => new WaveSmplChunk(reader);