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