Commit Graph

3500 Commits

Author SHA1 Message Date
ejurgensen
d850c2e691 [xcode] Add OPUS encoding profile for RTP Chromecasting 2019-03-18 23:06:08 +01:00
chme
f85df07308 [jsonapi] Respect order defined in smartpl expression in queue/items/add 2019-02-23 11:02:12 +01:00
chme
e078ba8ed0 [jsonapi] Use same order by clause when adding queue items by
expressions as is used in search tracks by expression
2019-02-23 11:02:12 +01:00
chme
a3f2551eea [jsonapi] Support starting playback from position in queue/items/add 2019-02-23 09:41:58 +01:00
chme
435df3fe8f [spotify] Add support for adding spotify artist tracks to the queue 2019-02-20 10:10:53 +01:00
chme
3d494d5f58 [spotify] Switch to new web api playlist endpoints
The old playlist endpoints containing the user are deprecated and will
eventually be removed
(https://developer.spotify.com/community/news/2019/01/15/update-changes-to-playlist-uris/).
2019-02-20 09:30:02 +01:00
chme
7a2ba572f8 [streaming] Remove timeout for mpeg stream requests
Remove the need for clients to regularly reconnect to the mp3 stream. As
long as the connection is open, we are sending mp3 stream data.
2019-02-14 12:15:11 +01:00
chme
3343e9cfc8 [jsonapi] Rename queue item "albumartist_id" to "album_artist_id"
Keeps it in sync with the naming in the track object. Also introduce a
helper function to add an int64 as a json string.
2019-02-14 08:22:50 +01:00
Christian Meffert
90a7c120c3
Merge pull request #689 from chme/web_podcasts
Improve podcasts views in player web interface
2019-02-13 15:47:22 +01:00
Christian Meffert
a38a21e21e
Merge pull request #686 from whatdoineed2do/db-q-now-playing-modal
[db,web-src] support links to album,artist from queue item modal like others modals
2019-02-13 15:46:51 +01:00
whatdoineed2do/Ray
17022c9103 [jsonapi] expose albumid/artistid persistent id on queue object 2019-02-12 09:21:39 +00:00
whatdoineed2do/Ray
7e02eb510d [db] add songartistid to queue tbl 2019-02-12 09:21:39 +00:00
chme
8840a65ee6 [smartpl] Add "songalbumid" as valid query field 2019-02-10 08:21:15 +01:00
ejurgensen
b1622b5b91
Merge pull request #687 from chme/spotify_artwork_2
[spotify/artwork] Add spotify webapi as an additional artwork source
2019-02-09 11:07:47 +01:00
chme
9b8bff45ab [artwork/http] Check response code and content type
Extends the http_client_ctx to hold the response code for a request.
Also adds the content type header, if it was a https request (using
libcurl instead of libevent)
2019-02-09 08:35:20 +01:00
ejurgensen
cb49554608 [raop] Fix forgotten include of conffile.c in commit 18acb73 (fixes #688) 2019-02-07 21:14:13 +01:00
chme
733a521df8 [spotify/artwork] Add spotify webapi as an additional artwork source 2019-02-05 16:04:08 +01:00
chme
0ded6d63bf [db/jsonapi] New admin value for Last-Modified in JSON API header
This adds a new timestamp value "db_modified" into the admin db table.
In addition to the existing "db_update" admin value, this value is also
updated if rating, play-/skip-count or seek changes for a
media_info_file (files db table).

This should improve the caching behavior in clients of the JSON API
(especially the player web interface) in refreshing its data if some of
this values changes.
2019-01-31 09:42:53 +01:00
chme
3bc15e1278 [jsonapi] Add endpoint to update a tracks rating and/or play_count
New endpoint is PUT api/library/tracks/[id] and supported query
parameters are:
- rating: with values between 0 and 100
- play_count: with values "reset" (resets play_count and skip_count) or
"increment" (increments play_count)
2019-01-31 09:42:53 +01:00
chme
7d0e48eb0e [db] Add support for resetting play- and skip-count 2019-01-31 09:42:53 +01:00
chme
b9a7ce7dd2 [jsonapi] Add endpoint to retrieve details for a single track by its id 2019-01-31 09:42:53 +01:00
ejurgensen
c70f96fdec [db] Fix integer overflow in bind_mfi (ref issue #683)
Also drop DB_TYPE_CHAR since it's not really being used.
2019-01-30 23:34:00 +01:00
ejurgensen
7abf68200d [scan] Fix parsing of iTunes "Play Date" tag (fixes #683)
"Play Date" tag was seconds since 1904 (an Apple Mac HFS+ timestamp), not a
Unix timestamp as we assumed. Seems Apple themselves realised that wasn't a
great idea (+ not a proper plist date type), and therefore provide "Play Date
UTC" as an alternative.
2019-01-30 22:32:46 +01:00
chme
81753d44a7 [mpd] Report support for protocol version 0.20 2019-01-28 22:40:25 +01:00
chme
f77c216650 [mpd] Refactor parsing filter/window arguments and add support for
"group" argument in "list" command
2019-01-28 22:40:25 +01:00
chme
e015032292 [mpd] Add duration attribute with millisecond precision 2019-01-28 22:40:25 +01:00
chme
5bd94df4a6 [mpd] Add listfiles command
For now listfiles simply returns the same result as lsinfo (no support
for listing files not part of the library)
2019-01-28 22:40:25 +01:00
chme
937d1e3f5f [db] Add "group" attribute to query_params and allow grouping files 2019-01-28 22:40:25 +01:00
chme
06aaacbe8f [smartpl] Fix wrong where clause for date field queries with "before"
keyword
2019-01-28 20:46:04 +01:00
chme
9fff02841b [jsonapi] Fix error in web interface files-view if the library directory
end with a trailing slash
2019-01-28 15:00:18 +01:00
chme
238361ea25 [player] Fix segfault when getting single speaker/output by id 2019-01-26 17:50:30 +01:00
chme
b000803fe3 [misc] Add compiler hint to check format parameters 2019-01-26 10:08:11 +01:00
chme
1f2b608d62 [mpd] Fix wrong number of format parameters for safe_asprintf
Fixes a segfault in cases where the default playlist directory config
(in the mpd section of the configuration file) was set/activated.
2019-01-26 10:07:48 +01:00
chme
116c315a84 [player] Rename struct spk_info to player_speaker_info 2019-01-22 17:47:15 +01:00
chme
343c583229 [jsonapi] Support changing volume by the given step (increase/decrease
volume)
2019-01-21 11:11:20 +01:00
chme
db7b9c689b [player] Add command to get a single speaker info by its id 2019-01-21 11:11:20 +01:00
chme
c165c55b5b [jsonapi] Add player/toggle endpoint
Toggles playback state depending on the current player state:
- playing --> pause
- paused, stopped --> play
2019-01-20 12:03:50 +01:00
ejurgensen
741825d086 [cast] Add option to exclude speakers (closes #659) 2019-01-09 20:26:31 +01:00
chme
fb60a05228 [jsonapi] Add support for "playback", "clear" and "shuffle" parameters
in
"queue/items/add" endpoint
2019-01-05 07:21:36 +01:00
chme
77a19a6df9 [jsonapi] Add checks for failed playback start and return error code 2019-01-02 09:51:54 +01:00
chme
0f4cbb3375 [http/jsonapi] Use strtok_r instead of strtok 2019-01-02 09:51:54 +01:00
chme
f23732945b [websocket] Support "database" notifications 2019-01-02 09:51:54 +01:00
chme
b3853ef0f3 [jsonapi] Check for empty "uris" parameter in queue/items/add (prevents
a segfault) and log failed requests in error log
2019-01-02 09:51:54 +01:00
chme
2ead24a2f7 [jsonapi] Add optional expression parameter to queue/items/add endpoint
Adds support to add tracks by a smart pl query expression
2019-01-02 09:51:54 +01:00
chme
ca99bf8718 [jsonapi] Sort files by filename and return directories in api/config 2019-01-02 09:51:54 +01:00
ejurgensen
cd7af46c36 [db] Generic version of db_drop_indices/triggers + fix memleak
Memleak in db_drop_triggers() in error case (array "index" not being freed)
2019-01-01 21:34:29 +01:00
chme
010e8b2959 [db] Fix missing creation of triggers for persistent ids in db init 2019-01-01 09:38:02 +01:00
ejurgensen
19c39bf133 [scan] Always use compilation_artist for tracks in compilation dir
Reason is that tracks in compilation dir are not to be trusted when it comes
to album_artist.

See afee99d5db (commitcomment-31807556).
2018-12-31 15:55:49 +01:00
ejurgensen
9929832b5f [db] Don't zero play_count, skip_count, seek, time_played, time_skipped on update
If a file gets updated/rescanned we generally don't want to reset the above
values. This commit adds DB_FLAG_NO_ZERO, which marks a field so that
db_file_update() will only update it if the new value is non-zero (i.e. the
caller probably has a "better" value).
2018-12-31 15:55:49 +01:00
ejurgensen
734b4e9851 [db] Transfer some library tag fixup to the db's generic fixup
Transfer setting defaults for media_kind and item_kind. Also sets
default media_kind for queue_items.
2018-12-31 15:55:49 +01:00