Commit Graph

3908 Commits

Author SHA1 Message Date
sshambar b128271656 Merge branch 'master' into fixthreads 2017-01-21 10:27:26 -05:00
Scott Shambarger 8e3797ec43 [threads] Update mutex/cond functions to use new CHECK_ERR macros
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.
2017-01-21 07:11:20 -08:00
chme e092a9ff3e [spotify] Respect settings for 'artist_override' and 'album_override' (#340)
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.
2017-01-21 10:17:33 +01:00
chme 62dd1bb407 [travic-ci] Added configuration file for travis-ci (#339)
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.
2017-01-21 10:13:40 +01:00
ejurgensen 516a6f434c Merge pull request #337 from chme/libraryfix
Fix memory leaks / scan-build issues
2017-01-20 19:15:04 +01:00
chme 6163269832 [dacp/db] Fix issue found with scan-build
- 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
2017-01-20 19:00:11 +01:00
chme 4e869f6fda [dacp] Fix indentation 2017-01-20 19:00:11 +01:00
chme dea5c50b67 [player] Fix memleaks found with scan-build 2017-01-20 19:00:11 +01:00
chme 825236c8bb [spotify_webapi] Fix memory leaks 2017-01-20 19:00:11 +01:00
ejurgensen 583a968775 Merge pull request #331 from chme/library2
Rework library scan / spotify webapi integration
2017-01-18 20:42:08 +01:00
chme a4180a5902 [spotify] Increase log level for skipping playlists during scan 2017-01-18 20:32:02 +01:00
chme e8d6b17784 fix indentation 2017-01-18 20:28:56 +01:00
chme 77086c9b82 [library] Check for init/deinit functions in library source 2017-01-18 20:12:14 +01:00
chme 69c3a9c6dc Add missing log domains 2017-01-18 20:10:18 +01:00
Scott Shambarger 9c50429abc [dnssd] Reworked resolve to use timeout, fixed network order on port 2017-01-17 01:36:03 -05:00
Scott Shambarger 879d9a80aa [osx] Remove incorrect calculations for timer_getoverrun 2017-01-14 23:29:07 -05:00
chme 00efed7988 [filescanner] Fix scanning of fifos 2017-01-14 13:59:14 +01:00
Scott Shambarger bb68d59a6e [osx] Added missing timer/clock functions, support Bonjour mDNS on OSX
Added configure checks needed to detect missing functions on OSX
Added compat clock functions using clock_get_time on OSX
Added compat timer functions using clock_gettime and setitimer on OSX
Added byteswap functions on OSX
2017-01-14 00:56:43 -05:00
Scott Shambarger b54d94fda6 [threads] Added missing initializers, check errors on mutex/cond calls 2017-01-13 17:32:59 -05:00
chme a15923c377 [spotify] Fix for expired spotify access token and some cleanup 2017-01-13 19:20:24 +01:00
chme 528614909c [filescanner/library] Move filescanner to subfolder 2017-01-13 19:02:47 +01:00
chme 9c9c583b81 [library] move declaration scan_metadata_ffmpeg back to filescanner.h 2017-01-13 18:56:37 +01:00
chme 2cfb4b6a28 [spotify] Simplify parsing of artist/album-artist name
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).
2017-01-13 18:56:37 +01:00
chme 03c5ecd690 [spotify] Split into smaller db transactions (do not keep an open
transaction between requests)
2017-01-13 18:56:37 +01:00
chme f632789f8b [spotify] Set missing values for year, artwork, type, codectype,
description and improve logging
2017-01-13 18:56:37 +01:00
chme ab3582dd69 [spotify_webapi] Cleanup: remove unused functions 2017-01-13 18:56:37 +01:00
chme 66bbcf0576 [spotify] Ignore playlist updates with missing uri 2017-01-13 18:56:37 +01:00
chme 8ee3ef5b15 [filescanner] Trigger library-scan on .init-rescan / .full-rescan 2017-01-13 18:56:37 +01:00
chme 510d38c059 [library/filescanner/spotify] Rework full-rescan logic 2017-01-13 18:56:37 +01:00
chme 4e60626749 [db] Add missing purge of directories in db_purge_all 2017-01-13 18:56:37 +01:00
chme 65ce902e3c [db_init] Set admint.value to VARCHAR(255)
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.
2017-01-13 18:56:37 +01:00
chme 99945fa576 [spotify] Rescan of single playlists if update trigger received from
libspotify (Readds "spotify:savedtracks" playlist to avoid deletion of
saved tracks)
2017-01-13 18:56:37 +01:00
chme adac1d3b5f [spotify] Trigger scan after retrieving a valid access token from the
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.
2017-01-13 18:56:37 +01:00
chme ae1a45bacc [library/spotify] Implement rescan in spotify.c and purge old files
after rescan
2017-01-13 18:56:37 +01:00
chme 0bea83cafa [spotify] Scan saved albums and playlist using the spotify web api 2017-01-13 18:56:37 +01:00
chme 1672b67040 [library/filescanner] Move purging of old content to library; Remove
ping for spotify files in filescanner (not needed, either they get
updated through the init-scan or purged)
2017-01-13 18:56:37 +01:00
chme 263edaa8b3 [misc] Helper function safe_strdup (NULL safe strdup) 2017-01-13 18:56:37 +01:00
chme 4bd42dda41 [spotify] Remove loading saved tracks from the webapi (will be readded
later)
2017-01-13 18:56:37 +01:00
chme 1a85257fb3 [spotify] Extract function for preparing directories 2017-01-13 18:56:37 +01:00
chme 5efadb6fc2 [spotify_webapi] Add separate file for accessing the web api 2017-01-13 18:56:37 +01:00
chme 56ce3f9cba [library/filescanner/spotify] Add library source abstraction and new
"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
2017-01-13 18:56:37 +01:00
ejurgensen ca6836f638 [scripts] Add missing linker flags to FreeBSD install script 2017-01-12 22:44:08 +01:00
ejurgensen 785ff21045 Merge pull request #328 from sshambar/fixconfig
Updated configure/makefiles related to Issue #327
2017-01-12 22:41:47 +01:00
ejurgensen 45d513d206 [rtsp] Do not fail if ContentLength has chars after num value (e.g. whitespace) 2017-01-10 21:09:08 +01:00
Scott Shambarger ba5d5f0f4a [config] Add prefix search to library tests, re-test unistring with iconv
- 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
2017-01-10 10:10:09 -08:00
Scott Shambarger 637faa41f4 [config] Just use an empty config.rpath as it's only used by iconv 2017-01-07 13:27:17 -08:00
Scott Shambarger 20e19d9fe9 [config] Fix check for pthread_setname_np on linux 2017-01-06 13:58:02 -08:00
Scott Shambarger c4195239d2 [config] Make macros more robust
- FORK_ macros now correctly ignore non-empty but blank default actions
- Removed test variable left in last commit
2017-01-06 12:49:57 -08:00
ejurgensen 966a81cc77 [db] Fixup - itemcount not required for finding a playlist 2017-01-06 20:03:02 +01:00
ejurgensen 213b58c012 [db] Forgot to add Q_FIND_PL as a playlist query 2017-01-06 19:58:38 +01:00