mirror of
https://github.com/taglib/taglib.git
synced 2026-06-14 02:09:27 -04:00
Add Shorten (SHN) support (#1257)
* Add Shorten (SHN) support * Add `<cmath>` include and use `std::log2` * Use `uintptr_t` for buffer size calculations * Work around `byteSwap` not using fixed width types * Remove four-character codes * Attempt to fix `static_assert` * Revert previous commit * Update `read_uint`* functions * Use ByteVector for byte swaps * Use different ByteVector ctor * Rework variable-length input to use ByteVector * Rename some variables * Naming and formatting cleanup * Add basic Shorten tests * Rename a constant * Rename `internalFileType` to `fileType` * Add documentation on `fileType` meaning * Add DO_NOT_DOCUMENT guard * Fix shadowVariable issues reported by cppcheck cppcheck --enable=all --inline-suppr \ --suppress=noExplicitConstructor --suppress=unusedFunction \ --suppress=missingIncludeSystem --project=compile_commands.json * Formatting cleanup * More explicit types Reason for these changes: getRiceGolombCode(k, uInt32CodeSize) was called with int k for uint32_t& argument. There was also a warning from MSVC for line 299: warning C4267: 'argument': conversion from 'size_t' to 'int' * Additional explicit types * Rename `SHN` namespace to `Shorten` Also rename files to match --------- Co-authored-by: Urs Fleisch <ufleisch@users.sourceforge.net>
This commit is contained in:
@@ -57,6 +57,7 @@
|
||||
#include "xmfile.h"
|
||||
#include "dsffile.h"
|
||||
#include "dsdifffile.h"
|
||||
#include "shortenfile.h"
|
||||
|
||||
using namespace TagLib;
|
||||
|
||||
@@ -180,6 +181,8 @@ namespace
|
||||
file = new DSF::File(stream, readAudioProperties, audioPropertiesStyle);
|
||||
else if(ext == "DFF" || ext == "DSDIFF")
|
||||
file = new DSDIFF::File(stream, readAudioProperties, audioPropertiesStyle);
|
||||
else if(ext == "SHN")
|
||||
file = new Shorten::File(stream, readAudioProperties, audioPropertiesStyle);
|
||||
|
||||
// if file is not valid, leave it to content-based detection.
|
||||
|
||||
@@ -231,6 +234,8 @@ namespace
|
||||
file = new DSF::File(stream, readAudioProperties, audioPropertiesStyle);
|
||||
else if(DSDIFF::File::isSupported(stream))
|
||||
file = new DSDIFF::File(stream, readAudioProperties, audioPropertiesStyle);
|
||||
else if(Shorten::File::isSupported(stream))
|
||||
file = new Shorten::File(stream, readAudioProperties, audioPropertiesStyle);
|
||||
|
||||
// isSupported() only does a quick check, so double check the file here.
|
||||
|
||||
@@ -436,6 +441,7 @@ StringList FileRef::defaultFileExtensions()
|
||||
l.append("dsf");
|
||||
l.append("dff");
|
||||
l.append("dsdiff"); // alias for "dff"
|
||||
l.append("shn");
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user