commit f890bb308963846e7bd61acde0733d8b67732088
Author: Christophe Fergeau <[email protected]>
Date: Sat Jul 25 17:10:47 2009 +0200
Update model info for iPhone 3G/3GS and make libgpod and HAL callout use it
Based on patches by Martin Szulecki
src/itdb.h | 16 ++++++++++--
src/itdb_device.c | 66 +++++++++++++++++++++++++++++++++++++--------------
src/itdb_itunesdb.c | 8 ++----
tools/hal-callout.c | 23 ++++++++++++++++-
4 files changed, 85 insertions(+), 28 deletions(-)
---
diff --git a/src/itdb.h b/src/itdb.h
index ddc0cde..dc00361 100644
--- a/src/itdb.h
+++ b/src/itdb.h
@@ -117,6 +117,9 @@ typedef struct _Itdb_Chapterdata Itdb_Chapterdata;
* @ITDB_IPOD_GENERATION_CLASSIC_2: Second Generation iPod Classic
* @ITDB_IPOD_GENERATION_TOUCH_1: First Generation iPod Touch
* @ITDB_IPOD_GENERATION_IPHONE_1: First Generation iPhone
+ * @ITDB_IPOD_GENERATION_TOUCH_2: Second Generation iPod Touch
+ * @ITDB_IPOD_GENERATION_IPHONE_2: Second Generation iPhone (aka iPhone 3G)
+ * @ITDB_IPOD_GENERATION_IPHONE_3: Third Generation iPhone (aka iPhone 3GS)
*
* iPod generation information
*
@@ -149,6 +152,9 @@ typedef enum {
ITDB_IPOD_GENERATION_TOUCH_1,
ITDB_IPOD_GENERATION_IPHONE_1,
ITDB_IPOD_GENERATION_SHUFFLE_4,
+ ITDB_IPOD_GENERATION_TOUCH_2,
+ ITDB_IPOD_GENERATION_IPHONE_2,
+ ITDB_IPOD_GENERATION_IPHONE_3
} Itdb_IpodGeneration;
/**
@@ -190,7 +196,9 @@ typedef enum {
* @ITDB_IPOD_MODEL_SHUFFLE_RED: iPod Shuffle (Red)
* @ITDB_IPOD_MODEL_CLASSIC_SILVER: iPod Classic (Silver)
* @ITDB_IPOD_MODEL_CLASSIC_BLACK: iPod Classic (Black)
- * @ITDB_IPOD_MODEL_TOUCH_BLACK: iPod Touch (Black)
+ * @ITDB_IPOD_MODEL_TOUCH_SILVER: iPod Touch (Silver)
+ * @ITDB_IPOD_MODEL_IPHONE_WHITE: iPhone (White)
+ * @ITDB_IPOD_MODEL_IPHONE_BLACK: iPhone (Black)
*
* iPod model information
*
@@ -233,8 +241,10 @@ typedef enum {
ITDB_IPOD_MODEL_SHUFFLE_RED,
ITDB_IPOD_MODEL_CLASSIC_SILVER,
ITDB_IPOD_MODEL_CLASSIC_BLACK,
- ITDB_IPOD_MODEL_TOUCH_BLACK,
- ITDB_IPOD_MODEL_SHUFFLE_BLACK
+ ITDB_IPOD_MODEL_TOUCH_SILVER,
+ ITDB_IPOD_MODEL_SHUFFLE_BLACK,
+ ITDB_IPOD_MODEL_IPHONE_WHITE,
+ ITDB_IPOD_MODEL_IPHONE_BLACK,
} Itdb_IpodModel;
/**
diff --git a/src/itdb_device.c b/src/itdb_device.c
index bf4544c..7fe36b5 100644
--- a/src/itdb_device.c
+++ b/src/itdb_device.c
@@ -234,19 +234,22 @@ static const Itdb_IpodInfo ipod_info_table [] = {
{"B917", 16, ITDB_IPOD_MODEL_NANO_RED, ITDB_IPOD_GENERATION_NANO_4,
14},
{"B918", 16, ITDB_IPOD_MODEL_NANO_BLACK, ITDB_IPOD_GENERATION_NANO_4,
14},
- /* iPod touch G1 */
- /* With touch screen */
- {"A623", 8, ITDB_IPOD_MODEL_TOUCH_BLACK,
ITDB_IPOD_GENERATION_TOUCH_1, 14},
- {"A627", 16, ITDB_IPOD_MODEL_TOUCH_BLACK,
ITDB_IPOD_GENERATION_TOUCH_1, 28},
-
- /* iPhone G1 */
- /* We used to not have a model number for the iPhone so we had that
- * dummy "iPhone1" model number, we now keep it here for backward
- * compatibility reasons
- */
- {"A501", 4, ITDB_IPOD_MODEL_IPHONE_1,
ITDB_IPOD_GENERATION_IPHONE_1, 14},
- {"A712", 8, ITDB_IPOD_MODEL_IPHONE_1,
ITDB_IPOD_GENERATION_IPHONE_1, 14},
- {"iPhone1", -1, ITDB_IPOD_MODEL_IPHONE_1, ITDB_IPOD_GENERATION_IPHONE_1,
14},
+ /* iPod Touch */
+ {"A623", 8, ITDB_IPOD_MODEL_TOUCH_SILVER,
ITDB_IPOD_GENERATION_TOUCH_1, 50},
+ {"A627", 16, ITDB_IPOD_MODEL_TOUCH_SILVER,
ITDB_IPOD_GENERATION_TOUCH_1, 50},
+
+ /* iPhone, iPhone 3G and iPhone 3GS */
+ {"A501", 4, ITDB_IPOD_MODEL_IPHONE_1,
ITDB_IPOD_GENERATION_IPHONE_1, 50},
+ {"A712", 8, ITDB_IPOD_MODEL_IPHONE_1,
ITDB_IPOD_GENERATION_IPHONE_1, 50},
+ {"B384", 16, ITDB_IPOD_MODEL_IPHONE_1,
ITDB_IPOD_GENERATION_IPHONE_1, 50},
+ {"B500", 16, ITDB_IPOD_MODEL_IPHONE_WHITE,
ITDB_IPOD_GENERATION_IPHONE_2, 50},
+ {"B048", 16, ITDB_IPOD_MODEL_IPHONE_BLACK,
ITDB_IPOD_GENERATION_IPHONE_2, 50},
+ {"B496", 16, ITDB_IPOD_MODEL_IPHONE_BLACK,
ITDB_IPOD_GENERATION_IPHONE_2, 50},
+ {"C131", 16, ITDB_IPOD_MODEL_IPHONE_BLACK,
ITDB_IPOD_GENERATION_IPHONE_3, 50},
+
+ /* iPhone G2 aka iPhone 3G (yeah, confusing ;) */
+ {"B500", 16, ITDB_IPOD_MODEL_IPHONE_WHITE,
ITDB_IPOD_GENERATION_IPHONE_2, 14},
+ {"B048", 16, ITDB_IPOD_MODEL_IPHONE_BLACK,
ITDB_IPOD_GENERATION_IPHONE_2, 14},
/* No known model number -- create a Device/SysInfo file with
* one entry, e.g.:
@@ -296,8 +299,10 @@ static const gchar *ipod_model_name_table [] = {
N_("Shuffle (Red)"),
N_("Classic (Silver)"),
N_("Classic (Black)"),
- N_("Touch (Black)"),
+ N_("Touch (Silver)"),
N_("Shuffle (Black)"),
+ N_("iPhone (White)"),
+ N_("iPhone (Black)"),
NULL
};
@@ -324,8 +329,11 @@ static const gchar *ipod_generation_name_table [] = {
N_("Classic"),
N_("Classic"),
N_("Touch"),
- N_("iPhone"),
+ N_("iPhone"),
N_("Shuffle (4th Gen.)"),
+ N_("Touch (2nd Gen.)"),
+ N_("iPhone 3G"),
+ N_("iPhone 3GS"),
N_("Unused"),
N_("Unused"),
NULL
@@ -484,7 +492,10 @@ static const ArtworkCapabilities
ipod_artwork_capabilities[] = {
{ ITDB_IPOD_GENERATION_CLASSIC_1, ipod_classic_1_cover_art_info,
ipod_classic_1_photo_info, ipod_classic_1_chapter_image_info },
{ ITDB_IPOD_GENERATION_CLASSIC_2, ipod_classic_1_cover_art_info,
ipod_classic_1_photo_info, ipod_classic_1_chapter_image_info },
{ ITDB_IPOD_GENERATION_TOUCH_1, ipod_touch_1_cover_art_info,
ipod_touch_1_photo_info, NULL },
+ { ITDB_IPOD_GENERATION_TOUCH_2, ipod_touch_1_cover_art_info,
ipod_touch_1_photo_info, NULL },
{ ITDB_IPOD_GENERATION_IPHONE_1, ipod_touch_1_cover_art_info,
ipod_touch_1_photo_info, NULL },
+ { ITDB_IPOD_GENERATION_IPHONE_2, ipod_touch_1_cover_art_info,
ipod_touch_1_photo_info, NULL },
+ { ITDB_IPOD_GENERATION_IPHONE_3, ipod_touch_1_cover_art_info,
ipod_touch_1_photo_info, NULL },
{ ITDB_IPOD_GENERATION_MOBILE, ipod_mobile_1_cover_art_info, NULL, NULL },
{ ITDB_IPOD_GENERATION_UNKNOWN, NULL, NULL, NULL }
};
@@ -672,6 +683,11 @@ static const ItdbSerialToModel serial_to_model_mapping[] =
{
{ "5BF", "B918" }, /* 16GB Black Nano 4g */
{ "4NZ", "B867" }, /* 4GB Silver Shuffle 4g */
{ "891", "C164" }, /* 4GB Black Shuffle 4g */
+ { "W4T", "A627" }, /* 16GB Silver iPod Touch */
+ { "WH8", "A712" }, /* 8GB Silver iPhone */
+ { "0KH", "B384" }, /* 16GB Silver iPhone */
+ { "Y7K", "B496" }, /* 16GB Black iPhone 3G */
+ { "3NP", "C131" }, /* 16GB Black iPhone 3GS */
{ NULL , NULL }
};
@@ -1191,6 +1207,9 @@ itdb_device_supports_sparse_artwork (const Itdb_Device
*device)
case ITDB_IPOD_GENERATION_CLASSIC_2:
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:
supports_sparse_artwork = TRUE;
break;
}
@@ -1491,8 +1510,11 @@ gboolean itdb_device_supports_video (const Itdb_Device
*device)
case ITDB_IPOD_GENERATION_VIDEO_2:
case ITDB_IPOD_GENERATION_CLASSIC_1:
case ITDB_IPOD_GENERATION_CLASSIC_2:
- case ITDB_IPOD_GENERATION_TOUCH_1:
- case ITDB_IPOD_GENERATION_IPHONE_1:
+ 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:
return TRUE;
}
g_return_val_if_reached (FALSE);
@@ -1591,9 +1613,14 @@ static ItdbChecksumType itdb_device_get_checksum_type
(const Itdb_Device *device
case ITDB_IPOD_GENERATION_CLASSIC_2:
case ITDB_IPOD_GENERATION_NANO_3:
case ITDB_IPOD_GENERATION_NANO_4:
+ return ITDB_CHECKSUM_HASH58;
+
case ITDB_IPOD_GENERATION_TOUCH_1:
+ case ITDB_IPOD_GENERATION_TOUCH_2:
case ITDB_IPOD_GENERATION_IPHONE_1:
- return ITDB_CHECKSUM_HASH58;
+ 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:
@@ -1875,6 +1902,9 @@ itdb_device_supports_podcast (const Itdb_Device *device)
case ITDB_IPOD_GENERATION_CLASSIC_2:
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:
return TRUE;
}
g_return_val_if_reached (FALSE);
diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c
index ed66e98..3796445 100644
--- a/src/itdb_itunesdb.c
+++ b/src/itdb_itunesdb.c
@@ -7002,11 +7002,9 @@ static gboolean itdb_create_directories (Itdb_Device
*device, GError **error)
devicefile = TRUE;
break;
case ITDB_IPOD_MODEL_IPHONE_1:
- podpath = g_strdup ("iTunes_Control");
- calconnotes = FALSE;
- devicefile = TRUE;
- break;
- case ITDB_IPOD_MODEL_TOUCH_BLACK:
+ case ITDB_IPOD_MODEL_TOUCH_SILVER:
+ case ITDB_IPOD_MODEL_IPHONE_WHITE:
+ case ITDB_IPOD_MODEL_IPHONE_BLACK:
podpath = g_strdup ("iTunes_Control");
calconnotes = FALSE;
devicefile = TRUE;
diff --git a/tools/hal-callout.c b/tools/hal-callout.c
index 8476281..77d8cee 100644
--- a/tools/hal-callout.c
+++ b/tools/hal-callout.c
@@ -184,8 +184,11 @@ get_model_name (const Itdb_IpodInfo *info)
case ITDB_IPOD_GENERATION_CLASSIC_2:
return g_strdup ("classic");
case ITDB_IPOD_GENERATION_TOUCH_1:
+ case ITDB_IPOD_GENERATION_TOUCH_2:
return g_strdup ("touch");
case ITDB_IPOD_GENERATION_IPHONE_1:
+ case ITDB_IPOD_GENERATION_IPHONE_2:
+ case ITDB_IPOD_GENERATION_IPHONE_3:
return g_strdup ("phone");
case ITDB_IPOD_GENERATION_MOBILE:
return g_strdup ("rokr");
@@ -243,8 +246,14 @@ get_generation (const Itdb_IpodInfo *info)
return 6.5;
case ITDB_IPOD_GENERATION_TOUCH_1:
return 1.0;
+ case ITDB_IPOD_GENERATION_TOUCH_2:
+ return 2.0;
case ITDB_IPOD_GENERATION_IPHONE_1:
return 1.0;
+ case ITDB_IPOD_GENERATION_IPHONE_2:
+ return 2.0;
+ case ITDB_IPOD_GENERATION_IPHONE_3:
+ return 3.0;
case ITDB_IPOD_GENERATION_MOBILE:
return 1.0;
}
@@ -269,19 +278,21 @@ get_color_name (const Itdb_IpodInfo *info)
case ITDB_IPOD_MODEL_VIDEO_WHITE:
case ITDB_IPOD_MODEL_SHUFFLE:
case ITDB_IPOD_MODEL_MOBILE_1:
+ case ITDB_IPOD_MODEL_IPHONE_WHITE:
return g_strdup ("white");
case ITDB_IPOD_MODEL_MINI:
case ITDB_IPOD_MODEL_NANO_SILVER:
case ITDB_IPOD_MODEL_SHUFFLE_SILVER:
case ITDB_IPOD_MODEL_CLASSIC_SILVER:
+ case ITDB_IPOD_MODEL_TOUCH_SILVER:
+ case ITDB_IPOD_MODEL_IPHONE_1:
return g_strdup ("silver");
case ITDB_IPOD_MODEL_VIDEO_U2:
case ITDB_IPOD_MODEL_NANO_BLACK:
case ITDB_IPOD_MODEL_VIDEO_BLACK:
case ITDB_IPOD_MODEL_CLASSIC_BLACK:
case ITDB_IPOD_MODEL_SHUFFLE_BLACK:
- case ITDB_IPOD_MODEL_TOUCH_BLACK:
- case ITDB_IPOD_MODEL_IPHONE_1:
+ case ITDB_IPOD_MODEL_IPHONE_BLACK:
return g_strdup ("black");
case ITDB_IPOD_MODEL_MINI_PINK:
case ITDB_IPOD_MODEL_NANO_PINK:
@@ -421,7 +432,15 @@ get_icon_name (const Itdb_IpodInfo *info)
}
case ITDB_IPOD_GENERATION_TOUCH_1:
+ return g_strdup ("multimedia-player-apple-ipod-touch");
+ case ITDB_IPOD_GENERATION_TOUCH_2:
+ return g_strdup ("multimedia-player-apple-ipod-touch-2g");
case ITDB_IPOD_GENERATION_IPHONE_1:
+ return g_strdup ("phone-apple-iphone");
+ case ITDB_IPOD_GENERATION_IPHONE_2:
+ return g_strdup ("phone-apple-iphone-3g");
+ case ITDB_IPOD_GENERATION_IPHONE_3:
+ return g_strdup ("phone-apple-iphone-3gs");
case ITDB_IPOD_GENERATION_MOBILE:
return g_strdup ("multimedia-player-apple-ipod");
}
------------------------------------------------------------------------------
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