* Check all contributor types when determining the artist.

This commit is contained in:
Justin Maggard 2009-03-26 21:06:51 +00:00
parent 6d5ef54c06
commit 9a481196fc
3 changed files with 13 additions and 9 deletions

View File

@ -130,7 +130,7 @@ GetAudioMetadata(const char * path, char * name)
sqlite_int64 ret; sqlite_int64 ret;
char *sql; char *sql;
char *title, *artist = NULL, *album = NULL, *genre = NULL, *comment = NULL, *date = NULL; char *title, *artist = NULL, *album = NULL, *genre = NULL, *comment = NULL, *date = NULL;
int free_flags = 0; int i, free_flags = 0;
sqlite_int64 album_art = 0; sqlite_int64 album_art = 0;
char art_dlna_pn[9]; char art_dlna_pn[9];
struct song_metadata song; struct song_metadata song;
@ -197,15 +197,19 @@ GetAudioMetadata(const char * path, char * name)
{ {
title = name; title = name;
} }
if( song.contributor[ROLE_ARTIST] ) for( i=ROLE_START; i<N_ROLE; i++ )
{ {
artist = song.contributor[ROLE_ARTIST]; if( song.contributor[i] )
{
artist = song.contributor[i];
artist = trim(artist); artist = trim(artist);
if( index(artist, '&') ) if( index(artist, '&') )
{ {
free_flags |= FLAG_ARTIST; free_flags |= FLAG_ARTIST;
artist = modifyString(strdup(artist), "&", "&amp;amp;", 0); artist = modifyString(strdup(artist), "&", "&amp;amp;", 0);
} }
break;
}
} }
if( song.album ) if( song.album )
{ {

View File

@ -482,7 +482,7 @@ _get_asffileinfo(char *file, struct song_metadata *psong)
if(_asf_load_string(fp, ValueType, ValueLength, buf, sizeof(buf))) if(_asf_load_string(fp, ValueType, ValueLength, buf, sizeof(buf)))
{ {
if(buf[0]) if(buf[0])
psong->contributor[ROLE_ARTIST] = strdup(buf); psong->contributor[ROLE_ALBUMARTIST] = strdup(buf);
} }
} }
else if(!strcasecmp(buf, "Description") || !strcasecmp(buf, "WM/Track")) else if(!strcasecmp(buf, "Description") || !strcasecmp(buf, "WM/Track"))

View File

@ -1321,7 +1321,7 @@ SendResp_dlnafile(struct upnphttp * h, char * object)
DPRINTF(E_WARN, L_HTTP, "%s not found, responding ERROR 404\n", object); DPRINTF(E_WARN, L_HTTP, "%s not found, responding ERROR 404\n", object);
sqlite3_free_table(result); sqlite3_free_table(result);
Send404(h); Send404(h);
goto error; return;
} }
/* Cache the result */ /* Cache the result */
last_file.id = id; last_file.id = id;