diff --git a/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs b/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs index cc37bf2b..5991f704 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.ConvertUpdate.cs @@ -40,6 +40,9 @@ namespace SabreTools.Helper.Dats /// String representing root directory to compare against for length calculation /// Integer representing the maximum amount of parallelization to be used /// Logging object for console and file output + /// + /// TODO: Folder-wise output for update (similar to level-split) + /// public void DetermineUpdateType(List inputPaths, string outDir, bool merge, DiffMode diff, bool inplace, bool skip, bool bare, bool clean, bool descAsName, Filter filter, SplitType splitType, bool trim, bool single, string root, int maxDegreeOfParallelism, Logger logger) @@ -102,7 +105,8 @@ namespace SabreTools.Helper.Dats DateTime start = DateTime.Now; logger.User("Processing individual DATs"); - /// BEGIN + // TODO: Can parsing headers be separated from parsing content? + // TODO: Can all DATs be parsed into the same structure in one loop? Parallel.For(0, inputs.Count, new ParallelOptions { MaxDegreeOfParallelism = maxDegreeOfParallelism }, @@ -132,7 +136,6 @@ namespace SabreTools.Helper.Dats } datHeaders[i].Delete(); } - /// END logger.User("Processing and populating complete in " + DateTime.Now.Subtract(start).ToString(@"hh\:mm\:ss\.fffff")); diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs index d810e6f2..0efac073 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.Parsers.cs @@ -1276,6 +1276,10 @@ namespace SabreTools.Helper.Dats /// True if full pathnames are to be kept, false otherwise (default) /// True if game names are sanitized, false otherwise (default) /// True if SL XML names should be kept, false otherwise (default) + /// + /// TODO: Software Lists - sharedfeat tag (read-in, write-out) + /// TODO: If updating softlists, is it possible to update cloneof/romof/sampleof tags as well? + /// private void ParseGenericXML( // Standard Dat parsing string filename, diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Rebuild.cs b/SabreTools.Helper/Dats/Partials/DatFile.Rebuild.cs index 823f2441..833ca029 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.Rebuild.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.Rebuild.cs @@ -16,7 +16,9 @@ using SearchOption = System.IO.SearchOption; namespace SabreTools.Helper.Dats { - // TODO: All instances of Hash.DeepHashes should be made into 0x0 eventually + /* + * TODO: Delete flags - Remove files from archive if only some are used (rebuild to TZip) + */ public partial class DatFile { #region Rebuilding and Verifying [MODULAR DONE, FOR NOW] @@ -481,6 +483,9 @@ namespace SabreTools.Helper.Dats /// Populated string representing the name of the skipper to use, a blank string to use the first available checker, null otherwise /// Logger object for file and console output /// True if the file was able to be rebuilt, false otherwise + /// + /// TODO: If going from a TGZ file to a TGZ file, don't extract, just copy + /// private bool RebuildIndividualFile(Rom rom, string file, string outDir, string tempDir, bool date, bool inverse, OutputFormat outputFormat, bool romba, bool updateDat, bool isZip, string headerToCheckAgainst, Logger logger) { diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Statistics.cs b/SabreTools.Helper/Dats/Partials/DatFile.Statistics.cs index 79a1a736..1178f235 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.Statistics.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.Statistics.cs @@ -19,6 +19,15 @@ using StreamWriter = System.IO.StreamWriter; namespace SabreTools.Helper.Dats { + /* + * TODO: Make output standard width (HTML, without making the entire thing a table) + * TODO: Multithreading? Either StringBuilder or locking + * TODO: Deduped size? + * TODO: Sort by size? + * TODO: Fix alignment for stats output (text) + * TODO: Add compressed size (10-50% of total file size based on averages) + * TODO: Add "gain" based on compressed compared to total size + */ public partial class DatFile { #region Instance Methods diff --git a/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs b/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs index 09ffb338..e6b3219d 100644 --- a/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs +++ b/SabreTools.Helper/Dats/Partials/DatFile.Writers.cs @@ -111,6 +111,9 @@ namespace SabreTools.Helper.Dats // Bucket roms by game name and optionally dedupe BucketByGame(MergeRoms, norename, logger); + // Filter the DAT by 1G1R rules, if we're supposed to + // TODO: Create 1G1R logic before write + // If we are removing hashes, do that now if (_stripHash != 0x0) { diff --git a/SabreTools.Helper/Logger.cs b/SabreTools.Helper/Logger.cs index f6488074..cc22ad4e 100644 --- a/SabreTools.Helper/Logger.cs +++ b/SabreTools.Helper/Logger.cs @@ -7,9 +7,9 @@ namespace SabreTools.Helper /// Log either to file or to the console /// /// - /// Things to do: - /// - Allow for "triggerable" logging done on an interval (async) - /// - Log filtering? (#if debug?) + /// TODO: Allow for "triggerable" logging done on an interval (async) + /// TODO: Log filtering? (#if debug?) + /// TODO: Reduce user-verbosity in later builds /// public class Logger { diff --git a/SabreTools.Helper/Tools/ArchiveTools.cs b/SabreTools.Helper/Tools/ArchiveTools.cs index 050ff025..7b09d3a9 100644 --- a/SabreTools.Helper/Tools/ArchiveTools.cs +++ b/SabreTools.Helper/Tools/ArchiveTools.cs @@ -34,6 +34,9 @@ using SharpCompress.Writers; namespace SabreTools.Helper.Tools { + /* + * TODO: Full archive support for: 7-Zip, RAR, XZ, LRZip + */ public static class ArchiveTools { private const int _bufferSize = 4096 * 128; diff --git a/SabreTools/SabreTools.cs b/SabreTools/SabreTools.cs index d9f75061..7bfae7a2 100644 --- a/SabreTools/SabreTools.cs +++ b/SabreTools/SabreTools.cs @@ -18,6 +18,11 @@ namespace SabreTools /// /// Entry class for the DATabase application /// + /// + /// TODO: Wrap Parallel.ForEach loops in try/catch + /// TODO: Find more foreach loops that are good candidates for Parallel.ForEach + /// TODO: Look into async read/write to make things quicker. Ask edc for help? + /// public partial class SabreTools { // Private required variables