diff --git a/forked-daapd.conf.in b/forked-daapd.conf.in index 28af1236..44e403fc 100644 --- a/forked-daapd.conf.in +++ b/forked-daapd.conf.in @@ -95,11 +95,13 @@ library { # (changing this setting only takes effect after rescan, see the README) compilations = { "/Compilations" } - # Compilations usually have many artists, and sometimes no album arist. - # If you don't want every non album artist to be listed in artist views, - # you can set a single name which will be used for all compilations. + # Compilations usually have many artists, and sometimes no album artist. + # If you don't want every artist to be listed in artist views, you can + # set a single name which will be used for all compilation tracks + # without an album artist, and for all tracks in the compilation + # directories. # (changing this setting only takes effect after rescan, see the README) - compilation_artist = "Various artists" + compilation_artist = "Various Artists" # If your album and artist lists are cluttered, you can choose to hide # albums and artists with only one track. The tracks will still be diff --git a/src/db_init.c b/src/db_init.c index 68628750..595d23ae 100644 --- a/src/db_init.c +++ b/src/db_init.c @@ -66,7 +66,7 @@ " artwork INTEGER DEFAULT 0," \ " rating INTEGER DEFAULT 0," \ " play_count INTEGER DEFAULT 0," \ - " skip_count INTEGER DEFAULT 0," \ + " skip_count INTEGER DEFAULT 0," \ " seek INTEGER DEFAULT 0," \ " data_kind INTEGER DEFAULT 0," \ " media_kind INTEGER DEFAULT 0," \ @@ -76,7 +76,7 @@ " time_added INTEGER DEFAULT 0," \ " time_modified INTEGER DEFAULT 0," \ " time_played INTEGER DEFAULT 0," \ - " time_skipped INTEGER DEFAULT 0," \ + " time_skipped INTEGER DEFAULT 0," \ " disabled INTEGER DEFAULT 0," \ " sample_count INTEGER DEFAULT 0," \ " codectype VARCHAR(5) DEFAULT NULL," \ diff --git a/src/library/filescanner.c b/src/library/filescanner.c index 4e085cc2..72681596 100644 --- a/src/library/filescanner.c +++ b/src/library/filescanner.c @@ -509,14 +509,18 @@ process_regular_file(const char *file, struct stat *sb, int type, int flags, int else { mfi.data_kind = DATA_KIND_FILE; + mfi.file_size = sb->st_size; if (type & F_SCAN_TYPE_AUDIOBOOK) mfi.media_kind = MEDIA_KIND_AUDIOBOOK; else if (type & F_SCAN_TYPE_PODCAST) mfi.media_kind = MEDIA_KIND_PODCAST; - mfi.compilation = (type & F_SCAN_TYPE_COMPILATION); - mfi.file_size = sb->st_size; + if (type & F_SCAN_TYPE_COMPILATION) + { + mfi.compilation = 1; + mfi.album_artist = safe_strdup(cfg_getstr(cfg_getsec(cfg, "library"), "compilation_artist")); + } ret = scan_metadata_ffmpeg(file, &mfi); if (ret < 0)