Renamed CoverArtGrabber to CoverService
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
add_library(lmscover SHARED
|
add_library(lmscover SHARED
|
||||||
impl/CoverArtGrabber.cpp
|
impl/CoverService.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(lmscover INTERFACE
|
target_include_directories(lmscover INTERFACE
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
|
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "CoverArtGrabber.hpp"
|
#include "CoverService.hpp"
|
||||||
|
|
||||||
#include "av/IAudioFile.hpp"
|
#include "av/IAudioFile.hpp"
|
||||||
|
|
||||||
@@ -28,10 +28,10 @@
|
|||||||
|
|
||||||
#if LMS_SUPPORT_IMAGE_STB
|
#if LMS_SUPPORT_IMAGE_STB
|
||||||
#include "stb/RawImage.hpp"
|
#include "stb/RawImage.hpp"
|
||||||
using RawImage = CoverArt::STB::RawImage;
|
using RawImage = Cover::STB::RawImage;
|
||||||
#elif LMS_SUPPORT_IMAGE_GM
|
#elif LMS_SUPPORT_IMAGE_GM
|
||||||
#include "graphicsmagick/RawImage.hpp"
|
#include "graphicsmagick/RawImage.hpp"
|
||||||
using RawImage = CoverArt::GraphicsMagick::RawImage;
|
using RawImage = Cover::GraphicsMagick::RawImage;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "utils/IConfig.hpp"
|
#include "utils/IConfig.hpp"
|
||||||
@@ -77,7 +77,7 @@ namespace
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace CoverArt {
|
namespace Cover {
|
||||||
|
|
||||||
static
|
static
|
||||||
bool
|
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));
|
return (std::find(std::cbegin(extensions), std::cend(extensions), file.extension()) != std::cend(extensions));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<IGrabber>
|
std::unique_ptr<ICoverService>
|
||||||
createGrabber(Database::Db& db, const std::filesystem::path& execPath, const std::filesystem::path& defaultCoverPath)
|
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& execPath,
|
||||||
const std::filesystem::path& defaultCoverPath)
|
const std::filesystem::path& defaultCoverPath)
|
||||||
: _db {db}
|
: _db {db}
|
||||||
@@ -124,7 +124,7 @@ Grabber::Grabber(Database::Db& db,
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<IEncodedImage>
|
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;
|
std::unique_ptr<IEncodedImage> image;
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ Grabber::getFromAvMediaFile(const Av::IAudioFile& input, ImageSize width) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<IEncodedImage>
|
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;
|
std::unique_ptr<IEncodedImage> image;
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ Grabber::getFromCoverFile(const std::filesystem::path& p, ImageSize width) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<IEncodedImage>
|
std::shared_ptr<IEncodedImage>
|
||||||
Grabber::getDefault(ImageSize width)
|
CoverService::getDefault(ImageSize width)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
std::shared_lock lock {_cacheMutex};
|
std::shared_lock lock {_cacheMutex};
|
||||||
@@ -192,7 +192,7 @@ Grabber::getDefault(ImageSize width)
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<IEncodedImage>
|
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)};
|
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>
|
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;
|
std::unique_ptr<IEncodedImage> res;
|
||||||
|
|
||||||
@@ -252,7 +252,7 @@ Grabber::getFromSameNamedFile(const std::filesystem::path& filePath, ImageSize w
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Grabber::checkCoverFile(const std::filesystem::path& filePath) const
|
CoverService::checkCoverFile(const std::filesystem::path& filePath) const
|
||||||
{
|
{
|
||||||
std::error_code ec;
|
std::error_code ec;
|
||||||
|
|
||||||
@@ -275,7 +275,7 @@ Grabber::checkCoverFile(const std::filesystem::path& filePath) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::multimap<std::string, std::filesystem::path>
|
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::multimap<std::string, std::filesystem::path> res;
|
||||||
std::error_code ec;
|
std::error_code ec;
|
||||||
@@ -296,7 +296,7 @@ Grabber::getCoverPaths(const std::filesystem::path& directoryPath) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<IEncodedImage>
|
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;
|
std::unique_ptr<IEncodedImage> image;
|
||||||
|
|
||||||
@@ -313,13 +313,13 @@ Grabber::getFromTrack(const std::filesystem::path& p, ImageSize width) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<IEncodedImage>
|
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*/);
|
return getFromTrack(_db.getTLSSession(), trackId, width, true /* allow release fallback*/);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<IEncodedImage>
|
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;
|
using namespace Database;
|
||||||
|
|
||||||
@@ -357,7 +357,7 @@ Grabber::getFromTrack(Database::Session& dbSession, Database::TrackId trackId, I
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<IEncodedImage>
|
std::shared_ptr<IEncodedImage>
|
||||||
Grabber::getFromRelease(Database::ReleaseId releaseId, ImageSize width)
|
CoverService::getFromRelease(Database::ReleaseId releaseId, ImageSize width)
|
||||||
{
|
{
|
||||||
const CacheEntryDesc cacheEntryDesc {releaseId, width};
|
const CacheEntryDesc cacheEntryDesc {releaseId, width};
|
||||||
|
|
||||||
@@ -409,7 +409,7 @@ Grabber::getFromRelease(Database::ReleaseId releaseId, ImageSize width)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Grabber::flushCache()
|
CoverService::flushCache()
|
||||||
{
|
{
|
||||||
std::unique_lock lock {_cacheMutex};
|
std::unique_lock lock {_cacheMutex};
|
||||||
|
|
||||||
@@ -421,7 +421,7 @@ Grabber::flushCache()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Grabber::setJpegQuality(unsigned quality)
|
CoverService::setJpegQuality(unsigned quality)
|
||||||
{
|
{
|
||||||
_jpegQuality = Utils::clamp<unsigned>(quality, 1, 100);
|
_jpegQuality = Utils::clamp<unsigned>(quality, 1, 100);
|
||||||
|
|
||||||
@@ -429,7 +429,7 @@ Grabber::setJpegQuality(unsigned quality)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
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};
|
std::unique_lock lock {_cacheMutex};
|
||||||
|
|
||||||
@@ -445,7 +445,7 @@ Grabber::saveToCache(const CacheEntryDesc& entryDesc, std::shared_ptr<IEncodedIm
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<IEncodedImage>
|
std::shared_ptr<IEncodedImage>
|
||||||
Grabber::loadFromCache(const CacheEntryDesc& entryDesc)
|
CoverService::loadFromCache(const CacheEntryDesc& entryDesc)
|
||||||
{
|
{
|
||||||
std::shared_lock lock {_cacheMutex};
|
std::shared_lock lock {_cacheMutex};
|
||||||
|
|
||||||
@@ -460,5 +460,5 @@ Grabber::loadFromCache(const CacheEntryDesc& entryDesc)
|
|||||||
return it->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace CoverArt
|
} // namespace Cover
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
#include <variant>
|
#include <variant>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "cover/ICoverArtGrabber.hpp"
|
#include "cover/ICoverService.hpp"
|
||||||
#include "cover/IEncodedImage.hpp"
|
#include "cover/IEncodedImage.hpp"
|
||||||
#include "database/Types.hpp"
|
#include "database/Types.hpp"
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ namespace Av
|
|||||||
class IAudioFile;
|
class IAudioFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace CoverArt
|
namespace Cover
|
||||||
{
|
{
|
||||||
struct CacheEntryDesc
|
struct CacheEntryDesc
|
||||||
{
|
{
|
||||||
@@ -57,16 +57,16 @@ namespace CoverArt
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // ns CoverArt
|
} // ns Cover
|
||||||
|
|
||||||
namespace std
|
namespace std
|
||||||
{
|
{
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
class hash<CoverArt::CacheEntryDesc>
|
class hash<Cover::CacheEntryDesc>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
size_t operator()(const CoverArt::CacheEntryDesc& e) const
|
size_t operator()(const Cover::CacheEntryDesc& e) const
|
||||||
{
|
{
|
||||||
size_t h {};
|
size_t h {};
|
||||||
std::visit([&](auto id)
|
std::visit([&](auto id)
|
||||||
@@ -81,19 +81,19 @@ namespace std
|
|||||||
|
|
||||||
} // ns std
|
} // ns std
|
||||||
|
|
||||||
namespace CoverArt
|
namespace Cover
|
||||||
{
|
{
|
||||||
class Grabber : public IGrabber
|
class CoverService : public ICoverService
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Grabber(Database::Db& db,
|
CoverService(Database::Db& db,
|
||||||
const std::filesystem::path& execPath,
|
const std::filesystem::path& execPath,
|
||||||
const std::filesystem::path& defaultCoverPath);
|
const std::filesystem::path& defaultCoverPath);
|
||||||
|
|
||||||
Grabber(const Grabber&) = delete;
|
CoverService(const CoverService&) = delete;
|
||||||
Grabber& operator=(const Grabber&) = delete;
|
CoverService& operator=(const CoverService&) = delete;
|
||||||
Grabber(Grabber&&) = delete;
|
CoverService(CoverService&&) = delete;
|
||||||
Grabber& operator=(Grabber&&) = delete;
|
CoverService& operator=(CoverService&&) = delete;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<IEncodedImage> getFromTrack(Database::TrackId trackId, ImageSize width) override;
|
std::shared_ptr<IEncodedImage> getFromTrack(Database::TrackId trackId, ImageSize width) override;
|
||||||
@@ -133,5 +133,5 @@ namespace CoverArt
|
|||||||
unsigned _jpegQuality;
|
unsigned _jpegQuality;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace CoverArt
|
} // namespace Cover
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
#include "utils/Exception.hpp"
|
#include "utils/Exception.hpp"
|
||||||
|
|
||||||
namespace CoverArt
|
namespace Cover
|
||||||
{
|
{
|
||||||
// internal use only
|
// internal use only
|
||||||
class ImageException : public LmsException
|
class ImageException : public LmsException
|
||||||
@@ -30,5 +30,5 @@ namespace CoverArt
|
|||||||
using LmsException::LmsException;
|
using LmsException::LmsException;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace CoverArt
|
} // namespace Cover
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include "cover/IEncodedImage.hpp"
|
#include "cover/IEncodedImage.hpp"
|
||||||
|
|
||||||
namespace CoverArt
|
namespace Cover
|
||||||
{
|
{
|
||||||
class IRawImage
|
class IRawImage
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "RawImage.hpp"
|
#include "RawImage.hpp"
|
||||||
#include "Exception.hpp"
|
#include "Exception.hpp"
|
||||||
|
|
||||||
namespace CoverArt::STB
|
namespace Cover::STB
|
||||||
{
|
{
|
||||||
JPEGImage::JPEGImage(const RawImage& rawImage, unsigned quality)
|
JPEGImage::JPEGImage(const RawImage& rawImage, unsigned quality)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
#include "cover/IEncodedImage.hpp"
|
#include "cover/IEncodedImage.hpp"
|
||||||
|
|
||||||
namespace CoverArt::STB
|
namespace Cover::STB
|
||||||
{
|
{
|
||||||
class RawImage;
|
class RawImage;
|
||||||
class JPEGImage : public IEncodedImage
|
class JPEGImage : public IEncodedImage
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
|
|
||||||
#include "Exception.hpp"
|
#include "Exception.hpp"
|
||||||
|
|
||||||
namespace CoverArt::STB
|
namespace Cover::STB
|
||||||
{
|
{
|
||||||
RawImage::RawImage(const std::byte* encodedData, std::size_t encodedDataSize)
|
RawImage::RawImage(const std::byte* encodedData, std::size_t encodedDataSize)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
#include "cover/IEncodedImage.hpp"
|
#include "cover/IEncodedImage.hpp"
|
||||||
#include "IRawImage.hpp"
|
#include "IRawImage.hpp"
|
||||||
|
|
||||||
namespace CoverArt::STB
|
namespace Cover::STB
|
||||||
{
|
{
|
||||||
class RawImage : public IRawImage
|
class RawImage : public IRawImage
|
||||||
{
|
{
|
||||||
|
|||||||
+6
-6
@@ -30,12 +30,12 @@ namespace Database
|
|||||||
class Db;
|
class Db;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace CoverArt
|
namespace Cover
|
||||||
{
|
{
|
||||||
class IGrabber
|
class ICoverService
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~IGrabber() = default;
|
virtual ~ICoverService() = default;
|
||||||
|
|
||||||
virtual std::shared_ptr<IEncodedImage> getFromTrack(Database::TrackId trackId, ImageSize width) = 0;
|
virtual std::shared_ptr<IEncodedImage> getFromTrack(Database::TrackId trackId, ImageSize width) = 0;
|
||||||
virtual std::shared_ptr<IEncodedImage> getFromRelease(Database::ReleaseId releaseId, 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
|
virtual void setJpegQuality(unsigned quality) = 0; // from 1 to 100
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unique_ptr<IGrabber> createGrabber(Database::Db& db,
|
std::unique_ptr<ICoverService> createCoverService(Database::Db& db,
|
||||||
const std::filesystem::path& execPath,
|
const std::filesystem::path& execPath,
|
||||||
const std::filesystem::path& defaultCoverPath);
|
const std::filesystem::path& defaultCoverPath);
|
||||||
|
|
||||||
} // namespace CoverArt
|
} // namespace CoverArt
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
|
|
||||||
namespace CoverArt
|
namespace Cover
|
||||||
{
|
{
|
||||||
using ImageSize = std::size_t;
|
using ImageSize = std::size_t;
|
||||||
|
|
||||||
@@ -36,5 +36,5 @@ namespace CoverArt
|
|||||||
virtual std::string_view getMimeType() const = 0;
|
virtual std::string_view getMimeType() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace CoverArt
|
} // namespace Cover
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#include "auth/IPasswordService.hpp"
|
#include "auth/IPasswordService.hpp"
|
||||||
#include "auth/IEnvService.hpp"
|
#include "auth/IEnvService.hpp"
|
||||||
#include "cover/ICoverArtGrabber.hpp"
|
#include "cover/ICoverService.hpp"
|
||||||
#include "database/Artist.hpp"
|
#include "database/Artist.hpp"
|
||||||
#include "database/Cluster.hpp"
|
#include "database/Cluster.hpp"
|
||||||
#include "database/Db.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)};
|
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});
|
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)
|
if (trackId)
|
||||||
cover = Service<CoverArt::IGrabber>::get()->getFromTrack(*trackId, size);
|
cover = Service<Cover::ICoverService>::get()->getFromTrack(*trackId, size);
|
||||||
else if (releaseId)
|
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.out().write(reinterpret_cast<const char*>(cover->getData()), cover->getDataSize());
|
||||||
response.setMimeType(std::string {cover->getMimeType()});
|
response.setMimeType(std::string {cover->getMimeType()});
|
||||||
|
|||||||
+4
-4
@@ -28,7 +28,7 @@
|
|||||||
#include "auth/IAuthTokenService.hpp"
|
#include "auth/IAuthTokenService.hpp"
|
||||||
#include "auth/IPasswordService.hpp"
|
#include "auth/IPasswordService.hpp"
|
||||||
#include "auth/IEnvService.hpp"
|
#include "auth/IEnvService.hpp"
|
||||||
#include "cover/ICoverArtGrabber.hpp"
|
#include "cover/ICoverService.hpp"
|
||||||
#include "database/Db.hpp"
|
#include "database/Db.hpp"
|
||||||
#include "database/Session.hpp"
|
#include "database/Session.hpp"
|
||||||
#include "scanner/IScanner.hpp"
|
#include "scanner/IScanner.hpp"
|
||||||
@@ -224,7 +224,7 @@ int main(int argc, char* argv[])
|
|||||||
Wt::WServer server {argv[0]};
|
Wt::WServer server {argv[0]};
|
||||||
server.setServerConfiguration(wtServerArgs.size(), const_cast<char**>(&wtArgv[0]));
|
server.setServerConfiguration(wtServerArgs.size(), const_cast<char**>(&wtArgv[0]));
|
||||||
|
|
||||||
IOContextRunner ioContextRunner {ioContext, std::max<unsigned long>(2, std::thread::hardware_concurrency())};
|
IOContextRunner ioContextRunner {ioContext, getThreadCount()};
|
||||||
|
|
||||||
// Initializing a connection pool to the database that will be shared along services
|
// Initializing a connection pool to the database that will be shared along services
|
||||||
Database::Db database {config->getPath("working-dir") / "lms.db", getThreadCount()};
|
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'"};
|
throw LmsException {"Bad value '" + authenticationBackend + "' for 'authentication-backend'"};
|
||||||
|
|
||||||
Service<Http::IClient> httpClient {Http::createClient(ioContext)};
|
Service<Http::IClient> httpClient {Http::createClient(ioContext)};
|
||||||
Service<CoverArt::IGrabber> coverArtService {CoverArt::createGrabber(database, argv[0], server.appRoot() + "/images/unknown-cover.jpg")};
|
Service<Cover::ICoverService> coverService {Cover::createCoverService(database, argv[0], server.appRoot() + "/images/unknown-cover.jpg")};
|
||||||
Service<Recommendation::IEngine> recommendationEngineService {Recommendation::createEngine(database)};
|
Service<Recommendation::IEngine> recommendationEngineService {Recommendation::createEngine(database)};
|
||||||
Service<Scanner::IScanner> scannerService {Scanner::createScanner(database, *recommendationEngineService)};
|
Service<Scanner::IScanner> scannerService {Scanner::createScanner(database, *recommendationEngineService)};
|
||||||
|
|
||||||
@@ -265,7 +265,7 @@ int main(int argc, char* argv[])
|
|||||||
{
|
{
|
||||||
// Flush cover cache even if no changes:
|
// Flush cover cache even if no changes:
|
||||||
// covers may be external files that changed and we don't keep track of them
|
// covers may be external files that changed and we don't keep track of them
|
||||||
coverArtService->flushCache();
|
coverService->flushCache();
|
||||||
});
|
});
|
||||||
|
|
||||||
Service<Scrobbling::IScrobbling> scrobblingService {Scrobbling::createScrobbling(ioContext, database)};
|
Service<Scrobbling::IScrobbling> scrobblingService {Scrobbling::createScrobbling(ioContext, database)};
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
#include "auth/IEnvService.hpp"
|
#include "auth/IEnvService.hpp"
|
||||||
#include "auth/IPasswordService.hpp"
|
#include "auth/IPasswordService.hpp"
|
||||||
#include "cover/ICoverArtGrabber.hpp"
|
#include "cover/ICoverService.hpp"
|
||||||
#include "database/Artist.hpp"
|
#include "database/Artist.hpp"
|
||||||
#include "database/Cluster.hpp"
|
#include "database/Cluster.hpp"
|
||||||
#include "database/Db.hpp"
|
#include "database/Db.hpp"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
#include <Wt/WApplication.h>
|
#include <Wt/WApplication.h>
|
||||||
#include <Wt/Http/Response.h>
|
#include <Wt/Http/Response.h>
|
||||||
|
|
||||||
#include "cover/ICoverArtGrabber.hpp"
|
#include "cover/ICoverService.hpp"
|
||||||
#include "database/Track.hpp"
|
#include "database/Track.hpp"
|
||||||
#include "utils/Exception.hpp"
|
#include "utils/Exception.hpp"
|
||||||
#include "utils/Logger.hpp"
|
#include "utils/Logger.hpp"
|
||||||
@@ -83,7 +83,7 @@ CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Respons
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<CoverArt::IEncodedImage> cover;
|
std::shared_ptr<Cover::IEncodedImage> cover;
|
||||||
|
|
||||||
if (trackIdStr)
|
if (trackIdStr)
|
||||||
{
|
{
|
||||||
@@ -96,7 +96,7 @@ CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Respons
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
cover = Service<CoverArt::IGrabber>::get()->getFromTrack(*trackId, *size);
|
cover = Service<Cover::ICoverService>::get()->getFromTrack(*trackId, *size);
|
||||||
}
|
}
|
||||||
else if (releaseIdStr)
|
else if (releaseIdStr)
|
||||||
{
|
{
|
||||||
@@ -106,7 +106,7 @@ CoverResource::handleRequest(const Wt::Http::Request& request, Wt::Http::Respons
|
|||||||
if (!releaseId)
|
if (!releaseId)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
cover = Service<CoverArt::IGrabber>::get()->getFromRelease(*releaseId, *size);
|
cover = Service<Cover::ICoverService>::get()->getFromRelease(*releaseId, *size);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
#include <boost/program_options.hpp>
|
#include <boost/program_options.hpp>
|
||||||
|
|
||||||
#include "cover/ICoverArtGrabber.hpp"
|
#include "cover/ICoverService.hpp"
|
||||||
#include "database/Db.hpp"
|
#include "database/Db.hpp"
|
||||||
#include "database/Release.hpp"
|
#include "database/Release.hpp"
|
||||||
#include "database/Session.hpp"
|
#include "database/Session.hpp"
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
static
|
static
|
||||||
void
|
void
|
||||||
dumpTrackCovers(Database::Session& session, CoverArt::ImageSize width)
|
dumpTrackCovers(Database::Session& session, Cover::ImageSize width)
|
||||||
{
|
{
|
||||||
std::vector<Database::TrackId> trackIds;
|
std::vector<Database::TrackId> trackIds;
|
||||||
{
|
{
|
||||||
@@ -47,7 +47,7 @@ dumpTrackCovers(Database::Session& session, CoverArt::ImageSize width)
|
|||||||
for (const Database::TrackId trackId : trackIds)
|
for (const Database::TrackId trackId : trackIds)
|
||||||
{
|
{
|
||||||
std::cout << "Getting cover for track id " << trackId.toString() << std::endl;
|
std::cout << "Getting cover for track id " << trackId.toString() << std::endl;
|
||||||
Service<CoverArt::IGrabber>::get()->getFromTrack(trackId, width);
|
Service<Cover::ICoverService>::get()->getFromTrack(trackId, width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +83,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
Service<IConfig> config {createConfig(vm["conf"].as<std::string>())};
|
Service<IConfig> config {createConfig(vm["conf"].as<std::string>())};
|
||||||
Database::Db db {config->getPath("working-dir") / "lms.db"};
|
Database::Db db {config->getPath("working-dir") / "lms.db"};
|
||||||
Service<CoverArt::IGrabber> coverArtService {CoverArt::createGrabber(db, argv[0], vm["default-cover"].as<std::string>())};
|
Service<Cover::ICoverService> coverArtService {Cover::createCoverService(db, argv[0], vm["default-cover"].as<std::string>())};
|
||||||
|
|
||||||
coverArtService->setJpegQuality(config->getULong("cover-jpeg-quality", vm["quality"].as<unsigned>()));
|
coverArtService->setJpegQuality(config->getULong("cover-jpeg-quality", vm["quality"].as<unsigned>()));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user