mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-06-03 09:32:34 +02:00
2020-02-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the MusicBrainz CD lookup that caused it to confound track info in multi-disc releases. * Fixed a bug in the MusicBrainz CD lookup that caused it to segfault when processing release with no Label information.
This commit is contained in:
parent
b6033e9678
commit
c3376084b6
@ -19481,3 +19481,8 @@
|
|||||||
* Added a 'libcoverart' dependency.
|
* Added a 'libcoverart' dependency.
|
||||||
* Added support for displaying cover art in the MusicBrainz release
|
* Added support for displaying cover art in the MusicBrainz release
|
||||||
chooser.
|
chooser.
|
||||||
|
2020-02-03 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Fixed a bug in the MusicBrainz CD lookup that caused it to
|
||||||
|
confound track info in multi-disc releases.
|
||||||
|
* Fixed a bug in the MusicBrainz CD lookup that caused it to
|
||||||
|
segfault when processing release with no Label information.
|
||||||
|
@ -262,7 +262,7 @@ RDDiscLookup::Result RDMbLookup::ProcessRelease(MusicBrainz5::CRelease *release)
|
|||||||
// Extract Extended Release Data
|
// Extract Extended Release Data
|
||||||
//
|
//
|
||||||
MusicBrainz5::CQuery::tParamMap params;
|
MusicBrainz5::CQuery::tParamMap params;
|
||||||
params["inc"]="artists labels recordings isrcs";
|
params["inc"]="artists labels recordings isrcs discids";
|
||||||
MusicBrainz5::CMetadata metadata=mbq.Query("release",release->ID(),"",params);
|
MusicBrainz5::CMetadata metadata=mbq.Query("release",release->ID(),"",params);
|
||||||
if(metadata.Release()) {
|
if(metadata.Release()) {
|
||||||
//
|
//
|
||||||
@ -284,7 +284,7 @@ RDDiscLookup::Result RDMbLookup::ProcessRelease(MusicBrainz5::CRelease *release)
|
|||||||
// Get Labels
|
// Get Labels
|
||||||
//
|
//
|
||||||
MusicBrainz5::CLabelInfoList *labels=metadata.Release()->LabelInfoList();
|
MusicBrainz5::CLabelInfoList *labels=metadata.Release()->LabelInfoList();
|
||||||
if(labels) {
|
if(labels&&labels->Item(0)) {
|
||||||
discRecord()->setDiscLabel(QString::fromUtf8(labels->Item(0)->
|
discRecord()->setDiscLabel(QString::fromUtf8(labels->Item(0)->
|
||||||
Label()->Name().c_str()));
|
Label()->Name().c_str()));
|
||||||
}
|
}
|
||||||
@ -292,25 +292,23 @@ RDDiscLookup::Result RDMbLookup::ProcessRelease(MusicBrainz5::CRelease *release)
|
|||||||
//
|
//
|
||||||
// Get Per-Track Data
|
// Get Per-Track Data
|
||||||
//
|
//
|
||||||
MusicBrainz5::CMediumList *media=metadata.Release()->MediumList();
|
MusicBrainz5::CMediumList media=metadata.Release()->MediaMatchingDiscID(discRecord()->discMbId().toStdString());
|
||||||
if(media) {
|
for(int j=0;j<media.NumItems();j++) {
|
||||||
for(int j=0;j<media->NumItems();j++) {
|
MusicBrainz5::CMedium *medium=media.Item(j);
|
||||||
MusicBrainz5::CMedium *medium=media->Item(j);
|
MusicBrainz5::CTrackList *tracks=medium->TrackList();
|
||||||
MusicBrainz5::CTrackList *tracks=medium->TrackList();
|
for(int k=0;k<tracks->NumItems();k++) {
|
||||||
for(int k=0;k<tracks->NumItems();k++) {
|
MusicBrainz5::CTrack *track=tracks->Item(k);
|
||||||
MusicBrainz5::CTrack *track=tracks->Item(k);
|
MusicBrainz5::CRecording *recording=track->Recording();
|
||||||
MusicBrainz5::CRecording *recording=track->Recording();
|
discRecord()->
|
||||||
discRecord()->
|
setTrackTitle(k,QString::fromUtf8(recording->Title().c_str()));
|
||||||
setTrackTitle(k,QString::fromUtf8(recording->Title().c_str()));
|
discRecord()->
|
||||||
discRecord()->
|
setTrackMbId(k,QString::fromUtf8(recording->ID().c_str()));
|
||||||
setTrackMbId(k,QString::fromUtf8(recording->ID().c_str()));
|
MusicBrainz5::CISRCList *isrcs=recording->ISRCList();
|
||||||
MusicBrainz5::CISRCList *isrcs=recording->ISRCList();
|
if(isrcs) {
|
||||||
if(isrcs) {
|
if(isrcs->NumItems()>0) {
|
||||||
if(isrcs->NumItems()>0) {
|
discRecord()->
|
||||||
discRecord()->
|
setIsrc(k,RDDiscLookup::normalizedIsrc(QString::fromUtf8(isrcs->
|
||||||
setIsrc(k,RDDiscLookup::normalizedIsrc(QString::fromUtf8(isrcs->
|
Item(0)->ID().c_str())));
|
||||||
Item(0)->ID().c_str())));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user