Added Usage help, allow a custom config-file, provide better feedback
with unable to read logs or write to media directory. Fixed log parsing
to only look for pairing success or failure after most recent remote
discovery to allow repeated pairing attempts (possibly with different
remotes). Better timeout handling, especially as FreeBSD has a delay
in processing the pairing file.
Added various macros to check return values and log any errors and abort
if the call fails.
Updated logging to handle early errors before logging initialized.
when scanning spotify through the web api
The goal is to reduce the artist/album cluttering that happens because
of the users spotify playlists. If 'artist_override' is true, all tracks
not in a saved album are treated as part of a compilation giving them
the configured album-artist (e. g. "Various artists"). I
'album_override' is true, tracks not in a saved album will use the
playlistname as albumname.
Builds different configuration with scan-build reporting failure if
scan-build found issues. Due to the ANTLR3 generated files the checker
deadcode.DeadStores needs to be disabled or all builds will fail.
- Result of operation is garbage or undefined in dacp_reply_cue_play
- Uninitialized argument value in dacp_reply_playqueuecontents
- Uninitialized argument value in queue_fetch_byposrelativetoitem
forked-daapd does not support a 1:n relationship between tracks and
artists. Just take the first artist the spotify web api returns
(libspotify does also return only one artist, so this should not
introduce a regression).
Only a cosmetic change to avoid future confusion. sqlite3 ignores the
number of chars given to VARCHAR (see https://sqlite.org/faq.html#q9 ),
a db upgrade is therefor not necessary.
webinterface
Library now offers the function "library_exec_async". This allows
library sources to offer functions that will be executed in
the library thread. Useful to allow partial scans of only one source.
"library" thread
- Implement filescanner as a library_source
- Add library source implementation for spotify
- Move process_media_info to library with small adjustments:
- Remove dependency to F_SCAN_TYPE defines
- Pass data_kind as parameter
- Pass media_kind and compilation as parameter if a source forces a
specific value for these
- Move declaration of scan_ffmpeg to library; add
library_add_playlist_info to library
- Updated function tests to additionally check for libraries/headers under $prefix
- libunistring test now also tests with iconv library on failure (like original)
- Reworked macros to allow nested tests even on the same library