mirror of
https://github.com/taglib/taglib.git
synced 2025-05-27 21:20:26 -04:00
Switch to using a list of genres and checking for membership in there to avoid repeated values.
Based on a patch from Xavier Duret. BUG:141679 git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@648998 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
This commit is contained in:
parent
3e36746dbb
commit
76304a1356
@ -141,10 +141,9 @@ String ID3v2::Tag::genre() const
|
||||
|
||||
StringList fields = f->fieldList();
|
||||
|
||||
String genreString;
|
||||
bool hasNumber = false;
|
||||
StringList genres;
|
||||
|
||||
for(StringList::ConstIterator it = fields.begin(); it != fields.end(); ++it) {
|
||||
for(StringList::Iterator it = fields.begin(); it != fields.end(); ++it) {
|
||||
|
||||
bool isNumber = true;
|
||||
|
||||
@ -155,22 +154,17 @@ String ID3v2::Tag::genre() const
|
||||
isNumber = *charIt >= '0' && *charIt <= '9';
|
||||
}
|
||||
|
||||
if(!genreString.isEmpty())
|
||||
genreString.append(' ');
|
||||
|
||||
if(isNumber) {
|
||||
int number = (*it).toInt();
|
||||
if(number >= 0 && number <= 255) {
|
||||
hasNumber = true;
|
||||
genreString.append(ID3v1::genre(number));
|
||||
}
|
||||
}
|
||||
else {
|
||||
genreString.append(*it);
|
||||
if(number >= 0 && number <= 255)
|
||||
*it = ID3v1::genre(number);
|
||||
}
|
||||
|
||||
if(std::find(genres.begin(), genres.end(), *it) == genres.end())
|
||||
genres.append(*it);
|
||||
}
|
||||
|
||||
return genreString;
|
||||
return genres.toString();
|
||||
}
|
||||
|
||||
TagLib::uint ID3v2::Tag::year() const
|
||||
|
Loading…
Reference in New Issue
Block a user