internal void ReadTextDescriptionTagDataEntry(byte[] data, IccTextDescriptionTagDataEntry expected) { IccDataReader reader = CreateReader(data); IccTextDescriptionTagDataEntry output = reader.ReadTextDescriptionTagDataEntry(); Assert.Equal(expected, output); }
internal void WriteTextDescriptionTagDataEntry(byte[] expected, IccTextDescriptionTagDataEntry data) { IccDataWriter writer = CreateWriter(); writer.WriteTextDescriptionTagDataEntry(data); byte[] output = writer.GetData(); Assert.Equal(expected, output); }
/// <summary> /// Writes a <see cref="IccTextDescriptionTagDataEntry"/> /// </summary> /// <param name="value">The entry to write</param> /// <returns>The number of bytes written</returns> public int WriteTextDescriptionTagDataEntry(IccTextDescriptionTagDataEntry value) { int size, count = 0; if (value.Ascii == null) { count += this.WriteUInt32(0); } else { this.dataStream.Position += 4; count += size = this.WriteAsciiString(value.Ascii + '\0'); this.dataStream.Position -= size + 4; count += this.WriteUInt32((uint)size); this.dataStream.Position += size; } if (value.Unicode == null) { count += this.WriteUInt32(0); count += this.WriteUInt32(0); } else { this.dataStream.Position += 8; count += size = this.WriteUnicodeString(value.Unicode + '\0'); this.dataStream.Position -= size + 8; count += this.WriteUInt32(value.UnicodeLanguageCode); count += this.WriteUInt32((uint)value.Unicode.Length + 1); this.dataStream.Position += size; } if (value.ScriptCode == null) { count += this.WriteUInt16(0); count += this.WriteByte(0); count += this.WriteEmpty(67); } else { this.dataStream.Position += 3; count += size = this.WriteAsciiString(value.ScriptCode, 67, true); this.dataStream.Position -= size + 3; count += this.WriteUInt16(value.ScriptCodeCode); count += this.WriteByte((byte)(value.ScriptCode.Length > 66 ? 67 : value.ScriptCode.Length + 1)); this.dataStream.Position += size; } return(count); }