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