summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2005-02-27 10:13:55 +0000
committerwr61 <wr61@e10066b5-e1e2-0310-b819-94efdf66514b>2005-02-27 10:13:55 +0000
commitf106c1b4a0d8e6d66e690a51f1e13a9d7a62d7a3 (patch)
tree8809085da86ad6d59b6483caf561e2faee4f3842
parenta1ac1f29cf9eab9dd3f7153ed1f9a181d5d23d77 (diff)
downloadvdr-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.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mg_order.c b/mg_order.c
index 1663d87..3869194 100644
--- a/mg_order.c
+++ b/mg_order.c
@@ -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);