TODO list: Library (and utility): - Add support for CRC checking mp3wrap files. - Add support for uncompressed .zip.mp3 files. - Add support for uncompressed .rar.mp3 files. - Add support for ordinary, unrwapped mp3s. (??) - Make it a shared (dynamic) library too. (Not hard, just lazy. :) ) Also not really something to push for. The lib is small and in flux. A new version will most probably be binary incompatible with earlier versions. - Add support for chaining and unchaining Ogg files and optionally adding a filename tag to each chain. - Fix .h generation somehow. Having two separate headers like this is ugly. - Make wrapped files filenames UTF8. (??) - Allow storing of relative paths. - Add support for more ID3v2 tags, like embedding data. (??) - Make checksumming code checksum both the area specified by the normal tag and the area specified by the redundancy tag as well as combinations of them - real offset and redundant size and vice versa. Doing that, less alternative stream checks should probably be done, to minimize false matches. - Calculate and check against nometa checksums ONLY when regular MD5 doesn't match. Now it is always calculated and so checksumming takes double CPU time it needs to on a healthy file. A small test has shown that the checksumming is, for me at least, I/O bound and not CPU bound. The current solution is suboptimal, but works well. - Add support for and test on more platforms. - Make sure ID3 frame headers are generated correctly. The size of generated frames may become an issue if size > 127, depending on version (2.3 or 2.4). Utility only: - Most code in do_list exists in do_unwrap. Combine them?