Commit Graph

3264 Commits

Author SHA1 Message Date
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
ejurgensen
731106276f
Merge pull request #466 from chme/libspotify_remove_scan
[spotify] Remove scanning saved playlist with libspotify
2017-12-25 19:33:41 +01:00
Wolfgang Scherer
a7f9d633a3 [mpd] minimal urlhandlers command 2017-12-24 02:46:40 +01:00
chme
434be28460 [mpd] Support position parameter in command 'addid' 2017-12-22 11:24:43 +01:00
chme
a1372c692e [mpd] Implement 'playlistfind' and 'playlistsearch' 2017-12-22 11:24:43 +01:00
chme
6f4f7c5b16 [mpd] command 'currentsong': report current item if player is stopped 2017-12-22 11:24:43 +01:00
chme
80e0808b18 [mpd] command 'status': report current/next if player is stopped 2017-12-22 11:24:43 +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
4f811ff6e0 [logger] Return early if severity or domain do not match 2017-12-17 12:41:21 +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
471eb9db46 [db] Do not trigger a DATABASE event if db_directory_enable_bypath does
not change the library
2017-12-17 09:13:09 +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
b428760599 [scan] Fix for issue #463, fname not getting updated on file rename
Also modify code style of _enable/_disable functions in db.c
2017-12-16 23:09:29 +01:00
chme
4034582f1a [mpd] Fix 'noidle' command handling
The noidle command did not prevent idle events to be sent to the client
directly when they occured. This resulted e. g. in M.A.L.P. in errors
trying to play an album from the library)
2017-12-16 08:19:45 +01:00
chme
5a57a564a4 [db] Instantly notify about rating changes 2017-12-15 19:08:32 +01:00
chme
e00a4a1995 [cache] Do not rebuild cache on rating change events 2017-12-15 19:08:32 +01:00
chme
e7d6fbb9fc [listener/etc.] Rename LISTENER_STICKER to LISTENER_RATING
Unit there is a real sticker implementation, make it clear, that the
event is only triggered for rating changes.
2017-12-15 19:08:32 +01:00
chme
c00febd8ac [library] remove initialization of globals to zero 2017-12-15 19:08:32 +01:00
chme
9f1568349b [mpd] minor cleanup 2017-12-15 19:08:32 +01:00
chme
9165cfc5da [mpd] Return virtual path to clients in 'sticker find' 2017-12-15 19:08:32 +01:00
chme
dec625ec30 [mpd] Implement 'sticker find' with operator/value parameters 2017-12-15 19:08:32 +01:00
chme
b17e50438c [db] Comment for DB_FILES_RATING_MAX 2017-12-15 19:08:32 +01:00
chme
7b04787fc1 [mpd] Check upper bound for sticker 'rating' 2017-12-15 19:08:32 +01:00
chme
7a916c84a2 [mpd] Refactor sticker commands 2017-12-15 19:08:32 +01:00
chme
ef52f4ddc0 Rework user rating updates 2017-12-15 19:08:32 +01:00
Wolfgang Scherer
bbc5d3787e [mpd] rating sticker translator 2017-12-15 19:08:32 +01:00
chme
88f7d4601d [db] Fix adding urls to the queue that are not in the library 2017-12-13 22:02:38 +01:00
chme
4ebc6da0ee [ws] Notify about player status, options, volume, queue changes 2017-12-13 21:44:33 +01:00
chme
5cb33189df [jsonapi] New endpoints for player.html
- control playback and retrieve player status
- get current queue
- set shuffle, repeat, consume mode
- set volume
2017-12-13 21:44:33 +01:00
ejurgensen
10233dcad3 [chromecast] Check for null address from getifaddrs() (credit @yantoz, issue #455) 2017-12-10 19:50:57 +01:00
chme
0b07cff633 [player] Only update queue item in metadata_update_cb on changed
metadata. This avoids an unnecessary update query and queue change
notification (leading to clients requesting the unchanged queue).
2017-12-09 11:01:41 +01:00
chme
2ee02d407b [mpd] Add support for version and ranges to 'plchanges' and
'plchangesposid'
2017-12-09 11:01:41 +01:00
chme
912635e737 [db] Update queue_version for changed queue items 2017-12-09 11:01:41 +01:00
chme
91573752d9 [db] Update v19.05 to v19.06
- queue table: define id column as AUTOINCREMENT (requires drop+create)
- queue table: add column queue_version
- files table: update http-stream virtual paths (constructing the
virtual path for http-streams changed in pr #449, this migrates existing
databases to be consistent to the newly created paths)
2017-12-09 11:01:41 +01:00
chme
7083c65314 [main/httpd] Configurable web root directory over cli parameter 2017-12-03 10:46:50 +01:00
chme
8776aa36e2 [player] Trigger SPEAKER event after finishing the command speaker_set 2017-12-03 10:46:03 +01:00
chme
d839e8cabb [listener/player] Adjust code comment for LISTENER_SPEAKER event 2017-12-03 10:46:03 +01:00
chme
1689182432 [player/raop] Trigger the SPEAKER event if device verification
succeeded/failed
2017-12-03 10:46:03 +01:00
chme
eece4ce768 [ws] Listen and notify about output events 2017-12-03 10:46:03 +01:00
chme
80c1ef3114 [jsonapi] New endpoints for outputs and device verification 2017-12-03 10:46:03 +01:00
chme
f696229fff [player/dacp/mpd] Pass additional information to speaker enum callback 2017-12-03 10:46:03 +01:00
Wolfgang Scherer
b363c0dac2 [mpd] Consistent playlist name setup (#450) 2017-12-02 16:45:11 +01:00
Wolfgang Scherer
bb451802d2 [db] Queue notification when metadata changes (#448) 2017-12-02 16:44:29 +01:00
Wolfgang Scherer
0d006904da [scan] Consistent HTTP virtual paths (#449) 2017-12-02 16:44:01 +01:00
ejurgensen
617a0992d0 [http] Align indentation with the rest of the code 2017-11-27 17:53:59 +01:00