From: <ny...@us...> - 2007-02-17 14:52:18
|
Revision: 370 http://svn.sourceforge.net/pmplib/?rev=370&view=rev Author: nyaochi Date: 2007-02-17 06:52:17 -0800 (Sat, 17 Feb 2007) Log Message: ----------- - Removed pp1db member from pmp_music_internal_t because it is no longer shared among functions in pmp_portalplayer1.c - Fixed the bug: the database dump has been broken. Modified Paths: -------------- trunk/pmplib/lib/pmp_portalplayer1/pmp_portalplayer1.c Modified: trunk/pmplib/lib/pmp_portalplayer1/pmp_portalplayer1.c =================================================================== --- trunk/pmplib/lib/pmp_portalplayer1/pmp_portalplayer1.c 2007-02-14 23:10:22 UTC (rev 369) +++ trunk/pmplib/lib/pmp_portalplayer1/pmp_portalplayer1.c 2007-02-17 14:52:17 UTC (rev 370) @@ -262,7 +262,6 @@ } pmp_internal_t; typedef struct { - pp1db_t pp1db; pmp_music_record_t* records; int num_records; pmp_playlist_t* playlists; @@ -619,13 +618,14 @@ static uint32_t pmpmusic_open(pmp_music_t* music) { + pp1db_t pp1db; result_t ret = 0; pmp_t* pmp = music->pmp; pmp_internal_t* pmpi = (pmp_internal_t*)pmp->instance; pmp_music_internal_t* pmpmi = (pmp_music_internal_t*)music->instance; // Initialize PP1DB. - pp1db_init(&pmpmi->pp1db, pmpi->decl->hdr_initproc); + pp1db_init(&pp1db, pmpi->decl->hdr_initproc); // Free the existing records. pmplib_records_finish(pmpmi->records, pmpmi->num_records); @@ -639,13 +639,13 @@ // Read the music database. set_filenames(hdr, pmp); - ret = pp1db_read(&pmpmi->pp1db, hdr); + ret = pp1db_read(&pp1db, hdr); if (ret) { goto exit_this; } // Obtain the number of records. - ret = pp1db_get(&pmpmi->pp1db, NULL, &pmpmi->num_records, pmp->info.path_to_root); + ret = pp1db_get(&pp1db, NULL, &pmpmi->num_records, pmp->info.path_to_root); if (ret) { goto exit_this; } @@ -657,7 +657,7 @@ goto exit_this; } - ret = pp1db_get(&pmpmi->pp1db, pmpmi->records, &pmpmi->num_records, pmp->info.path_to_root); + ret = pp1db_get(&pp1db, pmpmi->records, &pmpmi->num_records, pmp->info.path_to_root); if (ret) { goto exit_this; } @@ -665,12 +665,13 @@ } exit_this: - pp1db_finish(&pmpmi->pp1db); + pp1db_finish(&pp1db); return ret; } static uint32_t pmpmusic_close(pmp_music_t* music) { + pp1db_t pp1db; result_t ret = 0; pmp_t* pmp = music->pmp; pmp_internal_t* pmpi = (pmp_internal_t*)pmp->instance; @@ -678,15 +679,15 @@ static const ucs2char_t plp_ext[] = {'.','p','l','p',0}; // Initialize PP1DB. - pp1db_init(&pmpmi->pp1db, pmpi->decl->hdr_initproc); + pp1db_init(&pp1db, pmpi->decl->hdr_initproc); if (pmp->flag & PMPOF_MUSIC_DB_WRITE) { ucs2char_t hdr[MAX_PATH]; - pp1db_set(&pmpmi->pp1db, pmpmi->records, pmpmi->num_records, pmp->info.path_to_root); + pp1db_set(&pp1db, pmpmi->records, pmpmi->num_records, pmp->info.path_to_root); set_filenames(hdr, pmp); - ret = pp1db_write(&pmpmi->pp1db, hdr); + ret = pp1db_write(&pp1db, hdr); if (ret) { goto exit_this; } @@ -698,7 +699,7 @@ for (i = 0;i < pmpmi->num_playlists;++i) { const pmp_playlist_t* pl = &pmpmi->playlists[i]; if (pp1db_playlist_write( - &pmpmi->pp1db, + &pp1db, pl->name, pl->entries, pl->num_entries, @@ -706,7 +707,7 @@ pmp->info.path_to_playlist, plp_ext ) != 0) { - pp1db_finish(&pmpmi->pp1db); + pp1db_finish(&pp1db); ret = PMPERR_WRITE; goto exit_this; } @@ -714,7 +715,7 @@ } exit_this: - pp1db_finish(&pmpmi->pp1db); + pp1db_finish(&pp1db); return ret; } @@ -752,8 +753,30 @@ static result_t pmpmusic_dump(pmp_music_t* music, FILE *fp, int level) { - pmp_music_internal_t* pmpmi = (pmp_music_internal_t*)music->instance; - return pp1db_repr(&pmpmi->pp1db, fp, level); + pp1db_t pp1db; + result_t ret = 0; + pmp_t* pmp = music->pmp; + pmp_internal_t* pmpi = (pmp_internal_t*)pmp->instance; + ucs2char_t hdr[MAX_PATH]; + + // Initialize PP1DB. + pp1db_init(&pp1db, pmpi->decl->hdr_initproc); + + // Read the music database. + set_filenames(hdr, pmp); + ret = pp1db_read(&pp1db, hdr); + if (ret) { + goto exit_this; + } + + ret = pp1db_repr(&pp1db, fp, level); + if (ret) { + goto exit_this; + } + +exit_this: + pp1db_finish(&pp1db); + return ret; } static result_t pmpmusic_set_playlists(pmp_music_t* music, const pmp_playlist_t* playlists, uint32_t num_playlists) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |