ejurgensen
4ab734343c
[-] Free events on exit (turns out event_base_free does not free them)
...
Credit @whatdoineed2do, ref. pr #797
2019-09-09 22:23:00 +02:00
ejurgensen
87ca6363ae
[player/input] Refactor - WIP
...
* Open input sources earlier
* Gapless playback
* Remove fixed 44100/16 from player
* Complete restructure player internals
2019-03-18 23:06:08 +01:00
ejurgensen
7048a72d86
[spotify] Use media_quality instead of input_quality
...
and allow more than 2 channels ... probably wouldn't actually work, hard to test
2019-03-18 23:06:08 +01:00
ejurgensen
1696fc3384
[input] Adapt input_buffer so it can handle dynamic quality (sample rates etc)
...
Still WIP, player and outputs cannot handle this yet
2019-03-18 23:06:08 +01:00
ejurgensen
9182597605
[input/xcode] Write to input buffer with the sources native sample rate/format
...
Still WIP at this point since the player and output can't use the use improved
quality yet, and because rtptimes etc. are likely incorrect
2019-03-18 23:06:08 +01:00
chme
d562cb9b6b
[spotify] Retry playback setup if song is still loading
2018-05-10 07:02:15 +02:00
chme
cfc5fef88d
[spotify] Refactor spotify_webapi
2018-05-09 22:47:37 +02:00
chme
eaab6f887b
[spotify] Decoupling of the spotify webapi from libspotify integration
...
Separation of scanning Spotify songs into the library (spotify_webapi.c)
and playing Spotify songs through libspotify (spotify.c).
2018-05-09 22:47:37 +02:00
ejurgensen
4802823f3c
Revert "[spotify/artwork] Load artwork for spotify through the wep api" and "[spotify] Thread safety for the webapi access"
...
Wait with this until it becomes necessary or we can achieve same performance as libspotify
This reverts commit 997b4da4ad
and 2da993cc7b
2017-12-27 18:51:11 +01:00
chme
2da993cc7b
[spotify] Thread safety for the webapi access
...
The web api might be accessed from different threads (library, worker,
dacp), therefor protect from concurrently running refresh-token requests
(accessing the globals in spotify_webapi.c)
2017-12-25 19:52:40 +01:00
chme
997b4da4ad
[spotify/artwork] Load artwork for spotify through the wep api
2017-12-25 19:52:40 +01:00
chme
4d995c8501
[spotify] Add missing init/destroy of status_lck mutex
2017-12-22 09:53:00 +01:00
chme
210e6228bc
[spotify] Prevent duplicate scan on startup
...
The logged_in callback is called during relogin in the initscan.
Additionally initscan explicitly starts the scan leading to a duplicate
scan run.
To prevent this from happening removed the scan call in the logged_in
callback and split the spotify_login_user function into a private
function (without scan) and a public function (with scan).
2017-12-18 22:46:09 +01:00
chme
83d8a55701
[spotify] Make libspotify login synchronous
...
Scanning saved albums/playlists over the webapi requires a logged in
libspotify session. To ensure, that the login process finished before
starting the webapi scan, the login needs to be synchronous.
2017-12-17 09:39:45 +01:00
chme
64f574cd83
[spotify] Fix logdomain in log statements
2017-12-17 09:15:32 +01:00
chme
1b8b0b2d83
[spotify] Only scan saved albums and playlist if webapi token is valid
...
and libspotify login succeeded
Each saved track needs to be registered with libspotify otherwise
playback of this track will fail. This makes sure we only add saved
tracks to the library that are playable.
Also attempt a rescan if libspotify login succeeded. With this change it
does not matter if a user first logs into libspotify and then authorizes
the webapi access or the other way around.
2017-12-17 09:12:01 +01:00
chme
418f808d2e
[spotify] Remove scanning playlists with libspotify
2017-12-17 08:08:55 +01:00
ejurgensen
7b97503f04
[spotify] Protect against weird artwork data size from libspotify
...
For some reason libspotify sometimes returns >1GB sizes?
2017-11-11 22:20:09 +01:00
ejurgensen
4928d2c155
[spotify] Replace db_file_stamp_bypath with db_file_ping
2017-10-17 23:10:21 +02:00
ejurgensen
d6b30f5a64
[spotify] Add MEDIA_KIND_MUSIC and move DATA_KIND_SPOTIFY
2017-10-17 23:10:21 +02:00
ejurgensen
c8edd2ff64
[spotify] Use db_file_ping_bypath() + refactor + fix small memleak
...
Align with other scanners to use 1-query db_file_ping_bypath(). Also refactor to
reduce indent level and fix memleak of mfi->album + mfi->album_artist.
2017-10-17 23:10:21 +02:00
chme
ecfea82234
[httpd/spotify] Redirect to admin.html, remove old oauth interface
2017-09-15 18:49:04 +02:00
chme
a832e40bea
[spotify] Add function spotify_login_user
2017-09-15 06:42:21 +02:00
chme
29c0264444
[spotify] Add spotify status info and notify about status changes
2017-09-15 06:42:21 +02:00
chme
f449204ea2
[spotify] Add support for calling sp_session_user_name
2017-09-15 06:42:21 +02:00
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