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;
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