Commit Graph

92 Commits

Author SHA1 Message Date
ejurgensen
283df8aa72 [misc] Consolidate control file reader (e.g. for pairing credentials) into misc.c
- also remove requirement to enter device name in .remote file
2017-06-14 23:49:18 +02:00
chme
626c77046c [spotify] Fix empty spotify playlists 2017-04-10 09:33:22 +02:00
chme
bdd08f516f [library] Rename 'library_process_media' to 'library_add_media' 2017-03-19 18:30:46 +01:00
chme
dadba23efc Refactor library scan of media files
Remove the data_kind specific parts out of the general library functions
and into their (library) source specific functions.
2017-03-19 18:30:46 +01:00
chme
247abec88f [spotify] Only create spotify playlist folder after successful login
Before creating the folder there should be either a valid api token or a
valid libspotify session.
2017-03-11 09:44:54 +01:00
chme
00e5e098d4 [spotify] Purge spotify songs from db before scanning after oauth (#361) 2017-03-04 17:24:42 +01:00
chme
03e9182423 [spotify] Fix usage of "artist_override" config value 2017-02-26 11:04:04 +01:00
ejurgensen
a183463bb2 [spotify] Try to avoid image load callbacks from Spotify after timeouts,
since the artwork struct may have become invalid
2017-02-07 23:23:39 +01:00
chme
1f4e474671 [spotify] Retrieve playlist tracks based on user country (#352)
This avoids adding unplayable items to the library and due to the active
track relinking should make additional tracks playable by linking to a
playable version of the track.
2017-02-05 13:56:12 +01:00
ejurgensen
bbb3322ddc [spotify] Flush audio buffer on playback stop - and since we are
flushing from another thread we use evbuffer_enable_locking() which
in turn adds a requirement for libevent_pthreads to be present
2017-01-30 22:50:02 +01:00
ejurgensen
6af8fa07b4 [spotify] Use timespec_reltoabs instead of internal mk_reltime 2017-01-27 22:35:15 +01:00
ejurgensen
79639c73ed [input] Add Spotify input module 2017-01-27 22:08:56 +01:00
Scott Shambarger
a837389ac5 Minor change: remove unused include, init variable. 2017-01-21 08:51:51 -08:00
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
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
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
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
66bbcf0576 [spotify] Ignore playlist updates with missing uri 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
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
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
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
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
chme
ea56ee91bd [spotify] Add missing virtual path to "Saved Tracks" playlist 2016-12-03 14:53:47 +01:00
ejurgensen
3921cf5732 Merge branch 'spwebapi2' 2016-11-27 22:54:06 +01:00
ejurgensen
bb2a73ddab [spotify] Keep saved tracks through restarts + misc fixing up 2016-11-13 22:13:35 +01:00
chme
2db3318ce7 [player/spotify] Only pass spotify-path to spotify_playback_setup 2016-11-12 09:11:40 +01:00
ejurgensen
3040346a65 [spotify] Use Spotify OAuth and web api to get saved tracks/albums 2016-11-05 13:44:23 +01:00
chme
21d2c95eeb [spotify] Fix return of playback_eot if spotify returns an error 2016-08-06 06:26:38 +02:00
chme
32ac6c2ea9 [commands] Rename commands_cmdloop_break to commands_base_destroy and
free commands_base after breaking the libevent loop
2016-06-11 10:56:27 +02:00
chme
5258ee712c [commands] Added functionality to break the event loop of a command base 2016-06-11 09:52:31 +02:00
chme
5dc1cba5c8 On deinit free event base before freeing command base and pipes 2016-05-21 06:48:02 +02:00
chme
dd192bd99c [spotify] Use generic commands util 2016-05-15 08:42:15 +02:00
ejurgensen
9a56044c77 [misc] Explicitly check for pthread_setname_np/pthread_set_name_np
Seems there is no pthread_setname_np in OpenWrt
2016-05-05 19:39:15 +02:00
ejurgensen
b454a2fd60 [general] Put back support for platforms without pipe2(), see issue #239 2016-03-17 22:20:16 +01:00
ejurgensen
abce1d0eeb Merge pull request #237 from chme/threadnames
Set thread names
2016-03-12 17:18:34 +01:00
chme
98d6db002f Set thread names to make it easier to identify threads during debugging 2016-03-12 14:01:08 +01:00
chme
3e8221e377 [spotify] Add the owner of playlist to the virtual path of a spotify
playlist to avoid duplicate virtual paths
2016-03-12 13:10:08 +01:00
chme
167d5117be [spotify] Remove options to exclude starred songs from the artist/album
override
2016-03-05 12:55:34 +01:00
chme
491bf54fdb [directories/spotify] Init db with disabled spotify-root-directory and
enable only on successful login to spotify
2016-01-31 08:14:03 +01:00
chme
9197f0f64b [spotify] fixup - added error handling 2016-01-24 18:59:05 +01:00