From: <ny...@us...> - 2007-09-17 12:14:27
|
Revision: 413 http://pmplib.svn.sourceforge.net/pmplib/?rev=413&view=rev Author: nyaochi Date: 2007-09-17 05:14:30 -0700 (Mon, 17 Sep 2007) Log Message: ----------- - Updated the layout of "mhsd" chunk. Modified Paths: -------------- trunk/pmplib/lib/pmp_ipod/ipod.c trunk/pmplib/lib/pmp_ipod/itunesdb.c trunk/pmplib/lib/pmp_ipod/itunesdb.h Modified: trunk/pmplib/lib/pmp_ipod/ipod.c =================================================================== --- trunk/pmplib/lib/pmp_ipod/ipod.c 2007-09-12 17:04:54 UTC (rev 412) +++ trunk/pmplib/lib/pmp_ipod/ipod.c 2007-09-17 12:14:30 UTC (rev 413) @@ -889,6 +889,7 @@ if (ret = itunesdb_init(mhbd, "mhbd", NULL)) return ret; mhbd_data = (itunesdb_mhbd_t*)mhbd->data; +#if 0 /* Construct "mhsd" chunk with album_list type (type = 4). */ mhsd = itunesdb_new_child(mhbd); if (mhsd) { @@ -908,6 +909,7 @@ } else { return IPODE_FAILEDNEWCHUNK; } +#endif /* Construct "mhsd" chunk with track type (type = 1). */ mhsd = itunesdb_new_child(mhbd); Modified: trunk/pmplib/lib/pmp_ipod/itunesdb.c =================================================================== --- trunk/pmplib/lib/pmp_ipod/itunesdb.c 2007-09-12 17:04:54 UTC (rev 412) +++ trunk/pmplib/lib/pmp_ipod/itunesdb.c 2007-09-17 12:14:30 UTC (rev 413) @@ -64,12 +64,18 @@ mhbd->unknown1 = 1; mhbd->version = 0x19; /* iTunes 7.4.1 */ mhbd->num_children = 0; /* to be filled */ - mhbd->identifier = 0x7F6BBD850EB674E2; + mhbd->identifier = 0x5967FDF4464C603D; mhbd->unknown2 = 2; mhbd->unknown3 = 611; mhbd->unknown4 = 0xBCD054CD8C063208; + mhbd->unknown5 = 0; + mhbd->unknown6 = 1; mhbd->language[0] = 'j'; mhbd->language[1] = 'a'; + mhbd->unknown7 = 0x39F6D17B62A94AC7; + mhbd->unknown8 = 1; + mhbd->unknown9 = 13; + mhbd->timezone = 0x00007E90; } chunk->data = mhbd; return mhbd ? 0 : IPODE_OUTOFMEMORY; @@ -87,8 +93,15 @@ if (ret = serialize_uint16le(sio, "unkonwn2", "%d", &mhbd->unknown2)) return ret; if (ret = serialize_uint16le(sio, "unkonwn3", "%d", &mhbd->unknown3)) return ret; if (ret = serialize_uint64le(sio, "unknown4", "%016llX", &mhbd->unknown4)) return ret; - if (ret = serialize_uint8_array(sio, "unknown5", "%02X ", mhbd->unknown5, sizeof(mhbd->unknown5))) return ret; + if (ret = serialize_uint32le(sio, "unknown5", "%d", &mhbd->unknown5)) return ret; + if (ret = serialize_uint16le(sio, "unknown6", "%d", &mhbd->unknown6)) return ret; + if (ret = serialize_uint8_array(sio, "hash32", "%02X ", mhbd->hash32, sizeof(mhbd->hash32))) return ret; if (ret = serialize_uint8_array(sio, "language", "%c ", mhbd->language, sizeof(mhbd->language))) return ret; + if (ret = serialize_uint64le(sio, "unknown7", "%016llX", &mhbd->unknown7)) return ret; + if (ret = serialize_uint32le(sio, "unknown8", "%d", &mhbd->unknown8)) return ret; + if (ret = serialize_uint32le(sio, "unknown9", "%d", &mhbd->unknown9)) return ret; + if (ret = serialize_uint8_array(sio, "hash58", "%02X ", mhbd->hash58, sizeof(mhbd->hash58))) return ret; + if (ret = serialize_uint32le(sio, "timezone", "%d", &mhbd->timezone)) return ret; return 0; } Modified: trunk/pmplib/lib/pmp_ipod/itunesdb.h =================================================================== --- trunk/pmplib/lib/pmp_ipod/itunesdb.h 2007-09-12 17:04:54 UTC (rev 412) +++ trunk/pmplib/lib/pmp_ipod/itunesdb.h 2007-09-17 12:14:30 UTC (rev 413) @@ -32,8 +32,15 @@ uint16_t unknown2; /* always set to 2. */ uint16_t unknown3; /* 0x0263 */ uint64_t unknown4; - uint8_t unknown5[26]; /* zero padded. */ + uint32_t unknown5; + uint16_t unknown6; + uint8_t hash32[20]; uint8_t language[2]; /* e.g., "en", "ja" */ + uint64_t unknown7; + uint32_t unknown8; + uint32_t unknown9; + uint8_t hash58[20]; + uint32_t timezone; } itunesdb_mhbd_t; typedef struct { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |