Commit Graph

3750 Commits

Author SHA1 Message Date
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
chme
00efed7988 [filescanner] Fix scanning of fifos 2017-01-14 13:59:14 +01: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
ejurgensen
89b715aeba [docs] README update - playlist artwork 2017-01-06 19:49:09 +01:00
ejurgensen
27946a472b [artwork] Add handler for playlist local artwork (for http items)
- ref https://www.raspberrypi.org/forums/viewtopic.php?p=1090166#p1090166
2017-01-06 19:35:05 +01:00
Scott Shambarger
ce4ef0aa23 [config] Many updates to configuration and feature checks
- Added custom checks for libraries and pkgconfig modules that test library
 presence with additional checks for use of headers and functions with
 given options.  Also support correct additional feature library checks
 using provided flags.
- Added custom enable/disable feature macros to simplify their use.
- Use custom CFLAGS and LIBS variables for Makefiles to simplify maintenance.
- Update many feature checks from platform to function.
- Streamline many function checks.
- Correctly check gnutls, gcrypt and gpg-error libraries.
- Fix chromecast and spotify config and compile on FreeBSD
- Added inotify, signalfd and kqueue, and byte swap checks.
- Many clarifications of error messages.
- Correct json-c checks to properly use supplied CFLAGS.
- Correct many quoting inconsistencies
- Use __DATE__ in place of BUILDDATE
- Use full path for gperf and antlr3
- Remove unnecessary CFLAGS
- Added tests for pthread_setname_np parameters
- Added tests for clock_gettime and timer_settime
- Added tests for time.h
- Test if pthread, dl and rt libs are required/available.
- Updated checks for libunistring
2017-01-06 00:44:18 -08:00
ejurgensen
b7c4256df4 [db] Refactor db_build_query_* to reduce redundancy 2017-01-04 22:29:47 +01:00
Scott Shambarger
8ead7ea3b8 [config] configure.ac checks required features, updated porting
Added a real config.rpath
Fixed build date calc for BSD
Require some needed headers at configure time
Correctly check libav functions using pkg-config flags
Made checks for some Linux features available on other ports
Fixed porting issue with antlr dep files
Added default HOST_NAME_MAX if not defined
Added missing libav header
2016-12-29 16:14:22 -08:00
ejurgensen
ce998fb38a [rtsp] Additional logging 2016-12-29 21:30:47 +01:00
ejurgensen
80fe738583 [mdns] Fix for missing HOST_NAME_MAX on FreeBSD 2016-12-29 19:30:04 +01:00
ejurgensen
82470b5168 [filescanner] Ignore spotify/lastfm/remote during startup, they can give DB deadlocks
- see https://www.raspberrypi.org/forums/viewtopic.php?p=1087137#p1087137
2016-12-28 22:53:00 +01:00