From: <ny...@us...> - 2007-02-23 07:46:47
|
Revision: 387 http://svn.sourceforge.net/pmplib/?rev=387&view=rev Author: nyaochi Date: 2007-02-22 23:46:45 -0800 (Thu, 22 Feb 2007) Log Message: ----------- Added some comments. Modified Paths: -------------- trunk/pmplib/lib/pmp_ipod/itunesdb.c trunk/pmplib/lib/pmp_ipod/itunesdb.h Modified: trunk/pmplib/lib/pmp_ipod/itunesdb.c =================================================================== --- trunk/pmplib/lib/pmp_ipod/itunesdb.c 2007-02-23 06:58:35 UTC (rev 386) +++ trunk/pmplib/lib/pmp_ipod/itunesdb.c 2007-02-23 07:46:45 UTC (rev 387) @@ -1,5 +1,5 @@ /* - * iTunesDB + * iTunesDB reader/writer/dumper. * * Copyright (c) 2005-2007 Naoaki Okazaki * @@ -43,6 +43,7 @@ static void chunk_finish(itunesdb_chunk_t* chunk) { free(chunk->data); + free(chunk->padding); memset(chunk, 0, sizeof(*chunk)); } @@ -54,14 +55,14 @@ memset(chunk, 0, sizeof(*chunk)); strncpy(chunk->id, "mhbd", 4); chunk->size = 104; - chunk->overall_size = chunk->size; + chunk->overall_size = 0; /* to be filled */ } mhbd = (chunk_mhbd_t*)calloc(1, sizeof(chunk_mhbd_t)); if (def && mhbd) { mhbd->unknown1 = 1; mhbd->version = 0x13; /* iTunes 7 */ - mhbd->num_children = 0; + mhbd->num_children = 0; /* to be filled */ mhbd->identifier = 0x8CD2513B66EF2541; mhbd->unknown2 = 2; mhbd->unknown3 = 611; @@ -100,12 +101,12 @@ memset(chunk, 0, sizeof(*chunk)); strncpy(chunk->id, "mhsd", 4); chunk->size = 96; - chunk->overall_size = chunk->size; + chunk->overall_size = 0; /* to be filled */ } mhsd = (chunk_mhsd_t*)calloc(1, sizeof(chunk_mhsd_t)); if (mhsd && def) { - mhsd->type = 0; /* Initialize type 0 for now. */ + mhsd->type = 0; /* to be filled */ } chunk->data = mhsd; @@ -131,7 +132,7 @@ memset(chunk, 0, sizeof(*chunk)); strncpy(chunk->id, "mhlt", 4); chunk->size = 92; - chunk->overall_size = 0; /* stands for number of children for "mhlt" chunk. */ + chunk->overall_size = 0; /* to be filled */ } mhlt = (chunk_mhlt_t*)calloc(1, sizeof(chunk_mhlt_t)); @@ -158,12 +159,13 @@ memset(chunk, 0, sizeof(*chunk)); strncpy(chunk->id, "mhit", 4); chunk->size = 328; - chunk->overall_size = chunk->size; + chunk->overall_size = 0; /* to be filled */ } mhit = (chunk_mhit_t*)calloc(1, sizeof(chunk_mhit_t)); if (mhit && def) { - mhit->visible = 1; /* Visible by default. */ + mhit->visible = 1; /* visible by default */ + /* other fields to be filled later */ } chunk->data = mhit; @@ -262,7 +264,7 @@ memset(chunk, 0, sizeof(*chunk)); strncpy(chunk->id, "mhlp", 4); chunk->size = 92; - chunk->overall_size = 0; + chunk->overall_size = 0; /* to be filled */ } mhlp = (chunk_mhlp_t*)calloc(1, sizeof(chunk_mhlp_t)); @@ -289,7 +291,7 @@ memset(chunk, 0, sizeof(*chunk)); strncpy(chunk->id, "mhyp", 4); chunk->size = 108; - chunk->overall_size = chunk->size; + chunk->overall_size = 0; /* to be filled */ } mhyp = (chunk_mhyp_t*)calloc(1, sizeof(chunk_mhyp_t)); @@ -327,7 +329,7 @@ memset(chunk, 0, sizeof(*chunk)); strncpy(chunk->id, "mhip", 4); chunk->size = 76; - chunk->overall_size = chunk->size; + chunk->overall_size = 0; /* to be filled */ } mhip = (chunk_mhip_t*)calloc(1, sizeof(chunk_mhip_t)); @@ -562,6 +564,7 @@ if (decl) { decl->finish(chunk); } + chunk_finish(chunk); } static int mhod_serialize(itunesdb_chunk_t* chunk, serializer_t* sio) Modified: trunk/pmplib/lib/pmp_ipod/itunesdb.h =================================================================== --- trunk/pmplib/lib/pmp_ipod/itunesdb.h 2007-02-23 06:58:35 UTC (rev 386) +++ trunk/pmplib/lib/pmp_ipod/itunesdb.h 2007-02-23 07:46:45 UTC (rev 387) @@ -1,5 +1,5 @@ /* - * iTunesDB + * iTunesDB reader/writer/dumper. * * Copyright (c) 2005-2007 Naoaki Okazaki * @@ -19,7 +19,7 @@ * */ -/* $Id$ */ +/* $Id:$ */ #ifndef __ITUNESDB_H__ #define __ITUNESDB_H__ @@ -244,12 +244,52 @@ const void* base; } sorted_index_t; -int itunesdb_init(itunesdb_chunk_t* chunk, const char *name, const char *subtype); +/** + * Initialize a chunk with identifier and subtype (for "mhod" chunk) + * @param chunk The pointer to itunesdb_chunk_t to be initialized. + * @param identifer Chunk identifier. + * @param subtype Chunk sub-type for "mhod" chunk. + * @retval int zero if succeeded, otherwise nonzero. + */ +int itunesdb_init(itunesdb_chunk_t* chunk, const char *identifer, const char *subtype); + +/** + * Create a new chunk and append it to the children of the parent chunk. + * @param chunk The chunk where a new child will be appended. + * @retval itunesdb_chunk_t* Pointer to the new chunk if succeeded, otherwise NULL. + */ itunesdb_chunk_t* itunesdb_new_child(itunesdb_chunk_t* chunk); + +/** + * Uninitialize a chunk. + * @param chunk The pointer to itunesdb_chunk_t to be freed. + */ void itunesdb_finish(itunesdb_chunk_t* chunk); +/** + * Set UCS-2 string to "mhod" chunk. + * @param chunk The pointer to "mhod" chunk. + * @param str The pointer to UCS-2 string. + * @retval int zero if succeeded, otherwise nonzero. + */ int itunesdb_set_mhod_string(itunesdb_chunk_t* chunk, const ucs2char_t* str); -int itunesdb_set_mhod_index(itunesdb_chunk_t* chunk, uint32_t type, sorted_index_t* si, uint32_t n); + +/** + * Set sorted index to "mhod" chunk. + * @param chunk The pointer to "mhod" chunk. + * @param sort_order The sort order. + * @param si The sorted index. + * @param n The number of entries in the sorted index. + * @retval int zero if succeeded, otherwise nonzero. + */ +int itunesdb_set_mhod_index(itunesdb_chunk_t* chunk, uint32_t sort_order, sorted_index_t* si, uint32_t n); + +/** + * Set ordinal value to "mhod" chunk. + * @param chunk The pointer to "mhod" chunk. + * @param order The ordinal value. + * @retval int zero if succeeded, otherwise nonzero. + */ int itunesdb_set_mhod_playlist_order(itunesdb_chunk_t* chunk, uint32_t order); int itunesdb_repr(itunesdb_chunk_t* chunk, size_t index, serializer_t* sio); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |