Renamed CoverArtGrabber to CoverService
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
|
||||
add_library(lmscover SHARED
|
||||
impl/CoverArtGrabber.cpp
|
||||
impl/CoverService.cpp
|
||||
)
|
||||
|
||||
target_include_directories(lmscover INTERFACE
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#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<std::filesy
|
||||
return (std::find(std::cbegin(extensions), std::cend(extensions), file.extension()) != std::cend(extensions));
|
||||
}
|
||||
|
||||
std::unique_ptr<IGrabber>
|
||||
createGrabber(Database::Db& db, const std::filesystem::path& execPath, const std::filesystem::path& defaultCoverPath)
|
||||
std::unique_ptr<ICoverService>
|
||||
createCoverService(Database::Db& db, const std::filesystem::path& execPath, const std::filesystem::path& defaultCoverPath)
|
||||
{
|
||||
return std::make_unique<Grabber>(db, execPath, defaultCoverPath);
|
||||
return std::make_unique<CoverService>(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<IEncodedImage>
|
||||
Grabber::getFromAvMediaFile(const Av::IAudioFile& input, ImageSize width) const
|
||||
CoverService::getFromAvMediaFile(const Av::IAudioFile& input, ImageSize width) const
|
||||
{
|
||||
std::unique_ptr<IEncodedImage> image;
|
||||
|
||||
@@ -149,7 +149,7 @@ Grabber::getFromAvMediaFile(const Av::IAudioFile& input, ImageSize width) const
|
||||
}
|
||||
|
||||
std::unique_ptr<IEncodedImage>
|
||||
Grabber::getFromCoverFile(const std::filesystem::path& p, ImageSize width) const
|
||||
CoverService::getFromCoverFile(const std::filesystem::path& p, ImageSize width) const
|
||||
{
|
||||
std::unique_ptr<IEncodedImage> image;
|
||||
|
||||
@@ -168,7 +168,7 @@ Grabber::getFromCoverFile(const std::filesystem::path& p, ImageSize width) const
|
||||
}
|
||||
|
||||
std::shared_ptr<IEncodedImage>
|
||||
Grabber::getDefault(ImageSize width)
|
||||
CoverService::getDefault(ImageSize width)
|
||||
{
|
||||
{
|
||||
std::shared_lock lock {_cacheMutex};
|
||||
@@ -192,7 +192,7 @@ Grabber::getDefault(ImageSize width)
|
||||
}
|
||||
|
||||
std::unique_ptr<IEncodedImage>
|
||||
Grabber::getFromDirectory(const std::filesystem::path& directory, ImageSize width) const
|
||||
CoverService::getFromDirectory(const std::filesystem::path& directory, ImageSize width) const
|
||||
{
|
||||
const std::multimap<std::string, std::filesystem::path> coverPaths {getCoverPaths(directory)};
|
||||
|
||||
@@ -231,7 +231,7 @@ Grabber::getFromDirectory(const std::filesystem::path& directory, ImageSize widt
|
||||
}
|
||||
|
||||
std::unique_ptr<IEncodedImage>
|
||||
Grabber::getFromSameNamedFile(const std::filesystem::path& filePath, ImageSize width) const
|
||||
CoverService::getFromSameNamedFile(const std::filesystem::path& filePath, ImageSize width) const
|
||||
{
|
||||
std::unique_ptr<IEncodedImage> 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<std::string, std::filesystem::path>
|
||||
Grabber::getCoverPaths(const std::filesystem::path& directoryPath) const
|
||||
CoverService::getCoverPaths(const std::filesystem::path& directoryPath) const
|
||||
{
|
||||
std::multimap<std::string, std::filesystem::path> res;
|
||||
std::error_code ec;
|
||||
@@ -296,7 +296,7 @@ Grabber::getCoverPaths(const std::filesystem::path& directoryPath) const
|
||||
}
|
||||
|
||||
std::unique_ptr<IEncodedImage>
|
||||
Grabber::getFromTrack(const std::filesystem::path& p, ImageSize width) const
|
||||
CoverService::getFromTrack(const std::filesystem::path& p, ImageSize width) const
|
||||
{
|
||||
std::unique_ptr<IEncodedImage> image;
|
||||
|
||||
@@ -313,13 +313,13 @@ Grabber::getFromTrack(const std::filesystem::path& p, ImageSize width) const
|
||||
}
|
||||
|
||||
std::shared_ptr<IEncodedImage>
|
||||
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<IEncodedImage>
|
||||
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<IEncodedImage>
|
||||
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<unsigned>(quality, 1, 100);
|
||||
|
||||
@@ -429,7 +429,7 @@ Grabber::setJpegQuality(unsigned quality)
|
||||
}
|
||||
|
||||
void
|
||||
Grabber::saveToCache(const CacheEntryDesc& entryDesc, std::shared_ptr<IEncodedImage> image)
|
||||
CoverService::saveToCache(const CacheEntryDesc& entryDesc, std::shared_ptr<IEncodedImage> image)
|
||||
{
|
||||
std::unique_lock lock {_cacheMutex};
|
||||
|
||||
@@ -445,7 +445,7 @@ Grabber::saveToCache(const CacheEntryDesc& entryDesc, std::shared_ptr<IEncodedIm
|
||||
}
|
||||
|
||||
std::shared_ptr<IEncodedImage>
|
||||
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
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
#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<CoverArt::CacheEntryDesc>
|
||||
class hash<Cover::CacheEntryDesc>
|
||||
{
|
||||
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<IEncodedImage> getFromTrack(Database::TrackId trackId, ImageSize width) override;
|
||||
@@ -133,5 +133,5 @@ namespace CoverArt
|
||||
unsigned _jpegQuality;
|
||||
};
|
||||
|
||||
} // namespace CoverArt
|
||||
} // namespace Cover
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
#include "cover/IEncodedImage.hpp"
|
||||
|
||||
namespace CoverArt
|
||||
namespace Cover
|
||||
{
|
||||
class IRawImage
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include "RawImage.hpp"
|
||||
#include "Exception.hpp"
|
||||
|
||||
namespace CoverArt::STB
|
||||
namespace Cover::STB
|
||||
{
|
||||
JPEGImage::JPEGImage(const RawImage& rawImage, unsigned quality)
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
#include "cover/IEncodedImage.hpp"
|
||||
|
||||
namespace CoverArt::STB
|
||||
namespace Cover::STB
|
||||
{
|
||||
class RawImage;
|
||||
class JPEGImage : public IEncodedImage
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
#include "Exception.hpp"
|
||||
|
||||
namespace CoverArt::STB
|
||||
namespace Cover::STB
|
||||
{
|
||||
RawImage::RawImage(const std::byte* encodedData, std::size_t encodedDataSize)
|
||||
{
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include "cover/IEncodedImage.hpp"
|
||||
#include "IRawImage.hpp"
|
||||
|
||||
namespace CoverArt::STB
|
||||
namespace Cover::STB
|
||||
{
|
||||
class RawImage : public IRawImage
|
||||
{
|
||||
|
||||
+6
-6
@@ -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<IEncodedImage> getFromTrack(Database::TrackId trackId, ImageSize width) = 0;
|
||||
virtual std::shared_ptr<IEncodedImage> 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<IGrabber> createGrabber(Database::Db& db,
|
||||
const std::filesystem::path& execPath,
|
||||
const std::filesystem::path& defaultCoverPath);
|
||||
std::unique_ptr<ICoverService> createCoverService(Database::Db& db,
|
||||
const std::filesystem::path& execPath,
|
||||
const std::filesystem::path& defaultCoverPath);
|
||||
|
||||
} // namespace CoverArt
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <cstddef>
|
||||
#include <string_view>
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -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<std::size_t>(context.parameters, "size").value_or(256)};
|
||||
size = Utils::clamp(size, std::size_t {32}, std::size_t {1024});
|
||||
|
||||
std::shared_ptr<CoverArt::IEncodedImage> cover;
|
||||
std::shared_ptr<Cover::IEncodedImage> cover;
|
||||
if (trackId)
|
||||
cover = Service<CoverArt::IGrabber>::get()->getFromTrack(*trackId, size);
|
||||
cover = Service<Cover::ICoverService>::get()->getFromTrack(*trackId, size);
|
||||
else if (releaseId)
|
||||
cover = Service<CoverArt::IGrabber>::get()->getFromRelease(*releaseId, size);
|
||||
cover = Service<Cover::ICoverService>::get()->getFromRelease(*releaseId, size);
|
||||
|
||||
response.out().write(reinterpret_cast<const char*>(cover->getData()), cover->getDataSize());
|
||||
response.setMimeType(std::string {cover->getMimeType()});
|
||||
|
||||
Reference in New Issue
Block a user