Commit Graph

4815 Commits

Author SHA1 Message Date
chme
4f2755facc [htdocs] Rebuild new player web interface v0.5.5 2019-08-31 10:43:09 +02:00
chme
130d94ef25 [web-src] Prepare next version for player web interface 0.5.5 2019-08-31 10:42:50 +02:00
Christian Meffert
7925639f5b
Merge pull request #790 from chme/admin_settings
Introduce new settings for displaying the composer in the now playing page
2019-08-31 09:05:49 +02:00
chme
862ad928b1 [README] Update JSON API readme with new settings endpoints 2019-08-31 08:43:53 +02:00
chme
8ae382d818 [web-src] Show composer in "now playing" page depending on the settings
for "show_composer_now_playing" and "show_composer_for_genre"
2019-08-31 08:08:36 +02:00
chme
9ab1677f1f [web-src] Add a settings page to the player web interface to change web
interface specific options
2019-08-31 08:08:36 +02:00
Christian Meffert
73470113b6
Merge pull request #795 from whatdoineed2do/jsonapi-memleak
[jsonapi] potential memleaks on query_params.filter object
2019-08-30 19:31:44 +02:00
whatdoineed2do/Ray
6ad3d8dbef [jsonapi] potential memleaks on query_params.filter object 2019-08-28 21:35:29 +01:00
ejurgensen
ef9c0117c9 [input] Fix pipe playback bringing cpu to 100%
When pipe playback is started, but no data is written to the pipe, the input
loop would bring the cpu to 100%. This fix limits the loop like it was before
player refactor.
2019-08-28 22:23:11 +02:00
ejurgensen
ef0a194644
Merge pull request #792 from chme/nowplaying_artwork
Fix for Remote not showing nowplaying artwork for Spotify tracks
2019-08-25 22:41:36 +02:00
chme
a5c2d6c0f8 [spotify] Return widest image if no max width is given 2019-08-25 11:24:14 +02:00
chme
2cc310b646 [jsonapi] Expose reading and updating settings through the JSON API 2019-08-25 10:39:16 +02:00
chme
02dd0a9445 [settings] Add settings component
This adds a new settings component for user configurable options that
can be changed through the JSON API.
The settings are stored in the admin db table and not in the conf-file.
2019-08-25 10:39:16 +02:00
ejurgensen
78373af201 [cast] Add a simple delay to stream to a have little bit of sync
Since it is unknown how to do real sync on Chromecast, this commit instead adds
a primitive delay to the stream, so that it is at least somewhat closer to
Airplay/local audio.

Also some cleanup of unused stuff.
2019-08-23 19:45:17 +02:00
whatdoineed2do
a5987addd4 [db,jsonapi] case insensitive directory/file listing (#784)
* [db,jsonapi] case insensitive directory/file listing

* [jsonapi] file listing of playlist uses same VPATH ordering as per directory and files

* [db,jsonapi] sorting via existing S_VPATH

* [db] replace LOWER with COLLATE NOCASE
2019-08-21 22:54:34 +02:00
ejurgensen
9cb5810e9a [player] Avoid repeated resets on output delay when changing track (issue #781) 2019-08-18 23:12:10 +02:00
ejurgensen
19ba9d106a [input] Buffer full callback should also be made when source reading ends
Otherwise the player will wait infinitely
2019-08-18 23:10:56 +02:00
ejurgensen
b9b2874a2e [player] Possible fix for issue #781 where playback status is incorrect
pb_suspend() + pb_resume() during track changes made the playback status
incorrect, i.e. pb_session.source_list/playing_now would not match what the
input was actually writing. This attempts to solve it by resetting the
session when pb_suspend() is called, so that the input, input_buffer and
source_list come into sync.
2019-08-17 01:44:45 +02:00
ejurgensen
86339eee87 [input] Make input_resume() not reopen tracks that have finished playing
If playback was paused during the very last part of the track, the rest of the
track would be read into the input buffer and the input would be closed. With
this commit the input will not be reopened.

Also allow input_flush to be called with null argument.
2019-08-17 01:37:39 +02:00
ejurgensen
7dfe4c2b65 [daap] Always use S_PLAYLIST ordering for Q_PL (ref issue #785) 2019-08-13 21:35:07 +02:00
ejurgensen
f9bfec180f [raop] Fix possible infinite loop + wrong packet resend (fixes issue #775)
Fixes bugs which were due to incorrect handling of unsigned integer wrap-around:

1. Calling packet_resend() with seqnum + len greater than UINT16_MAX => infinite loop
2. Calling rtp_packet_get() with session->seqnum - seqnum greater than pktbuf_next => wrong packet
2019-08-10 22:41:04 +02:00
ejurgensen
6578f28621 [raop] Logging change to find cause of issue #775 2019-08-09 23:58:45 +02:00
Christian Meffert
7ee9a47783
Merge pull request #783 from chme/spotify_collaborative_playlists
Allow reading of collaborative/shared Spotify playlists
2019-08-04 12:25:53 +02:00
chme
9ba1e24b6c [htdocs] Show message in admin web interface if forked-daapd is missing
a Spotify web API scope
2019-08-03 12:57:14 +02:00
chme
a87059265d [spotify] Require Spotify web API scope playlist-read-collaborative
Also exposes granted and required Spotify web API scope through the
forked-daapd JSON API.
2019-08-03 12:55:53 +02:00
Christian Meffert
6c729673a5
Merge pull request #774 from chme/webupdate
Update player web interface (v0.5.4)
2019-08-03 09:04:30 +02:00
Christian Meffert
d996b1ff09
Merge pull request #772 from whatdoineed2do/smartpl-dynamic-dates-context
[smartpl] generate dynamic dates for SMARTPL queries
2019-08-03 08:51:57 +02:00
ejurgensen
ff9a80dbb9
Merge pull request #782 from whatdoineed2do/streaming-icymeta-overflow
[streaming] potential icy-meta overflow fix (for artist+song title > 4064 bytes)
2019-08-01 17:50:29 +02:00
whatdoineed2do/Ray
50232bc091 [streaming] icy-meta overflow fix (for artist+song title > 4064 bytes) 2019-08-01 12:42:20 +01:00
whatdoineed2do
0941cf51ff [streaming] support sending ICY metadata (title) (#732)
* [streaming] obey Icy-MetaData directive and send icy title

* [streaming] fix 'streaming_sessions' race conditions/dbl frees on shutdown

* [streaming] simplify icy meta sending logic

* [streaming] 'icy request' variable cleanup

* [streaming] icy-meta comment/logging cleanup
2019-07-31 16:34:11 +02:00
ejurgensen
cf173df805 [outputs] Fix issue where RTP packet is not available for retransmit
Check for sequence number did not account for wrap around, so e.g. a
request for seqnum 65335 when first was 65100 and last was 100 would
not work.
2019-07-20 20:37:22 +02:00
chme
772b18479d [smartpl] Refactor appending date expression to sql query 2019-07-14 20:51:46 +01:00
chme
92fdb4e5f9 [htdocs] Rebuild player web interface (v0.5.4) 2019-07-14 10:21:31 +02:00
Chris Lenfert
d63632635c [htdocs] updates web app icons using new custom logo and includes
version number to refresh idevice homescreen icon
2019-07-14 10:21:31 +02:00
chme
883ded7077 [web-src] Fix lint error 2019-07-14 07:29:48 +02:00
chme
24d9dbdc0f [web-src] Allow pausing all http streams 2019-07-14 07:28:35 +02:00
chme
7794716350 [web-src] Update dependencies 2019-07-14 07:20:05 +02:00
ejurgensen
5307c6d94b [player] Fix commit 3e9f8ef, input_resume() must be non-blocking (possibly issue #773) 2019-07-14 00:02:50 +02:00
ejurgensen
2f3ec36c6a [input] Fix for playback pause on http streams
This fixes a bug from commit 37ce8dd6 where seek_http (which is called when
pausing playback) for non-seekable streams would return -1, thus signalling
an error, even though it is not. The player would think that the stream
could not be played and then skip to the next item.
2019-07-12 19:15:31 +02:00
ejurgensen
3e9f8effa0 [player] Better fix for resuming playback af long pause (issue #766)
The fix in commit 3928ab6 broke resuming from an underrun, since it meant that
pb_resume() would flush the input buffer. With this fix it is possible to call
input_resume(), which will not flush the buffer if the source is already open.

Also renamed some functions in player.c for consistency.
2019-07-12 19:11:48 +02:00
whatdoineed2do/Ray
02d4ba1eaa [smartpl] remove dupl code from interval AFTER/BEFORE DATE 2019-07-11 18:48:29 +01:00
whatdoineed2do/Ray
68e601f7e3 [README] date handling clarification 2019-07-11 18:25:01 +01:00
whatdoineed2do/Ray
62201e4128 [smartpl] handle intervals in 'week' as days due to lack of SQLite modifier support 2019-07-11 18:25:01 +01:00
whatdoineed2do/Ray
3dcd826513 [smartpl] date 'interval' handling defered to db/not using potentially inaccurate time_t calcaulations 2019-07-11 18:25:01 +01:00
whatdoineed2do/Ray
d31a8c1e05 [smartpl] generate dynamic dates for SMARTPL queries
For dates that require context (ie today, yesterday, N days ago etc) we want the
underlying SQL to respect the current time when running query;  a query that
requests items for 'today' should only find matches for the time it was run.
Current implementation would generated a fixed date (at the time the SMARTPL is
inserted into db) in the playlist table where as this commit understands the
context of the date.
2019-07-11 18:25:01 +01:00
ejurgensen
d7efd79e14
[docs] Minor README updates 2019-07-10 14:57:40 +02:00
ejurgensen
3928ab6f82 [player] Fix for resuming playback after long pause (issue #766)
After a long pause the input would close the source (due to INPUT_OPEN_TIMEOUT).

This change makes the player restart the input when resuming.
2019-07-09 23:12:20 +02:00
Christian Meffert
e608b763ef
Merge pull request #752 from whatdoineed2do/db-queue-quality
db queue to incl media quality info
2019-07-09 20:19:10 +02:00
whatdoineed2do/Ray
19abbe5d5d [htdocs/web-src/README] review comments fixes 2019-07-09 13:54:59 +02:00
whatdoineed2do/Ray
e0a18082f7 [web-src/jsonapi] move endpoint /api/update as PUT operation 2019-07-09 13:54:59 +02:00