Switching from ImageMagick++ to GraphicsMagick++ to ease compatibility with wt4. ref #42
This commit is contained in:
@@ -10,17 +10,17 @@ target_include_directories(lmscover INTERFACE
|
||||
|
||||
target_include_directories(lmscover PRIVATE
|
||||
include
|
||||
${IMAGEMAGICKXX_INCLUDE_DIRS}
|
||||
${GRAPHICSMAGICKXX_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
target_compile_options(lmscover PRIVATE
|
||||
${IMAGEMAGICKXX_CFLAGS_OTHER}
|
||||
${GRAPHICSMAGICKXX_CFLAGS_OTHER}
|
||||
)
|
||||
|
||||
target_link_libraries(lmscover PRIVATE
|
||||
lmsav
|
||||
lmsdatabase
|
||||
${IMAGEMAGICKXX_LIBRARIES}
|
||||
${GRAPHICSMAGICKXX_LIBRARIES}
|
||||
)
|
||||
|
||||
install(TARGETS lmscover DESTINATION lib)
|
||||
|
||||
@@ -49,15 +49,13 @@ Grabber::Grabber(const std::filesystem::path& execPath)
|
||||
init(execPath);
|
||||
}
|
||||
|
||||
Grabber::~Grabber()
|
||||
{
|
||||
deinit();
|
||||
}
|
||||
|
||||
void
|
||||
Grabber::setDefaultCover(const std::filesystem::path& p)
|
||||
{
|
||||
if (!_defaultCover.load(p))
|
||||
std::unique_lock lock {_mutex};
|
||||
|
||||
_defaultCover = std::make_unique<Image>();
|
||||
if (!_defaultCover->load(p))
|
||||
throw LmsException("Cannot read default cover file '" + p.string() + "'");
|
||||
}
|
||||
|
||||
@@ -65,12 +63,12 @@ Image
|
||||
Grabber::getDefaultCover(std::size_t size)
|
||||
{
|
||||
LMS_LOG(COVER, DEBUG) << "Getting a default cover using size = " << size;
|
||||
std::unique_lock<std::mutex> lock(_mutex);
|
||||
std::unique_lock lock {_mutex};
|
||||
|
||||
auto it = _defaultCovers.find(size);
|
||||
if (it == _defaultCovers.end())
|
||||
{
|
||||
Image cover = _defaultCover;
|
||||
Image cover = *_defaultCover;
|
||||
|
||||
LMS_LOG(COVER, DEBUG) << "default cover size = " << cover.getSize().width << " x " << cover.getSize().height;
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ namespace CoverArt
|
||||
{
|
||||
public:
|
||||
Grabber(const std::filesystem::path& execPath);
|
||||
~Grabber();
|
||||
|
||||
Grabber(const Grabber&) = delete;
|
||||
Grabber& operator=(const Grabber&) = delete;
|
||||
@@ -63,9 +62,8 @@ namespace CoverArt
|
||||
std::optional<Image> getFromDirectory(const std::filesystem::path& path) const;
|
||||
Image getDefaultCover(std::size_t size);
|
||||
|
||||
Image _defaultCover;
|
||||
|
||||
std::mutex _mutex;
|
||||
std::unique_ptr<Image> _defaultCover;
|
||||
std::map<std::size_t /* size */, Image> _defaultCovers;
|
||||
|
||||
static inline const std::vector<std::filesystem::path> _fileExtensions {".jpg", ".jpeg", ".png", ".bmp"}; // TODO parametrize
|
||||
|
||||
@@ -29,12 +29,6 @@ init(const std::filesystem::path& path)
|
||||
Magick::InitializeMagick(path.string().c_str());
|
||||
}
|
||||
|
||||
void
|
||||
deinit()
|
||||
{
|
||||
MagickCore::MagickCoreTerminus();
|
||||
}
|
||||
|
||||
static
|
||||
std::string
|
||||
formatToMagick(Format format)
|
||||
|
||||
@@ -30,7 +30,6 @@ namespace CoverArt
|
||||
{
|
||||
|
||||
void init(const std::filesystem::path& path);
|
||||
void deinit();
|
||||
|
||||
class Image
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user