/// <summary> /// Creates a <see cref="RawTrack"/> from the specified <see cref="Stream"/>. Advances the position within the stream by the number of bytes read. /// </summary> /// <param name="input">A <see cref="Stream"/> that contains the data for this <see cref="RawTrack"/> at the position where reading shold start.</param> /// <returns>The <see cref="RawTrack"/> that this method creates.</returns> public static RawTrack FromStream(Stream input) { if (input == null) throw new ArgumentNullException("input"); if (!input.CanRead) throw new ArgumentException("Input stream must support reading", "input"); IOAssistant io = new IOAssistant(input); return new RawTrack(io.ReadString(), io.ReadString(), io.ReadString(), io.ReadInt32(), io.ReadString()); }
/// <summary> /// Saves this <see cref="RawTrack"/> to the specified <see cref="Stream"/>. Advances the position within the stream by the number of bytes written. /// </summary> /// <param name="output">The <see cref="Stream"/> where the <see cref="RawTrack"/> will be saved.</param> public void Save(Stream output) { if (output == null) throw new ArgumentNullException("output"); if (!output.CanWrite) throw new ArgumentException("Output stream must support writing", "output"); IOAssistant io = new IOAssistant(output); io.Write(this.file.FullName); io.Write(this.track); io.Write(this.album); io.Write(this.number); io.Write(this.artist); }