private static void StateToBytes(MultiSourceDASHDownloadState state, BinaryWriter w) { w.Write(state.Id); w.Write(state.TempDirectory ?? string.Empty); w.Write(state.FileSize); w.Write(state.Demuxed); w.Write(state.SpeedLimit); w.Write(state.AudioChunkCount); w.Write(state.AudioContainerFormat ?? string.Empty); w.Write(state.VideoChunkCount); w.Write(state.VideoContainerFormat ?? string.Empty); w.Write(state.Duration); w.Write(state.Url ?? string.Empty); w.Write(state.AudioSegments?.Count ?? 0); for (var i = 0; i < (state.AudioSegments?.Count ?? 0); i++) { w.Write(state.AudioSegments ![i].ToString());
public static void Save(MultiSourceDASHDownloadState state) { TransactedBinaryDataReader.Write($"{state.Id}.state", Config.DataDir, w => StateToBytes(state, w)); }