Add mod and s3m to filetypes

This commit is contained in:
Jonas Kvinge 2021-09-26 16:23:02 +02:00
parent 0235be538b
commit 92f6a0c6c8
4 changed files with 25 additions and 0 deletions

View File

@ -23,6 +23,8 @@ message SongMetadata {
DSDIFF = 15;
PCM = 16;
APE = 17;
MOD = 18;
S3M = 19;
CDDA = 90;
STREAM = 91;
}

View File

@ -67,6 +67,8 @@
#include <taglib/opusfile.h>
#include <taglib/trueaudiofile.h>
#include <taglib/apefile.h>
#include <taglib/modfile.h>
#include <taglib/s3mfile.h>
#ifdef HAVE_TAGLIB_DSFFILE
# include <taglib/dsffile.h>
#endif
@ -163,6 +165,8 @@ spb::tagreader::SongMetadata_FileType TagReaderTagLib::GuessFileType(TagLib::Fil
if (dynamic_cast<TagLib::MPC::File*>(fileref->file())) return spb::tagreader::SongMetadata_FileType_MPC;
if (dynamic_cast<TagLib::TrueAudio::File*>(fileref->file())) return spb::tagreader::SongMetadata_FileType_TRUEAUDIO;
if (dynamic_cast<TagLib::APE::File*>(fileref->file())) return spb::tagreader::SongMetadata_FileType_APE;
if (dynamic_cast<TagLib::Mod::File*>(fileref->file())) return spb::tagreader::SongMetadata_FileType_MOD;
if (dynamic_cast<TagLib::S3M::File*>(fileref->file())) return spb::tagreader::SongMetadata_FileType_S3M;
#ifdef HAVE_TAGLIB_DSFFILE
if (dynamic_cast<TagLib::DSF::File*>(fileref->file())) return spb::tagreader::SongMetadata_FileType_DSF;
#endif

View File

@ -598,6 +598,8 @@ QString Song::TextForFiletype(FileType filetype) {
case Song::FileType_DSDIFF: return "DSDIFF";
case Song::FileType_PCM: return "PCM";
case Song::FileType_APE: return "Monkey's Audio";
case Song::FileType_MOD: return "Module Music Format";
case Song::FileType_S3M: return "Module Music Format";
case Song::FileType_CDDA: return "CDDA";
case Song::FileType_Stream: return "Stream";
case Song::FileType_Unknown:
@ -625,6 +627,8 @@ QString Song::ExtensionForFiletype(FileType filetype) {
case Song::FileType_DSF: return "dsf";
case Song::FileType_DSDIFF: return "dsd";
case Song::FileType_APE: return "ape";
case Song::FileType_MOD: return "mod";
case Song::FileType_S3M: return "s3m";
case Song::FileType_Unknown:
default: return "dat";
}
@ -651,6 +655,8 @@ QIcon Song::IconForFiletype(FileType filetype) {
case Song::FileType_DSDIFF: return IconLoader::Load("dsd");
case Song::FileType_PCM: return IconLoader::Load("pcm");
case Song::FileType_APE: return IconLoader::Load("ape");
case Song::FileType_MOD: return IconLoader::Load("mod");
case Song::FileType_S3M: return IconLoader::Load("s3m");
case Song::FileType_CDDA: return IconLoader::Load("cd");
case Song::FileType_Stream: return IconLoader::Load("applications-internet");
case Song::FileType_Unknown:
@ -695,6 +701,9 @@ Song::FileType Song::FiletypeByMimetype(const QString &mimetype) {
else if (mimetype.compare("audio/x-dsf", Qt::CaseInsensitive) == 0) return Song::FileType_DSF;
else if (mimetype.compare("audio/x-dsd", Qt::CaseInsensitive) == 0) return Song::FileType_DSDIFF;
else if (mimetype.compare("audio/x-ape", Qt::CaseInsensitive) == 0 || mimetype.compare("application/x-ape", Qt::CaseInsensitive) == 0 || mimetype.compare("audio/x-ffmpeg-parsed-ape", Qt::CaseInsensitive) == 0) return Song::FileType_APE;
else if (mimetype.compare("audio/x-mod", Qt::CaseInsensitive) == 0) return Song::FileType_MOD;
else if (mimetype.compare("audio/x-s3m", Qt::CaseInsensitive) == 0) return Song::FileType_S3M;
else return Song::FileType_Unknown;
}
@ -715,6 +724,8 @@ Song::FileType Song::FiletypeByDescription(const QString &text) {
else if (text.compare("audio/x-dsf", Qt::CaseInsensitive) == 0) return Song::FileType_DSF;
else if (text.compare("audio/x-dsd", Qt::CaseInsensitive) == 0) return Song::FileType_DSDIFF;
else if (text.compare("audio/x-ffmpeg-parsed-ape", Qt::CaseInsensitive) == 0) return Song::FileType_APE;
else if (text.compare("Module Music Format (MOD)", Qt::CaseInsensitive) == 0) return Song::FileType_MOD;
else if (text.compare("Module Music Format (MOD)", Qt::CaseInsensitive) == 0) return Song::FileType_S3M;
else return Song::FileType_Unknown;
}
@ -735,6 +746,12 @@ Song::FileType Song::FiletypeByExtension(const QString &ext) {
else if (ext.compare("dsf", Qt::CaseInsensitive) == 0) return Song::FileType_DSF;
else if (ext.compare("dsd", Qt::CaseInsensitive) == 0 || ext.compare("dff", Qt::CaseInsensitive) == 0) return Song::FileType_DSDIFF;
else if (ext.compare("ape", Qt::CaseInsensitive) == 0) return Song::FileType_APE;
else if (ext.compare("mod", Qt::CaseInsensitive) == 0 ||
ext.compare("module", Qt::CaseInsensitive) == 0 ||
ext.compare("nst", Qt::CaseInsensitive) == 0||
ext.compare("wow", Qt::CaseInsensitive) == 0) return Song::FileType_MOD;
else if (ext.compare("s3m", Qt::CaseInsensitive) == 0) return Song::FileType_S3M;
else return Song::FileType_Unknown;
}

View File

@ -102,6 +102,8 @@ class Song {
FileType_DSDIFF = 15,
FileType_PCM = 16,
FileType_APE = 17,
FileType_MOD = 18,
FileType_S3M = 19,
FileType_CDDA = 90,
FileType_Stream = 91,
};