From 24d239f1e79e0540574f75295c6b02862d478230 Mon Sep 17 00:00:00 2001 From: emeric Date: Mon, 31 Jan 2022 20:18:41 +0100 Subject: [PATCH] Added WavPack support. fixes #195 --- src/libs/av/impl/Transcoder.cpp | 1 - .../av/include/av/TranscodeParameters.hpp | 19 +++++++++---------- src/libs/av/include/av/Types.hpp | 11 +++++------ src/libs/services/database/impl/Migration.cpp | 8 ++++++++ src/libs/services/database/impl/Migration.hpp | 2 +- .../services/database/ScanSettings.hpp | 2 +- 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/libs/av/impl/Transcoder.cpp b/src/libs/av/impl/Transcoder.cpp index 7efa0442..55b00d1b 100644 --- a/src/libs/av/impl/Transcoder.cpp +++ b/src/libs/av/impl/Transcoder.cpp @@ -119,7 +119,6 @@ Transcoder::start() args.emplace_back("-b:a"); args.emplace_back(std::to_string(_parameters.bitrate)); - // Codecs and formats switch (_parameters.format) { diff --git a/src/libs/av/include/av/TranscodeParameters.hpp b/src/libs/av/include/av/TranscodeParameters.hpp index 7449e2d9..c155f6e7 100644 --- a/src/libs/av/include/av/TranscodeParameters.hpp +++ b/src/libs/av/include/av/TranscodeParameters.hpp @@ -24,16 +24,15 @@ #include "Types.hpp" -namespace Av { - -struct TranscodeParameters +namespace Av { - Format format; - std::size_t bitrate {128000}; - std::optional stream; // Id of the stream to be transcoded (auto detect by default) - std::chrono::milliseconds offset {0}; - bool stripMetadata {true}; -}; - + struct TranscodeParameters + { + Format format; + std::size_t bitrate {128000}; + std::optional stream; // Id of the stream to be transcoded (auto detect by default) + std::chrono::milliseconds offset {0}; + bool stripMetadata {true}; + }; } // namespace Av diff --git a/src/libs/av/include/av/Types.hpp b/src/libs/av/include/av/Types.hpp index d1cc4cb5..166a19da 100644 --- a/src/libs/av/include/av/Types.hpp +++ b/src/libs/av/include/av/Types.hpp @@ -33,12 +33,11 @@ namespace Av { enum class Format { - // Values are important and must not be changed (stored in the UI's localstorage) - MP3 = 0, - OGG_OPUS = 1, - MATROSKA_OPUS = 2, - OGG_VORBIS = 3, - WEBM_VORBIS = 4, + MP3, + OGG_OPUS, + MATROSKA_OPUS, + OGG_VORBIS, + WEBM_VORBIS, }; std::string_view formatToMimetype(Format format); diff --git a/src/libs/services/database/impl/Migration.cpp b/src/libs/services/database/impl/Migration.cpp index 64198a88..b83ebee2 100644 --- a/src/libs/services/database/impl/Migration.cpp +++ b/src/libs/services/database/impl/Migration.cpp @@ -542,6 +542,13 @@ CREATE TABLE "listen" ( migrateListens("__scrobbler_listenbrainz_history__", Scrobbler::ListenBrainz); } + static + void + migrateFromV32(Session& session) + { + ScanSettings::get(session).modify()->addAudioFileExtension(".wv"); + } + void doDbMigration(Session& session) { @@ -580,6 +587,7 @@ CREATE TABLE "listen" ( {29, migrateFromV29}, {30, migrateFromV30}, {31, migrateFromV31}, + {32, migrateFromV32}, }; while (1) diff --git a/src/libs/services/database/impl/Migration.hpp b/src/libs/services/database/impl/Migration.hpp index ce5ae962..9b4f1eed 100644 --- a/src/libs/services/database/impl/Migration.hpp +++ b/src/libs/services/database/impl/Migration.hpp @@ -26,7 +26,7 @@ namespace Database class Session; using Version = std::size_t; - static constexpr Version LMS_DATABASE_VERSION {32}; + static constexpr Version LMS_DATABASE_VERSION {33}; class VersionInfo { public: diff --git a/src/libs/services/database/include/services/database/ScanSettings.hpp b/src/libs/services/database/include/services/database/ScanSettings.hpp index 1a81b757..19def107 100644 --- a/src/libs/services/database/include/services/database/ScanSettings.hpp +++ b/src/libs/services/database/include/services/database/ScanSettings.hpp @@ -94,7 +94,7 @@ class ScanSettings : public Object Wt::WTime _startTime = Wt::WTime {0,0,0}; UpdatePeriod _updatePeriod {UpdatePeriod::Never}; RecommendationEngineType _recommendationEngineType {RecommendationEngineType::Clusters}; - std::string _audioFileExtensions {".alac .mp3 .ogg .oga .aac .m4a .m4b .flac .wav .wma .aif .aiff .ape .mpc .shn .opus"}; + std::string _audioFileExtensions {".alac .mp3 .ogg .oga .aac .m4a .m4b .flac .wav .wma .aif .aiff .ape .mpc .shn .opus .wv"}; Wt::Dbo::collection> _clusterTypes; };