Added a helper to get the disc cover for a given track
This commit is contained in:
@@ -161,7 +161,7 @@ namespace lms::cover
|
||||
|
||||
db::TrackEmbeddedImage::FindParameters params;
|
||||
params.setTrack(trackId);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::MediaTypeThenFrontTypeThenSize);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::MediaTypeThenFrontTypeThenSizeDescDesc);
|
||||
params.setRange(db::Range{ .offset = 0, .size = 1 });
|
||||
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
|
||||
@@ -184,6 +184,25 @@ namespace lms::cover
|
||||
return res;
|
||||
}
|
||||
|
||||
ArtworkService::ImageFindResult ArtworkService::findTrackMediaImage(db::TrackId trackId)
|
||||
{
|
||||
db::Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
ImageFindResult res;
|
||||
|
||||
db::TrackEmbeddedImage::FindParameters params;
|
||||
params.setTrack(trackId);
|
||||
params.setImageType(db::ImageType::Media);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::SizeDesc);
|
||||
params.setRange(db::Range{ .offset = 0, .size = 1 });
|
||||
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
|
||||
res = image->getId();
|
||||
});
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
ArtworkService::ImageFindResult ArtworkService::findReleaseImage(db::ReleaseId releaseId)
|
||||
{
|
||||
db::Session& session{ _db.getTLSSession() };
|
||||
@@ -202,7 +221,7 @@ namespace lms::cover
|
||||
{
|
||||
db::TrackEmbeddedImage::FindParameters params;
|
||||
params.setRelease(releaseId);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::FrontTypeThenSize);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::FrontTypeThenSizeDesc);
|
||||
params.setRange(db::Range{ .offset = 0, .size = 1 });
|
||||
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
|
||||
@@ -223,7 +242,7 @@ namespace lms::cover
|
||||
|
||||
db::TrackEmbeddedImage::FindParameters params;
|
||||
params.setTrackList(trackListId);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::MediaTypeThenFrontTypeThenSize);
|
||||
params.setSortMethod(db::TrackEmbeddedImageSortMethod::MediaTypeThenFrontTypeThenSizeDescDesc);
|
||||
params.setRange(db::Range{ .offset = 0, .size = 1 });
|
||||
|
||||
db::TrackEmbeddedImage::find(session, params, [&](const db::TrackEmbeddedImage::pointer& image) {
|
||||
|
||||
@@ -49,6 +49,7 @@ namespace lms::cover
|
||||
private:
|
||||
ImageFindResult findArtistImage(db::ArtistId artistId) override;
|
||||
ImageFindResult findTrackImage(db::TrackId trackId) override;
|
||||
ImageFindResult findTrackMediaImage(db::TrackId trackId) override;
|
||||
ImageFindResult findReleaseImage(db::ReleaseId releaseId) override;
|
||||
ImageFindResult findTrackListImage(db::TrackListId trackListId) override;
|
||||
|
||||
|
||||
@@ -51,7 +51,10 @@ namespace lms::cover
|
||||
// Will get Disc/Media artwork if available, otherwise, will fallback on release artwork
|
||||
virtual ImageFindResult findTrackImage(db::TrackId trackId) = 0;
|
||||
|
||||
// Will get Release if available, otherwise, will fallback on embedded artworks
|
||||
// Will get Disc/Media artwork if available, no fallback
|
||||
virtual ImageFindResult findTrackMediaImage(db::TrackId trackId) = 0;
|
||||
|
||||
// Will get Release if available, otherwise, will fallback on embedded artworks
|
||||
virtual ImageFindResult findReleaseImage(db::ReleaseId releaseId) = 0;
|
||||
virtual ImageFindResult findTrackListImage(db::TrackListId trackListId) = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user