diff --git a/src/libs/cover/CMakeLists.txt b/src/libs/cover/CMakeLists.txt
index a675db76..12627c9e 100644
--- a/src/libs/cover/CMakeLists.txt
+++ b/src/libs/cover/CMakeLists.txt
@@ -1,6 +1,6 @@
add_library(lmscover SHARED
- impl/CoverArtGrabber.cpp
+ impl/CoverService.cpp
)
target_include_directories(lmscover INTERFACE
diff --git a/src/libs/cover/impl/CoverArtGrabber.cpp b/src/libs/cover/impl/CoverService.cpp
similarity index 86%
rename from src/libs/cover/impl/CoverArtGrabber.cpp
rename to src/libs/cover/impl/CoverService.cpp
index 58fff328..af768802 100644
--- a/src/libs/cover/impl/CoverArtGrabber.cpp
+++ b/src/libs/cover/impl/CoverService.cpp
@@ -17,7 +17,7 @@
* along with LMS. If not, see .
*/
-#include "CoverArtGrabber.hpp"
+#include "CoverService.hpp"
#include "av/IAudioFile.hpp"
@@ -28,10 +28,10 @@
#if LMS_SUPPORT_IMAGE_STB
#include "stb/RawImage.hpp"
-using RawImage = CoverArt::STB::RawImage;
+using RawImage = Cover::STB::RawImage;
#elif LMS_SUPPORT_IMAGE_GM
#include "graphicsmagick/RawImage.hpp"
-using RawImage = CoverArt::GraphicsMagick::RawImage;
+using RawImage = Cover::GraphicsMagick::RawImage;
#endif
#include "utils/IConfig.hpp"
@@ -77,7 +77,7 @@ namespace
}
}
-namespace CoverArt {
+namespace Cover {
static
bool
@@ -86,13 +86,13 @@ isFileSupported(const std::filesystem::path& file, const std::vector
-createGrabber(Database::Db& db, const std::filesystem::path& execPath, const std::filesystem::path& defaultCoverPath)
+std::unique_ptr
+createCoverService(Database::Db& db, const std::filesystem::path& execPath, const std::filesystem::path& defaultCoverPath)
{
- return std::make_unique(db, execPath, defaultCoverPath);
+ return std::make_unique(db, execPath, defaultCoverPath);
}
-Grabber::Grabber(Database::Db& db,
+CoverService::CoverService(Database::Db& db,
const std::filesystem::path& execPath,
const std::filesystem::path& defaultCoverPath)
: _db {db}
@@ -124,7 +124,7 @@ Grabber::Grabber(Database::Db& db,
}
std::unique_ptr
-Grabber::getFromAvMediaFile(const Av::IAudioFile& input, ImageSize width) const
+CoverService::getFromAvMediaFile(const Av::IAudioFile& input, ImageSize width) const
{
std::unique_ptr image;
@@ -149,7 +149,7 @@ Grabber::getFromAvMediaFile(const Av::IAudioFile& input, ImageSize width) const
}
std::unique_ptr
-Grabber::getFromCoverFile(const std::filesystem::path& p, ImageSize width) const
+CoverService::getFromCoverFile(const std::filesystem::path& p, ImageSize width) const
{
std::unique_ptr image;
@@ -168,7 +168,7 @@ Grabber::getFromCoverFile(const std::filesystem::path& p, ImageSize width) const
}
std::shared_ptr
-Grabber::getDefault(ImageSize width)
+CoverService::getDefault(ImageSize width)
{
{
std::shared_lock lock {_cacheMutex};
@@ -192,7 +192,7 @@ Grabber::getDefault(ImageSize width)
}
std::unique_ptr
-Grabber::getFromDirectory(const std::filesystem::path& directory, ImageSize width) const
+CoverService::getFromDirectory(const std::filesystem::path& directory, ImageSize width) const
{
const std::multimap coverPaths {getCoverPaths(directory)};
@@ -231,7 +231,7 @@ Grabber::getFromDirectory(const std::filesystem::path& directory, ImageSize widt
}
std::unique_ptr
-Grabber::getFromSameNamedFile(const std::filesystem::path& filePath, ImageSize width) const
+CoverService::getFromSameNamedFile(const std::filesystem::path& filePath, ImageSize width) const
{
std::unique_ptr res;
@@ -252,7 +252,7 @@ Grabber::getFromSameNamedFile(const std::filesystem::path& filePath, ImageSize w
}
bool
-Grabber::checkCoverFile(const std::filesystem::path& filePath) const
+CoverService::checkCoverFile(const std::filesystem::path& filePath) const
{
std::error_code ec;
@@ -275,7 +275,7 @@ Grabber::checkCoverFile(const std::filesystem::path& filePath) const
}
std::multimap
-Grabber::getCoverPaths(const std::filesystem::path& directoryPath) const
+CoverService::getCoverPaths(const std::filesystem::path& directoryPath) const
{
std::multimap res;
std::error_code ec;
@@ -296,7 +296,7 @@ Grabber::getCoverPaths(const std::filesystem::path& directoryPath) const
}
std::unique_ptr
-Grabber::getFromTrack(const std::filesystem::path& p, ImageSize width) const
+CoverService::getFromTrack(const std::filesystem::path& p, ImageSize width) const
{
std::unique_ptr image;
@@ -313,13 +313,13 @@ Grabber::getFromTrack(const std::filesystem::path& p, ImageSize width) const
}
std::shared_ptr
-Grabber::getFromTrack(Database::TrackId trackId, ImageSize width)
+CoverService::getFromTrack(Database::TrackId trackId, ImageSize width)
{
return getFromTrack(_db.getTLSSession(), trackId, width, true /* allow release fallback*/);
}
std::shared_ptr
-Grabber::getFromTrack(Database::Session& dbSession, Database::TrackId trackId, ImageSize width, bool allowReleaseFallback)
+CoverService::getFromTrack(Database::Session& dbSession, Database::TrackId trackId, ImageSize width, bool allowReleaseFallback)
{
using namespace Database;
@@ -357,7 +357,7 @@ Grabber::getFromTrack(Database::Session& dbSession, Database::TrackId trackId, I
}
std::shared_ptr
-Grabber::getFromRelease(Database::ReleaseId releaseId, ImageSize width)
+CoverService::getFromRelease(Database::ReleaseId releaseId, ImageSize width)
{
const CacheEntryDesc cacheEntryDesc {releaseId, width};
@@ -409,7 +409,7 @@ Grabber::getFromRelease(Database::ReleaseId releaseId, ImageSize width)
}
void
-Grabber::flushCache()
+CoverService::flushCache()
{
std::unique_lock lock {_cacheMutex};
@@ -421,7 +421,7 @@ Grabber::flushCache()
}
void
-Grabber::setJpegQuality(unsigned quality)
+CoverService::setJpegQuality(unsigned quality)
{
_jpegQuality = Utils::clamp(quality, 1, 100);
@@ -429,7 +429,7 @@ Grabber::setJpegQuality(unsigned quality)
}
void
-Grabber::saveToCache(const CacheEntryDesc& entryDesc, std::shared_ptr image)
+CoverService::saveToCache(const CacheEntryDesc& entryDesc, std::shared_ptr image)
{
std::unique_lock lock {_cacheMutex};
@@ -445,7 +445,7 @@ Grabber::saveToCache(const CacheEntryDesc& entryDesc, std::shared_ptr
-Grabber::loadFromCache(const CacheEntryDesc& entryDesc)
+CoverService::loadFromCache(const CacheEntryDesc& entryDesc)
{
std::shared_lock lock {_cacheMutex};
@@ -460,5 +460,5 @@ Grabber::loadFromCache(const CacheEntryDesc& entryDesc)
return it->second;
}
-} // namespace CoverArt
+} // namespace Cover
diff --git a/src/libs/cover/impl/CoverArtGrabber.hpp b/src/libs/cover/impl/CoverService.hpp
similarity index 89%
rename from src/libs/cover/impl/CoverArtGrabber.hpp
rename to src/libs/cover/impl/CoverService.hpp
index 15e5f1ec..c67f068c 100644
--- a/src/libs/cover/impl/CoverArtGrabber.hpp
+++ b/src/libs/cover/impl/CoverService.hpp
@@ -29,7 +29,7 @@
#include
#include
-#include "cover/ICoverArtGrabber.hpp"
+#include "cover/ICoverService.hpp"
#include "cover/IEncodedImage.hpp"
#include "database/Types.hpp"
@@ -43,7 +43,7 @@ namespace Av
class IAudioFile;
}
-namespace CoverArt
+namespace Cover
{
struct CacheEntryDesc
{
@@ -57,16 +57,16 @@ namespace CoverArt
}
};
-} // ns CoverArt
+} // ns Cover
namespace std
{
template<>
- class hash
+ class hash
{
public:
- size_t operator()(const CoverArt::CacheEntryDesc& e) const
+ size_t operator()(const Cover::CacheEntryDesc& e) const
{
size_t h {};
std::visit([&](auto id)
@@ -81,19 +81,19 @@ namespace std
} // ns std
-namespace CoverArt
+namespace Cover
{
- class Grabber : public IGrabber
+ class CoverService : public ICoverService
{
public:
- Grabber(Database::Db& db,
+ CoverService(Database::Db& db,
const std::filesystem::path& execPath,
const std::filesystem::path& defaultCoverPath);
- Grabber(const Grabber&) = delete;
- Grabber& operator=(const Grabber&) = delete;
- Grabber(Grabber&&) = delete;
- Grabber& operator=(Grabber&&) = delete;
+ CoverService(const CoverService&) = delete;
+ CoverService& operator=(const CoverService&) = delete;
+ CoverService(CoverService&&) = delete;
+ CoverService& operator=(CoverService&&) = delete;
private:
std::shared_ptr getFromTrack(Database::TrackId trackId, ImageSize width) override;
@@ -133,5 +133,5 @@ namespace CoverArt
unsigned _jpegQuality;
};
-} // namespace CoverArt
+} // namespace Cover
diff --git a/src/libs/cover/impl/Exception.hpp b/src/libs/cover/impl/Exception.hpp
index e6c8c342..78708f85 100644
--- a/src/libs/cover/impl/Exception.hpp
+++ b/src/libs/cover/impl/Exception.hpp
@@ -21,7 +21,7 @@
#include "utils/Exception.hpp"
-namespace CoverArt
+namespace Cover
{
// internal use only
class ImageException : public LmsException
@@ -30,5 +30,5 @@ namespace CoverArt
using LmsException::LmsException;
};
-} // namespace CoverArt
+} // namespace Cover
diff --git a/src/libs/cover/impl/IRawImage.hpp b/src/libs/cover/impl/IRawImage.hpp
index 6ff9e6d1..02e13ce8 100644
--- a/src/libs/cover/impl/IRawImage.hpp
+++ b/src/libs/cover/impl/IRawImage.hpp
@@ -23,7 +23,7 @@
#include "cover/IEncodedImage.hpp"
-namespace CoverArt
+namespace Cover
{
class IRawImage
{
diff --git a/src/libs/cover/impl/stb/JPEGImage.cpp b/src/libs/cover/impl/stb/JPEGImage.cpp
index 68eafe43..aad386c2 100644
--- a/src/libs/cover/impl/stb/JPEGImage.cpp
+++ b/src/libs/cover/impl/stb/JPEGImage.cpp
@@ -25,7 +25,7 @@
#include "RawImage.hpp"
#include "Exception.hpp"
-namespace CoverArt::STB
+namespace Cover::STB
{
JPEGImage::JPEGImage(const RawImage& rawImage, unsigned quality)
{
diff --git a/src/libs/cover/impl/stb/JPEGImage.hpp b/src/libs/cover/impl/stb/JPEGImage.hpp
index 3256cd10..0ccfd98f 100644
--- a/src/libs/cover/impl/stb/JPEGImage.hpp
+++ b/src/libs/cover/impl/stb/JPEGImage.hpp
@@ -23,7 +23,7 @@
#include "cover/IEncodedImage.hpp"
-namespace CoverArt::STB
+namespace Cover::STB
{
class RawImage;
class JPEGImage : public IEncodedImage
diff --git a/src/libs/cover/impl/stb/RawImage.cpp b/src/libs/cover/impl/stb/RawImage.cpp
index 13ff1d75..9df69d80 100644
--- a/src/libs/cover/impl/stb/RawImage.cpp
+++ b/src/libs/cover/impl/stb/RawImage.cpp
@@ -32,7 +32,7 @@
#include "Exception.hpp"
-namespace CoverArt::STB
+namespace Cover::STB
{
RawImage::RawImage(const std::byte* encodedData, std::size_t encodedDataSize)
{
diff --git a/src/libs/cover/impl/stb/RawImage.hpp b/src/libs/cover/impl/stb/RawImage.hpp
index d4f36aa1..b0753268 100644
--- a/src/libs/cover/impl/stb/RawImage.hpp
+++ b/src/libs/cover/impl/stb/RawImage.hpp
@@ -29,7 +29,7 @@
#include "cover/IEncodedImage.hpp"
#include "IRawImage.hpp"
-namespace CoverArt::STB
+namespace Cover::STB
{
class RawImage : public IRawImage
{
diff --git a/src/libs/cover/include/cover/ICoverArtGrabber.hpp b/src/libs/cover/include/cover/ICoverService.hpp
similarity index 82%
rename from src/libs/cover/include/cover/ICoverArtGrabber.hpp
rename to src/libs/cover/include/cover/ICoverService.hpp
index d6bcdf67..1df5942b 100644
--- a/src/libs/cover/include/cover/ICoverArtGrabber.hpp
+++ b/src/libs/cover/include/cover/ICoverService.hpp
@@ -30,12 +30,12 @@ namespace Database
class Db;
}
-namespace CoverArt
+namespace Cover
{
- class IGrabber
+ class ICoverService
{
public:
- virtual ~IGrabber() = default;
+ virtual ~ICoverService() = default;
virtual std::shared_ptr getFromTrack(Database::TrackId trackId, ImageSize width) = 0;
virtual std::shared_ptr getFromRelease(Database::ReleaseId releaseId, ImageSize width) = 0;
@@ -45,9 +45,9 @@ namespace CoverArt
virtual void setJpegQuality(unsigned quality) = 0; // from 1 to 100
};
- std::unique_ptr createGrabber(Database::Db& db,
- const std::filesystem::path& execPath,
- const std::filesystem::path& defaultCoverPath);
+ std::unique_ptr createCoverService(Database::Db& db,
+ const std::filesystem::path& execPath,
+ const std::filesystem::path& defaultCoverPath);
} // namespace CoverArt
diff --git a/src/libs/cover/include/cover/IEncodedImage.hpp b/src/libs/cover/include/cover/IEncodedImage.hpp
index 0fc245be..8567a57b 100644
--- a/src/libs/cover/include/cover/IEncodedImage.hpp
+++ b/src/libs/cover/include/cover/IEncodedImage.hpp
@@ -22,7 +22,7 @@
#include
#include
-namespace CoverArt
+namespace Cover
{
using ImageSize = std::size_t;
@@ -36,5 +36,5 @@ namespace CoverArt
virtual std::string_view getMimeType() const = 0;
};
-} // namespace CoverArt
+} // namespace Cover
diff --git a/src/libs/subsonic/impl/SubsonicResource.cpp b/src/libs/subsonic/impl/SubsonicResource.cpp
index 5cc0b4e4..27881aa0 100644
--- a/src/libs/subsonic/impl/SubsonicResource.cpp
+++ b/src/libs/subsonic/impl/SubsonicResource.cpp
@@ -28,7 +28,7 @@
#include "auth/IPasswordService.hpp"
#include "auth/IEnvService.hpp"
-#include "cover/ICoverArtGrabber.hpp"
+#include "cover/ICoverService.hpp"
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Db.hpp"
@@ -1802,11 +1802,11 @@ handleGetCoverArt(RequestContext& context, const Wt::Http::Request& /*request*/,
std::size_t size {getParameterAs(context.parameters, "size").value_or(256)};
size = Utils::clamp(size, std::size_t {32}, std::size_t {1024});
- std::shared_ptr cover;
+ std::shared_ptr cover;
if (trackId)
- cover = Service::get()->getFromTrack(*trackId, size);
+ cover = Service::get()->getFromTrack(*trackId, size);
else if (releaseId)
- cover = Service::get()->getFromRelease(*releaseId, size);
+ cover = Service::get()->getFromRelease(*releaseId, size);
response.out().write(reinterpret_cast(cover->getData()), cover->getDataSize());
response.setMimeType(std::string {cover->getMimeType()});
diff --git a/src/lms/main.cpp b/src/lms/main.cpp
index ec7b906c..5ad76bfe 100644
--- a/src/lms/main.cpp
+++ b/src/lms/main.cpp
@@ -28,7 +28,7 @@
#include "auth/IAuthTokenService.hpp"
#include "auth/IPasswordService.hpp"
#include "auth/IEnvService.hpp"
-#include "cover/ICoverArtGrabber.hpp"
+#include "cover/ICoverService.hpp"
#include "database/Db.hpp"
#include "database/Session.hpp"
#include "scanner/IScanner.hpp"
@@ -224,7 +224,7 @@ int main(int argc, char* argv[])
Wt::WServer server {argv[0]};
server.setServerConfiguration(wtServerArgs.size(), const_cast(&wtArgv[0]));
- IOContextRunner ioContextRunner {ioContext, std::max(2, std::thread::hardware_concurrency())};
+ IOContextRunner ioContextRunner {ioContext, getThreadCount()};
// Initializing a connection pool to the database that will be shared along services
Database::Db database {config->getPath("working-dir") / "lms.db", getThreadCount()};
@@ -257,7 +257,7 @@ int main(int argc, char* argv[])
throw LmsException {"Bad value '" + authenticationBackend + "' for 'authentication-backend'"};
Service httpClient {Http::createClient(ioContext)};
- Service coverArtService {CoverArt::createGrabber(database, argv[0], server.appRoot() + "/images/unknown-cover.jpg")};
+ Service coverService {Cover::createCoverService(database, argv[0], server.appRoot() + "/images/unknown-cover.jpg")};
Service recommendationEngineService {Recommendation::createEngine(database)};
Service scannerService {Scanner::createScanner(database, *recommendationEngineService)};
@@ -265,7 +265,7 @@ int main(int argc, char* argv[])
{
// Flush cover cache even if no changes:
// covers may be external files that changed and we don't keep track of them
- coverArtService->flushCache();
+ coverService->flushCache();
});
Service scrobblingService {Scrobbling::createScrobbling(ioContext, database)};
diff --git a/src/lms/ui/LmsApplication.cpp b/src/lms/ui/LmsApplication.cpp
index e192763e..38116bd8 100644
--- a/src/lms/ui/LmsApplication.cpp
+++ b/src/lms/ui/LmsApplication.cpp
@@ -30,7 +30,7 @@
#include "auth/IEnvService.hpp"
#include "auth/IPasswordService.hpp"
-#include "cover/ICoverArtGrabber.hpp"
+#include "cover/ICoverService.hpp"
#include "database/Artist.hpp"
#include "database/Cluster.hpp"
#include "database/Db.hpp"
diff --git a/src/lms/ui/resource/CoverResource.cpp b/src/lms/ui/resource/CoverResource.cpp
index 2ed89d9e..c06b3159 100644
--- a/src/lms/ui/resource/CoverResource.cpp
+++ b/src/lms/ui/resource/CoverResource.cpp
@@ -22,7 +22,7 @@
#include
#include
-#include "cover/ICoverArtGrabber.hpp"
+#include "cover/ICoverService.hpp"
#include "database/Track.hpp"
#include "utils/Exception.hpp"
#include "utils/Logger.hpp"
@@ -83,7 +83,7 @@ CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Respons
return;
}
- std::shared_ptr cover;
+ std::shared_ptr cover;
if (trackIdStr)
{
@@ -96,7 +96,7 @@ CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Respons
return;
}
- cover = Service::get()->getFromTrack(*trackId, *size);
+ cover = Service::get()->getFromTrack(*trackId, *size);
}
else if (releaseIdStr)
{
@@ -106,7 +106,7 @@ CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Respons
if (!releaseId)
return;
- cover = Service::get()->getFromRelease(*releaseId, *size);
+ cover = Service::get()->getFromRelease(*releaseId, *size);
}
else
{
diff --git a/src/tools/cover/LmsCover.cpp b/src/tools/cover/LmsCover.cpp
index f1b44c97..e09b223d 100644
--- a/src/tools/cover/LmsCover.cpp
+++ b/src/tools/cover/LmsCover.cpp
@@ -24,7 +24,7 @@
#include
-#include "cover/ICoverArtGrabber.hpp"
+#include "cover/ICoverService.hpp"
#include "database/Db.hpp"
#include "database/Release.hpp"
#include "database/Session.hpp"
@@ -36,7 +36,7 @@
static
void
-dumpTrackCovers(Database::Session& session, CoverArt::ImageSize width)
+dumpTrackCovers(Database::Session& session, Cover::ImageSize width)
{
std::vector trackIds;
{
@@ -47,7 +47,7 @@ dumpTrackCovers(Database::Session& session, CoverArt::ImageSize width)
for (const Database::TrackId trackId : trackIds)
{
std::cout << "Getting cover for track id " << trackId.toString() << std::endl;
- Service::get()->getFromTrack(trackId, width);
+ Service::get()->getFromTrack(trackId, width);
}
}
@@ -83,7 +83,7 @@ int main(int argc, char *argv[])
Service config {createConfig(vm["conf"].as())};
Database::Db db {config->getPath("working-dir") / "lms.db"};
- Service coverArtService {CoverArt::createGrabber(db, argv[0], vm["default-cover"].as())};
+ Service coverArtService {Cover::createCoverService(db, argv[0], vm["default-cover"].as())};
coverArtService->setJpegQuality(config->getULong("cover-jpeg-quality", vm["quality"].as()));