|
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.
|