core/tags/album: Add a pointer to the struct artist
This is needed for album art fetching to get more accurate results for our MusicBrainz query. Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
97c8f80393
commit
0d9b7baff6
|
@ -17,9 +17,10 @@ static struct album *__album_alloc(gchar *name, unsigned int year)
|
|||
struct album *album = g_malloc(sizeof(struct album));
|
||||
|
||||
dbe_init(&album->al_dbe, album);
|
||||
album->al_year = year;
|
||||
album->al_name = name;
|
||||
album->al_lower = string_lowercase(album->al_name);
|
||||
album->al_year = year;
|
||||
album->al_name = name;
|
||||
album->al_lower = string_lowercase(album->al_name);
|
||||
album->al_artist = NULL;
|
||||
|
||||
return album;
|
||||
}
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
|
||||
void tags_init()
|
||||
{
|
||||
album_db_init();
|
||||
artist_db_init();
|
||||
album_db_init();
|
||||
genre_db_init();
|
||||
library_db_init();
|
||||
track_db_init();
|
||||
|
@ -22,6 +22,6 @@ void tags_deinit()
|
|||
track_db_deinit();
|
||||
library_db_deinit();
|
||||
genre_db_deinit();
|
||||
artist_db_deinit();
|
||||
album_db_deinit();
|
||||
artist_db_deinit();
|
||||
}
|
||||
|
|
|
@ -71,6 +71,9 @@ struct db_entry *track_alloc(const gchar *key)
|
|||
track->tr_genre = genre_find(taglib_tag_genre(tag));
|
||||
track->tr_library = library;
|
||||
|
||||
if (track->tr_album->al_artist == NULL)
|
||||
track->tr_album->al_artist = track->tr_artist;
|
||||
|
||||
unplayed_count++;
|
||||
track->tr_count = 0;
|
||||
track->tr_length = taglib_audioproperties_length(audio);
|
||||
|
@ -138,6 +141,9 @@ static struct db_entry *track_read(struct file *file)
|
|||
track->tr_genre = genre_get(genre_id);
|
||||
track->tr_library = library_get(library_id);
|
||||
|
||||
if (track->tr_album->al_artist == NULL)
|
||||
track->tr_album->al_artist = track->tr_artist;
|
||||
|
||||
track->tr_title = file_readl(file);
|
||||
track->tr_lower = string_lowercase(track->tr_title);
|
||||
track->tr_path = __track_key(track->tr_library, file_readl(file));
|
||||
|
|
|
@ -15,11 +15,13 @@
|
|||
#define OCARINA_CORE_TAGS_ALBUM_H
|
||||
|
||||
#include <core/containers/database.h>
|
||||
#include <core/tags/artist.h>
|
||||
|
||||
struct album {
|
||||
unsigned int al_year; /* This album's year. */
|
||||
gchar *al_name; /* This album's name. */
|
||||
gchar *al_lower; /* This album's name (lowercased). */
|
||||
struct artist *al_artist;
|
||||
struct db_entry al_dbe;
|
||||
};
|
||||
|
||||
|
|
|
@ -8,8 +8,8 @@ containers/database
|
|||
containers/index
|
||||
containers/queue
|
||||
filter
|
||||
tags/album
|
||||
tags/artist
|
||||
tags/album
|
||||
tags/genre
|
||||
tags/library
|
||||
tags/track
|
||||
|
|
|
@ -11,8 +11,8 @@ def TagTest(name):
|
|||
return run
|
||||
|
||||
env.UsePackage("taglib_c")
|
||||
res += [ TagTest("album") ]
|
||||
res += [ TagTest("artist") ]
|
||||
res += [ TagTest("album") ]
|
||||
res += [ TagTest("genre") ]
|
||||
res += [ TagTest("library") ]
|
||||
|
||||
|
|
Loading…
Reference in New Issue