private static string ReadComment(Core.Utility.BinaryReader reader, MetadataFlags flags, ref int bytesRead) { string comment = null; if (flags.HasFlag(MetadataFlags.Comment)) { comment = ReadNullTerminatedString(reader, ref bytesRead); } return(comment); }
private static ushort ReadCrc16(Core.Utility.BinaryReader reader, MetadataFlags flags, ref int bytesRead) { ushort crc16 = 0; if (flags.HasFlag(MetadataFlags.Crc16Present)) { crc16 = reader.ReadUInt16(); bytesRead += sizeof(ushort); } return(crc16); }
private static string ReadFileName(Core.Utility.BinaryReader reader, MetadataFlags flags, ref int bytesRead) { string name = null; if (flags.HasFlag(MetadataFlags.FileName)) { name = ReadNullTerminatedString(reader, ref bytesRead); } else { name = GetDefaultEntryName(reader.BaseStream); } return(name); }
private static SubfieldId ReadExtraFields(Core.Utility.BinaryReader reader, MetadataFlags flags, ref int bytesRead) { var subfieldIdentifier = SubfieldId.None; if (flags.HasFlag(MetadataFlags.ExtraFieldsPresent)) { subfieldIdentifier = (SubfieldId)reader.ReadUInt16(); bytesRead += sizeof(SubfieldId); var subfieldDataLength = reader.ReadUInt16(); // little-endian bytesRead += sizeof(ushort); reader.BaseStream.Seek(subfieldDataLength, SeekOrigin.Current); // just skip } return(subfieldIdentifier); }