projects
/
lms
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d451fa9
)
Get both lead artist and band, use in order: band, artist
author
barbieri
<barbieri@gmail.com>
Tue, 22 Jan 2008 18:45:37 +0000
(18:45 +0000)
committer
barbieri
<barbieri@gmail.com>
Tue, 22 Jan 2008 18:45:37 +0000
(18:45 +0000)
lightmediascanner/src/plugins/id3lib/id3lib.cpp
patch
|
blob
|
history
diff --git
a/lightmediascanner/src/plugins/id3lib/id3lib.cpp
b/lightmediascanner/src/plugins/id3lib/id3lib.cpp
index
534316c
..
d71bd1d
100644
(file)
--- a/
lightmediascanner/src/plugins/id3lib/id3lib.cpp
+++ b/
lightmediascanner/src/plugins/id3lib/id3lib.cpp
@@
-104,12
+104,13
@@
_id3lib_get_string_if_need(const ID3_Frame *frame, struct lms_string_size *s)
static int
_id3lib_get_data(const ID3_Tag &tag, struct lms_audio_info *info)
{
static int
_id3lib_get_data(const ID3_Tag &tag, struct lms_audio_info *info)
{
+ lms_string_size band = {NULL, 0}, lead_artist = {NULL, 0};
ID3_Tag::ConstIterator *itr;
const ID3_Frame *frame;
int todo;
ID3_Tag::ConstIterator *itr;
const ID3_Frame *frame;
int todo;
- todo = 7; /* info fields left to parse: title, artist, album, genre,
- trackno, rating, playcnt */
+ todo = 8; /* info fields left to parse: title, lead artist, band,
+ album, genre, trackno, rating, playcnt */
itr = tag.CreateIterator();
itr = tag.CreateIterator();
@@
-125,7
+126,12
@@
_id3lib_get_data(const ID3_Tag &tag, struct lms_audio_info *info)
break;
case ID3FID_LEADARTIST:
break;
case ID3FID_LEADARTIST:
- if (_id3lib_get_string_if_need(frame, &info->artist))
+ if (_id3lib_get_string_if_need(frame, &lead_artist))
+ todo--;
+ break;
+
+ case ID3FID_BAND:
+ if (_id3lib_get_string_if_need(frame, &band))
todo--;
break;
todo--;
break;
@@
-165,6
+171,14
@@
_id3lib_get_data(const ID3_Tag &tag, struct lms_audio_info *info)
}
}
}
}
+ if (band.str && lead_artist.str) {
+ info->artist = band;
+ free(lead_artist.str);
+ } else if (band.str)
+ info->artist = band;
+ else if (lead_artist.str)
+ info->artist = lead_artist;
+
delete itr;
return 0;
}
delete itr;
return 0;
}