commit ccfaec5e2cd5e2a3dd202b21db1072daf29d70d1
Author: Christophe Fergeau <cferg...@mandriva.com>
Date:   Thu Oct 22 00:11:46 2009 +0200

    use DBVersion to know which type of hash we have to write

 src/itdb_device.c |   93 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 53 insertions(+), 40 deletions(-)
---
diff --git a/src/itdb_device.c b/src/itdb_device.c
index fd924a1..ad671c0 100644
--- a/src/itdb_device.c
+++ b/src/itdb_device.c
@@ -1708,52 +1708,65 @@ guint64 itdb_device_get_firewire_id (const Itdb_Device 
*device)
 
 static ItdbChecksumType itdb_device_get_checksum_type (const Itdb_Device 
*device)
 {
-    const Itdb_IpodInfo *info;
 
     if (device == NULL) {
         return ITDB_CHECKSUM_NONE;
     }
+    
+    if (device->sysinfo_extended != NULL) {
+       gint db_version;
+       db_version = itdb_sysinfo_properties_get_db_version 
(device->sysinfo_extended);
+       switch (db_version) {
+           case 3:
+               return ITDB_CHECKSUM_HASH58;
+           case 4:
+               return ITDB_CHECKSUM_HASH72;
+           default:
+               return ITDB_CHECKSUM_NONE;
+       }
+    } else {
+       const Itdb_IpodInfo *info;
+       info = itdb_device_get_ipod_info (device);
+       if (info == NULL) {
+           return ITDB_CHECKSUM_NONE;
+       }
 
-    info = itdb_device_get_ipod_info (device);
-    if (info == NULL) {
-        return ITDB_CHECKSUM_NONE;
-    }
+       switch (info->ipod_generation) {
+           case ITDB_IPOD_GENERATION_CLASSIC_1: 
+           case ITDB_IPOD_GENERATION_CLASSIC_2:
+           case ITDB_IPOD_GENERATION_CLASSIC_3:
+           case ITDB_IPOD_GENERATION_NANO_3:
+           case ITDB_IPOD_GENERATION_NANO_4:
+               return ITDB_CHECKSUM_HASH58;
 
-    switch (info->ipod_generation) {
-    case ITDB_IPOD_GENERATION_CLASSIC_1: 
-    case ITDB_IPOD_GENERATION_CLASSIC_2:
-    case ITDB_IPOD_GENERATION_CLASSIC_3:
-    case ITDB_IPOD_GENERATION_NANO_3:
-    case ITDB_IPOD_GENERATION_NANO_4:
-      return ITDB_CHECKSUM_HASH58;
-
-    case ITDB_IPOD_GENERATION_NANO_5:
-    case ITDB_IPOD_GENERATION_TOUCH_1:
-    case ITDB_IPOD_GENERATION_TOUCH_2:
-    case ITDB_IPOD_GENERATION_TOUCH_3:
-    case ITDB_IPOD_GENERATION_IPHONE_1:
-    case ITDB_IPOD_GENERATION_IPHONE_2:
-    case ITDB_IPOD_GENERATION_IPHONE_3:
-        return ITDB_CHECKSUM_HASH72;
-
-    case ITDB_IPOD_GENERATION_UNKNOWN:
-    case ITDB_IPOD_GENERATION_FIRST:
-    case ITDB_IPOD_GENERATION_SECOND:
-    case ITDB_IPOD_GENERATION_THIRD:
-    case ITDB_IPOD_GENERATION_FOURTH:
-    case ITDB_IPOD_GENERATION_PHOTO:
-    case ITDB_IPOD_GENERATION_MOBILE:
-    case ITDB_IPOD_GENERATION_MINI_1:
-    case ITDB_IPOD_GENERATION_MINI_2:
-    case ITDB_IPOD_GENERATION_SHUFFLE_1:
-    case ITDB_IPOD_GENERATION_SHUFFLE_2:
-    case ITDB_IPOD_GENERATION_SHUFFLE_3:
-    case ITDB_IPOD_GENERATION_SHUFFLE_4:
-    case ITDB_IPOD_GENERATION_NANO_1:
-    case ITDB_IPOD_GENERATION_NANO_2:
-    case ITDB_IPOD_GENERATION_VIDEO_1:
-    case ITDB_IPOD_GENERATION_VIDEO_2:
-            return ITDB_CHECKSUM_NONE;
+           case ITDB_IPOD_GENERATION_NANO_5:
+           case ITDB_IPOD_GENERATION_TOUCH_1:
+           case ITDB_IPOD_GENERATION_TOUCH_2:
+           case ITDB_IPOD_GENERATION_TOUCH_3:
+           case ITDB_IPOD_GENERATION_IPHONE_1:
+           case ITDB_IPOD_GENERATION_IPHONE_2:
+           case ITDB_IPOD_GENERATION_IPHONE_3:
+               return ITDB_CHECKSUM_HASH72;
+
+           case ITDB_IPOD_GENERATION_UNKNOWN:
+           case ITDB_IPOD_GENERATION_FIRST:
+           case ITDB_IPOD_GENERATION_SECOND:
+           case ITDB_IPOD_GENERATION_THIRD:
+           case ITDB_IPOD_GENERATION_FOURTH:
+           case ITDB_IPOD_GENERATION_PHOTO:
+           case ITDB_IPOD_GENERATION_MOBILE:
+           case ITDB_IPOD_GENERATION_MINI_1:
+           case ITDB_IPOD_GENERATION_MINI_2:
+           case ITDB_IPOD_GENERATION_SHUFFLE_1:
+           case ITDB_IPOD_GENERATION_SHUFFLE_2:
+           case ITDB_IPOD_GENERATION_SHUFFLE_3:
+           case ITDB_IPOD_GENERATION_SHUFFLE_4:
+           case ITDB_IPOD_GENERATION_NANO_1:
+           case ITDB_IPOD_GENERATION_NANO_2:
+           case ITDB_IPOD_GENERATION_VIDEO_1:
+           case ITDB_IPOD_GENERATION_VIDEO_2:
+               return ITDB_CHECKSUM_NONE;
+       }
     }
 
     return ITDB_CHECKSUM_NONE;

------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to