Commit FS#11776 by Jonas Haggqvist. Enables option to log building the database in order to trouble shoot crashes.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28789 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Giacomelli 2010-12-11 04:30:54 +00:00
parent b3f38bcf63
commit 9788043b11
2 changed files with 25 additions and 0 deletions

View file

@ -2086,6 +2086,16 @@ static bool dbg_screendump(void)
}
#endif /* HAVE_LCD_BITMAP */
extern bool write_metadata_log;
static bool dbg_metadatalog(void)
{
write_metadata_log = !write_metadata_log;
splashf(HZ, "Metadata log %s",
write_metadata_log?"enabled":"disabled");
return false;
}
#if CONFIG_CPU == SH7034 || defined(CPU_COLDFIRE)
static bool dbg_set_memory_guard(void)
{
@ -2360,6 +2370,7 @@ static const struct the_menu_item menuitems[] = {
{ "Dump ATA identify info", dbg_identify_info},
#endif
#endif
{ "Metadata log", dbg_metadatalog },
#ifdef HAVE_DIRCACHE
{ "View dircache info", dbg_dircache_info },
#endif

View file

@ -55,6 +55,7 @@ static bool get_other_asap_metadata(int fd, struct mp3entry *id3)
return true;
}
#endif /* CONFIG_CODEC == SWCODEC */
bool write_metadata_log = false;
const struct afmt_entry audio_formats[AFMT_NUM_CODECS] =
{
@ -291,6 +292,19 @@ bool mp3info(struct mp3entry *entry, const char *filename)
bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
{
const struct afmt_entry *entry;
int logfd = 0;
DEBUGF("Read metadata for %s\n", trackname);
if (write_metadata_log)
{
logfd = open("/metadata.log", O_WRONLY | O_APPEND | O_CREAT, 0666);
if (logfd >= 0)
{
write(logfd, trackname, strlen(trackname));
write(logfd, "\n", 1);
close(logfd);
}
}
/* Clear the mp3entry to avoid having bogus pointers appear */
memset(id3, 0, sizeof(struct mp3entry));