commit c6b78397381f653a50bf8652b0a170bf04f7921a
Author: Christophe Fergeau <t...@gnome.org>
Date:   Wed Sep 29 22:07:19 2010 +0200

    Handle "not-binary-and" as smart playlist action
    
    This appearead as part of ebook handling on recent iOS databases. Without
    this action, a warning appears in the console.

 src/itdb.h          |    1 +
 src/itdb_playlist.c |    8 ++++++++
 2 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/src/itdb.h b/src/itdb.h
index 7e7586a..2cd6f5a 100644
--- a/src/itdb.h
+++ b/src/itdb.h
@@ -495,6 +495,7 @@ typedef enum {
     ITDB_SPLACTION_IS_NOT_LESS_THAN = 0x02000040,
     ITDB_SPLACTION_IS_NOT_IN_THE_RANGE = 0x02000100,
     ITDB_SPLACTION_IS_NOT_IN_THE_LAST = 0x02000200,
+    ITDB_SPLACTION_NOT_BINARY_AND = 0x02000400,
     ITDB_SPLACTION_BINARY_UNKNOWN2 = 0x02000800,
 
 
diff --git a/src/itdb_playlist.c b/src/itdb_playlist.c
index 85cef97..dac871f 100644
--- a/src/itdb_playlist.c
+++ b/src/itdb_playlist.c
@@ -71,6 +71,7 @@ gboolean itdb_spl_action_known (ItdbSPLAction action)
     case ITDB_SPLACTION_IS_NOT:
     case ITDB_SPLACTION_DOES_NOT_CONTAIN:
     case ITDB_SPLACTION_BINARY_AND:
+    case ITDB_SPLACTION_NOT_BINARY_AND:
     case ITDB_SPLACTION_BINARY_UNKNOWN1:
     case ITDB_SPLACTION_BINARY_UNKNOWN2:
        result = TRUE;
@@ -189,6 +190,7 @@ ItdbSPLActionType itdb_splr_get_action_type (const 
Itdb_SPLRule *splr)
        case ITDB_SPLACTION_IS_IN_THE_LAST:
        case ITDB_SPLACTION_IS_NOT_IN_THE_LAST:
        case ITDB_SPLACTION_BINARY_AND:
+       case ITDB_SPLACTION_NOT_BINARY_AND:
        case ITDB_SPLACTION_BINARY_UNKNOWN1:
        case ITDB_SPLACTION_BINARY_UNKNOWN2:
            return ITDB_SPLAT_INVALID;
@@ -211,6 +213,7 @@ ItdbSPLActionType itdb_splr_get_action_type (const 
Itdb_SPLRule *splr)
        case ITDB_SPLACTION_IS_IN_THE_RANGE:
            return ITDB_SPLAT_RANGE_INT;
        case ITDB_SPLACTION_BINARY_AND:
+       case ITDB_SPLACTION_NOT_BINARY_AND:
        case ITDB_SPLACTION_BINARY_UNKNOWN1:
        case ITDB_SPLACTION_BINARY_UNKNOWN2:
        case ITDB_SPLACTION_IS_STRING:
@@ -257,6 +260,7 @@ ItdbSPLActionType itdb_splr_get_action_type (const 
Itdb_SPLRule *splr)
        case ITDB_SPLACTION_IS_NOT:
        case ITDB_SPLACTION_DOES_NOT_CONTAIN:
        case ITDB_SPLACTION_BINARY_AND:
+       case ITDB_SPLACTION_NOT_BINARY_AND:
        case ITDB_SPLACTION_BINARY_UNKNOWN1:
        case ITDB_SPLACTION_BINARY_UNKNOWN2:
            return ITDB_SPLAT_INVALID;
@@ -268,6 +272,7 @@ ItdbSPLActionType itdb_splr_get_action_type (const 
Itdb_SPLRule *splr)
        case ITDB_SPLACTION_BINARY_UNKNOWN2:
             return ITDB_SPLAT_UNKNOWN;
        case ITDB_SPLACTION_BINARY_AND:
+       case ITDB_SPLACTION_NOT_BINARY_AND:
            return ITDB_SPLAT_BINARY_AND;
        case ITDB_SPLACTION_IS_INT:
        case ITDB_SPLACTION_IS_NOT_INT:
@@ -317,6 +322,7 @@ ItdbSPLActionType itdb_splr_get_action_type (const 
Itdb_SPLRule *splr)
        case ITDB_SPLACTION_IS_NOT:
        case ITDB_SPLACTION_DOES_NOT_CONTAIN:
        case ITDB_SPLACTION_BINARY_AND:
+       case ITDB_SPLACTION_NOT_BINARY_AND:
        case ITDB_SPLACTION_BINARY_UNKNOWN1:
        case ITDB_SPLACTION_BINARY_UNKNOWN2:
            return ITDB_SPLAT_INVALID;
@@ -559,6 +565,8 @@ gboolean itdb_splr_eval (Itdb_SPLRule *splr, Itdb_Track 
*track)
        {
        case ITDB_SPLACTION_BINARY_AND:
            return (intcomp & splr->fromvalue)? TRUE:FALSE;
+       case ITDB_SPLACTION_NOT_BINARY_AND:
+           return (intcomp & splr->fromvalue)? FALSE:TRUE;
        }
        return FALSE;
     case ITDB_SPLFT_BOOLEAN:

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to