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