ejurgensen
384b1171d9
[raop] Change device verification so we don't risk stale sesssions
...
Before, if a user never verified the device, we would have a device->session
even though the device was not streaming and was in a failed state.
This solution should be more clean and in line with the overall principle that
we only have a session when communicating with the device.
Also includes a bit of code refactoring.
2020-05-27 23:02:29 +02:00
ejurgensen
138d482510
[dummy] Add capability to mock device verification for testing
2020-05-27 23:02:29 +02:00
ejurgensen
d6ec6afb5b
[outputs] Remove outputs_authorize()
...
Replaced by outputs_device_authorize()
2020-05-26 23:21:06 +02:00
ejurgensen
3cca778419
[player] Stop using outputs_authorize() so it can be removed
...
Use outputs_device_authorize() instead
2020-05-26 23:20:29 +02:00
ejurgensen
d18e49f59b
[jsonapi] Make PUT /api/outputs/x capable of device verification
2020-05-26 22:46:49 +02:00
ejurgensen
18e75c2445
[player] Add player_speaker_authorize()
...
A more straightforward function for device verification, using the new
outputs_device_authorize() function.
2020-05-26 22:45:38 +02:00
ejurgensen
2fa2d33602
[outputs] Add a more standard device authentication function
...
outputs_authorize() has two issues, one that the caller can't specify device
(problem if there are two devices waiting for verification), the other that it
didn't offer a standard callback, so difficult to catch failure/success.
2020-05-26 22:42:06 +02:00
ejurgensen
9308f81224
[player] Get rid of listener notifications direct from outputs
...
Try to consolidate in player.c
2020-05-25 22:43:08 +02:00
ejurgensen
010185eab5
[player] Another way of implementing commit 3b033e48
2020-05-25 22:43:04 +02:00
ejurgensen
3b033e48ee
[player] Consolidate listener handling in one player trigger - wip
...
The goal is to make the listener invokation more unified and less ad hoc. Also
reduce risk of blocking/deadlocking player thread.
2020-05-25 22:42:22 +02:00
ejurgensen
3885b92111
[worker] Remove not-so-useful log message
2020-05-25 22:42:22 +02:00
ejurgensen
38ed9e59ad
[listener] Update so that comments etc match actual use
2020-05-25 22:42:22 +02:00
ejurgensen
37521406f3
[input] Split file_http.c input into file.c and http.c
...
The common code is by now limited, and there is a lot of http-specific code.
2020-05-19 23:06:36 +02:00
ejurgensen
8acb2a647d
[http] Don't set ICY metadata if they are just empty strings
...
An empty string will mean that m3u tags won't get used (unless m3u_override is
configured), but they should be used, since they are probably better than an
empty string.
2020-05-19 23:06:36 +02:00
ejurgensen
a69cc65ff6
[input] Download StreamUrl resource async so input thread is not blocked
2020-05-19 23:06:36 +02:00
ejurgensen
28df2fb0f9
[input] Extra comment
2020-05-19 23:06:36 +02:00
ejurgensen
552c201cf3
[artwork] Change cache strategy for artwork_url_get
...
Credit @sfeakes
2020-05-19 23:06:36 +02:00
ejurgensen
b44e5b3ede
[input] Add handler/parser for StreamUrl tags
2020-05-19 23:06:36 +02:00
ejurgensen
ca82857bfe
[artwork] Add artwork_extension_is_artwork() + some fixup/renaming
2020-05-19 23:06:36 +02:00
ejurgensen
d2ac216f47
[http] Change name of struct field for StreamUrl
...
Should not be called artwork_url, since it also can link to other ressources.
Also some fixup, e.g. use new macros.
2020-05-16 00:13:31 +02:00
ejurgensen
d073781445
[json] Add endpoint to delete a setting (reset to defaults)
2020-05-16 00:13:10 +02:00
ejurgensen
bb434297ca
[artwork] Be more forgiving towards incorrect mime content-types
2020-05-15 23:10:43 +02:00
ejurgensen
360e46683b
[input] Add a simple input for testing timing
2020-05-12 22:25:38 +02:00
ejurgensen
e570cbdcbd
[player] Use input progress metadata to update clients
...
Before, we were ignoring progress metadata, and we were also updating clients
and db too early with input metadata (right when read from the input, instead of
waiting until playback (speakers) were at that position.
This change adds a complicated async chain of events from when the update is
received.
2020-05-12 20:16:15 +02:00
ejurgensen
68022d5c10
[dacp] Change update id's more often
...
Sometimes the artwork changes, but the album does not (especially likely if we
are in a row of "Unknown album"-tracks)
2020-05-11 21:39:02 +02:00
ejurgensen
63ab446bd5
[pipe] Fix issue where Shairport progress metadata was ignored
...
Sometimes the progress has a negative position, which we were incorrectly
disregarding.
2020-05-11 21:39:02 +02:00
ejurgensen
1921a2401f
[artwork] Fix memleak in source_item_pipe_get
...
Queue item not being freed on succes
2020-05-11 21:37:29 +02:00
ejurgensen
97a2165666
[lastfm] Fix forgotten include in commit de1b1c3
...
Closes #1001
2020-05-11 19:19:28 +02:00
ejurgensen
a6cb70fd66
[artwork] Don't use group handlers if unknown group (artist/album)
2020-05-11 17:24:05 +02:00
ejurgensen
de1b1c3805
[cfg] Remove hardcoding of strings for unknown album etc
...
Now configurable, since we don't have real localisation
2020-05-11 17:02:14 +02:00
whatdoineed2do/Ray
69c56f5971
[jsonapi] items/add?expression can take 'limit' param
2020-05-09 20:04:27 +01:00
whatdoineed2do/Ray
c5fe0d217b
[jsonapi] support 'limit' on 'api/queue/items/add?expression='
...
Extend to support SMART query allows 'limit'
curl -X POST "http://localhost:3689/api/queue/items/add?expression=genre+is+%22Pop%22+order+by+time_added+desc+limit+3 "
2020-05-09 17:09:03 +01:00
whatdoineed2do/Ray
4147e302a8
[SMARTPL] add 'random' in 'order by' clause
...
'random' tag in 'order by' clause to request SQLite to random select data rows from result set
"random 3 pop" {
genre is "Pop" and
media_kind is music
order by random desc
limit 3
}
2020-05-09 15:47:30 +01:00
ejurgensen
86d49a7028
[artwork] Don't log Spotify artwork errors if user is not logged in
...
Ref issue #986
2020-05-05 16:23:55 +02:00
ejurgensen
07158cf2d5
[raop] Fix incorrect log domains
2020-05-05 16:06:06 +02:00
ejurgensen
b10434627a
[player] Remove outdated comment
2020-05-05 16:04:39 +02:00
ejurgensen
778d6f4999
[config] Change speaker_autoselect default to no
...
The changes in commit 6612899 mean that we now do more to maintain selection of
a user selected speaker, even if it fails or is powered off for a while. Thus
this option is no longer relevant.
The option was also never very good for people with many speakers.
2020-05-04 17:41:57 +02:00
ejurgensen
b6dfb48100
[raop] Adjust keep alive interval 30s -> 25s
...
Testing with Homepod/ATV points at 25s working better, see:
https://github.com/ejurgensen/forked-daapd/issues/734#issuecomment-622959334
2020-05-03 23:15:44 +02:00
ejurgensen
57ff2e3124
[raop] Fix bug where we send start packets during teardown
...
The teardown send function was setting state to CONNECTED, which made
raop_write() believe that the device had just joined.
2020-05-03 00:00:26 +02:00
ejurgensen
661289990c
[player] Migrate a lot of speaker handling to outputs.c
...
Moves speaker selection, volume handling and startup to outputs.c, plus adds
the ability to "resurrect" a speaker that disconnects.
The purpose of moving the code is to concentrate device handling in one place.
Also changes how we deal with speaker selection. The player will now generally
not alter a user selection, even if the device fails. The purpose of this is to
maintain selection both if the device briefly fails, and if the user switches
off the device (we stop playback) and later turns it on + starts new playback.
2020-05-03 00:00:18 +02:00
ejurgensen
0e19102efd
[artwork] Define MEDIA_KIND_ALL as USHRT_MAX instead of individual num values
2020-05-02 00:52:52 +02:00
ejurgensen
37b4188c3c
[artwork] Generalize handler configuration of supported media_kinds
2020-05-02 00:52:52 +02:00
ejurgensen
9d1f15d3c2
[db] Define MEDIA_KIND_ALL
2020-05-02 00:52:52 +02:00
whatdoineed2do/Ray
329c0620fc
[artwork] query playlist-wide artwork if availble
2020-04-30 20:28:36 +02:00
whatdoineed2do/Ray
5a872dc436
[library] rss pulls channel->image->url if available
2020-04-30 20:28:36 +02:00
whatdoineed2do/Ray
e7c62086a2
[db] add artwork_url to playlist_info
2020-04-30 20:28:36 +02:00
whatdoineed2do/Ray
9a0c7e9ad2
[db] v21.4 - add playlist..artwork_url column
2020-04-30 20:28:36 +02:00
ejurgensen
d84ea2008f
[pipe] Increase metadata pipe max read size + don't abort if exceeded
...
Closes #976
2020-04-29 23:02:05 +02:00
ejurgensen
a14a8458aa
[scan] Remove iTunes_CDDB_IDs as album ID ( closes #972 )
...
Seems this ID is not reliable, it can be semi-empty, e.g. with a value of '16++'
2020-04-29 20:57:13 +02:00
ejurgensen
489b90e067
[rsp] Add comments with RSP sample requests
2020-04-29 20:55:46 +02:00