commit 3d7fbc34dc0140133f31849424a3c6cc027074d3
Author: Hector Martin <[email protected]>
Date:   Tue Oct 20 03:55:24 2009 +0200

    Fix iTunesCDB/SQLite mode detection
    
    Use the SQLiteDB key from SysInfoExtended to detect SQLite/CDB mode

 src/itdb_device.c                  |   77 ++++++++++++++++++------------------
 src/itdb_sysinfo_extended_parser.c |    2 +
 2 files changed, 41 insertions(+), 38 deletions(-)
---
diff --git a/src/itdb_device.c b/src/itdb_device.c
index 1b4f66e..0e7cc27 100644
--- a/src/itdb_device.c
+++ b/src/itdb_device.c
@@ -1221,48 +1221,49 @@ GList *itdb_device_get_chapter_image_formats (const 
Itdb_Device *device)
     g_return_val_if_reached (NULL);
 }
 
-
 G_GNUC_INTERNAL gboolean
 itdb_device_supports_compressed_itunesdb (const Itdb_Device *device)
 {
-    const Itdb_IpodInfo *info;
-    info = itdb_device_get_ipod_info (device);
-    switch (info->ipod_generation) {
-       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:
-       case ITDB_IPOD_GENERATION_NANO_3:
-       case ITDB_IPOD_GENERATION_NANO_4:
-       case ITDB_IPOD_GENERATION_CLASSIC_1:
-       case ITDB_IPOD_GENERATION_CLASSIC_2:
-       case ITDB_IPOD_GENERATION_CLASSIC_3:
-           return FALSE;
-       case ITDB_IPOD_GENERATION_NANO_5:
-       case ITDB_IPOD_GENERATION_TOUCH_3:
-           return TRUE;
-       case ITDB_IPOD_GENERATION_TOUCH_1:
-       case ITDB_IPOD_GENERATION_IPHONE_1:
-       case ITDB_IPOD_GENERATION_TOUCH_2:
-       case ITDB_IPOD_GENERATION_IPHONE_2:
-       case ITDB_IPOD_GENERATION_IPHONE_3:
-           /* FIXME: needs to check firmware version */
-           return TRUE;
+    if (device->sysinfo_extended != NULL) {
+       return itdb_sysinfo_properties_supports_sqlite 
(device->sysinfo_extended);
+    } else {
+       const Itdb_IpodInfo *info;
+       info = itdb_device_get_ipod_info (device);
+       switch (info->ipod_generation) {
+           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:
+           case ITDB_IPOD_GENERATION_NANO_3:
+           case ITDB_IPOD_GENERATION_NANO_4:
+           case ITDB_IPOD_GENERATION_CLASSIC_1:
+           case ITDB_IPOD_GENERATION_CLASSIC_2:
+           case ITDB_IPOD_GENERATION_CLASSIC_3:
+               return FALSE;
+           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:
+               /* FIXME: needs to check firmware version */
+               return TRUE;
+       }
     }
-    return FALSE;
 }
 
 G_GNUC_INTERNAL gboolean 
diff --git a/src/itdb_sysinfo_extended_parser.c 
b/src/itdb_sysinfo_extended_parser.c
index 8f2a818..fa29d33 100644
--- a/src/itdb_sysinfo_extended_parser.c
+++ b/src/itdb_sysinfo_extended_parser.c
@@ -107,6 +107,7 @@ struct _SysInfoIpodProperties {
         gint games_platform_id;
         gint games_platform_version;
         gint rental_clock_bias;
+       gboolean sqlite_db;
 };
 
 static gint get_int (GHashTable *dict, const char *key)
@@ -216,6 +217,7 @@ static const DictFieldMapping 
sysinfo_ipod_properties_fields_mapping[] = {
     { "GamesPlatformID",               G_TYPE_INT,     G_STRUCT_OFFSET 
(SysInfoIpodProperties, games_platform_id) },
     { "GamesPlatformVersion",          G_TYPE_INT,     G_STRUCT_OFFSET 
(SysInfoIpodProperties, games_platform_version) },
     { "RentalClockBias",               G_TYPE_INT,     G_STRUCT_OFFSET 
(SysInfoIpodProperties, rental_clock_bias) },
+    { "SQLiteDB",                      G_TYPE_BOOLEAN, G_STRUCT_OFFSET 
(SysInfoIpodProperties, sqlite_db) },
     { NULL,                            G_TYPE_NONE,    0 }
 };
 

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

Reply via email to