diff options
author | wr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-02-27 10:13:55 +0000 |
---|---|---|
committer | wr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b> | 2005-02-27 10:13:55 +0000 |
commit | f106c1b4a0d8e6d66e690a51f1e13a9d7a62d7a3 (patch) | |
tree | 8809085da86ad6d59b6483caf561e2faee4f3842 | |
parent | a1ac1f29cf9eab9dd3f7153ed1f9a181d5d23d77 (diff) | |
download | vdr-plugin-muggle-f106c1b4a0d8e6d66e690a51f1e13a9d7a62d7a3.tar.gz vdr-plugin-muggle-f106c1b4a0d8e6d66e690a51f1e13a9d7a62d7a3.tar.bz2 |
collection+collectionitem also makes an order unique
git-svn-id: https://vdr-muggle.svn.sourceforge.net/svnroot/vdr-muggle/branches/0.1.3-wr@514 e10066b5-e1e2-0310-b819-94efdf66514b
-rw-r--r-- | mg_order.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -889,6 +889,8 @@ mgOrder::clean() // remove double entries: keyvector::iterator i; keyvector::iterator j; + bool collection_found = false; + bool collitem_found = false; bool album_found = false; bool tracknb_found = false; bool title_found = false; @@ -896,10 +898,13 @@ mgOrder::clean() for (i = Keys.begin () ; i != Keys.end (); ++i) { mgKeyNormal* k = dynamic_cast<mgKeyNormal*>(*i); + collection_found |= (k->Type()==keyCollection); + collitem_found |= (k->Type()==keyCollectionItem); album_found |= (k->Type()==keyAlbum); tracknb_found |= (k->Type()==keyTrack); title_found |= (k->Type()==keyTitle); - is_unique = tracknb_found || (album_found && title_found); + is_unique = tracknb_found || (album_found && title_found) + || (collection_found && collitem_found); if (is_unique) { for (j = i+1 ; j !=Keys.end(); ++j) @@ -1120,7 +1125,7 @@ ktName(const mgKeyTypes kt) mgKeyTypes ktValue(const char * name) { - for (int kt=int(mgKeyTypesLow);kt<int(mgKeyTypesHigh);kt++) + for (int kt=int(mgKeyTypesLow);kt<=int(mgKeyTypesHigh);kt++) if (!strcmp(name,ktName(mgKeyTypes(kt)))) return mgKeyTypes(kt); mgError("ktValue(%s): unknown name",name); |