Fix an occasional crash when using .talk MP3 files for directories in ID3 browsing mode. Spotted and fixed by Steve Bavin (plus minor change by me)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10185 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Peter D'Hoye 2006-07-05 23:33:20 +00:00
parent 8436d41b38
commit b44714331b
2 changed files with 4 additions and 5 deletions

View file

@ -22,7 +22,7 @@
int ft_load(struct tree_context* c, const char* tempdir);
int ft_play_filenumber(int pos, int attr);
int ft_play_dirname(int start_index);
int ft_play_dirname(char* name);
void ft_play_filename(char *dir, char *file);
int ft_enter(struct tree_context* c);
int ft_exit(struct tree_context* c);

View file

@ -835,7 +835,7 @@ static bool dirbrowse(void)
if (attr & ATTR_DIRECTORY)
{
DEBUGF("Playing directory thumbnail: %s", currdir);
res = ft_play_dirname(lasti);
res = ft_play_dirname(name);
if (res < 0) /* failed, not existing */
{ /* say the number instead, as a fallback */
talk_id(VOICE_DIR, false);
@ -1298,17 +1298,16 @@ int ft_play_filenumber(int pos, int attr)
return 1;
}
int ft_play_dirname(int start_index)
int ft_play_dirname(char* name)
{
int fd;
char dirname_mp3_filename[MAX_PATH+1];
struct entry *dircache = tc.dircache;
if (audio_status() & AUDIO_STATUS_PLAY)
return 0;
snprintf(dirname_mp3_filename, sizeof(dirname_mp3_filename), "%s/%s/%s",
tc.currdir[1] ? tc.currdir : "" , dircache[start_index].name,
tc.currdir[1] ? tc.currdir : "" , name,
dir_thumbnail_name);
DEBUGF("Checking for %s\n", dirname_mp3_filename);