diff --git a/ext/libclementine-remote/remotecontrolmessages.proto b/ext/libclementine-remote/remotecontrolmessages.proto index b3f26d422..f1ebc3219 100644 --- a/ext/libclementine-remote/remotecontrolmessages.proto +++ b/ext/libclementine-remote/remotecontrolmessages.proto @@ -104,6 +104,7 @@ message SongMetadata { TRUEAUDIO = 11; CDDA = 12; OGGOPUS = 13; + WAVPACK = 14; STREAM = 99; } diff --git a/ext/libclementine-tagreader/tagreader.cpp b/ext/libclementine-tagreader/tagreader.cpp index 4440fd159..208c9758e 100644 --- a/ext/libclementine-tagreader/tagreader.cpp +++ b/ext/libclementine-tagreader/tagreader.cpp @@ -52,6 +52,7 @@ #include #include #include +#include #include @@ -659,6 +660,8 @@ pb::tagreader::SongMetadata_Type TagReader::GuessFileType( return pb::tagreader::SongMetadata_Type_WAV; if (dynamic_cast(fileref->file())) return pb::tagreader::SongMetadata_Type_TRUEAUDIO; + if (dynamic_cast(fileref->file())) + return pb::tagreader::SongMetadata_Type_WAVPACK; return pb::tagreader::SongMetadata_Type_UNKNOWN; } diff --git a/ext/libclementine-tagreader/tagreadermessages.proto b/ext/libclementine-tagreader/tagreadermessages.proto index 0e9322ec2..857dc4914 100644 --- a/ext/libclementine-tagreader/tagreadermessages.proto +++ b/ext/libclementine-tagreader/tagreadermessages.proto @@ -16,6 +16,7 @@ message SongMetadata { TRUEAUDIO = 11; CDDA = 12; OGGOPUS = 13; + WAVPACK = 14; STREAM = 99; } diff --git a/src/core/song.cpp b/src/core/song.cpp index 6f4e1192a..32b645dff 100644 --- a/src/core/song.cpp +++ b/src/core/song.cpp @@ -427,6 +427,8 @@ QString Song::TextForFiletype(FileType type) { return QObject::tr("AIFF"); case Song::Type_Wav: return QObject::tr("Wav"); + case Song::Type_WavPack: + return QObject::tr("WavPack"); case Song::Type_TrueAudio: return QObject::tr("TrueAudio"); case Song::Type_Cdda: @@ -447,6 +449,7 @@ bool Song::IsFileLossless() const { case Song::Type_Flac: case Song::Type_OggFlac: case Song::Type_Wav: + case Song::Type_WavPack: return true; default: return false; @@ -673,7 +676,8 @@ void Song::InitFromFilePartial(const QString& filename) { if (suffix == "mp3" || suffix == "ogg" || suffix == "flac" || suffix == "mpc" || suffix == "m4a" || suffix == "aac" || suffix == "wma" || suffix == "mp4" || suffix == "spx" || - suffix == "wav" || suffix == "opus" || suffix == "m4b") { + suffix == "wav" || suffix == "opus" || suffix == "m4b" || + suffix == "wv") { d->valid_ = true; } else { d->valid_ = false; diff --git a/src/core/song.h b/src/core/song.h index ace966ec1..d3667e49f 100644 --- a/src/core/song.h +++ b/src/core/song.h @@ -101,6 +101,7 @@ class Song { Type_TrueAudio = 11, Type_Cdda = 12, Type_OggOpus = 13, + Type_WavPack = 14, Type_Stream = 99, }; static QString TextForFiletype(FileType type);