Commit Graph

4176 Commits

Author SHA1 Message Date
ejurgensen
54faa11ce5 [spotify] Update librespot-c so ./configure works with FreeBSD 2021-09-01 17:11:45 +02:00
ejurgensen
7584e6377f [misc] Fix forgotten return in net_evhttp_bind()
Makes it impossible to use the bind_address config setting properly
2021-08-30 23:46:36 +02:00
ejurgensen
e1375f6ad6 [streaming] Clean up streaming_player_status_update()
Fixes compiler warning from newer versions of gcc + reduces malloc's
2021-08-27 16:46:08 +02:00
ejurgensen
774d7c36fd [input] Logging changes 2021-08-18 01:00:17 +02:00
ejurgensen
f4983b8a11 [airplay] Add missing include of errno.h in the new events handling
Closes #1294
2021-08-14 21:13:50 +02:00
ejurgensen
b6835fac29
[airplay] Support for airplay events (eg Homepod controls)
Ref. issue #1181
2021-07-31 01:16:23 +02:00
ejurgensen
246d8ae0ce [misc] Fix use-after-free in net_bind()
Thanks to Ba Jinsheng for reporting this bug
2021-07-31 00:55:48 +02:00
Christian Meffert
dc8e66109e
Merge pull request #1284 from chme/web-update
Web interface v1.1.0
2021-07-09 10:03:38 +02:00
Christian Meffert
81dafab4ac
Merge pull request #1283 from chme/smartpl-comment-field
[smartpl] Add "comment" field to smartpl expression language
2021-07-09 10:02:51 +02:00
Christian Meffert
3a9589c25b
Merge pull request #1282 from chme/httpd_webroot
[httpd] Dereference web root directory to allow symlinks
2021-07-09 09:56:06 +02:00
ejurgensen
d2f4efa1bf [misc] Centralize thread naming plus name websocket thread 2021-07-05 21:40:31 +02:00
ejurgensen
eae09039d5 [spotify] Add missing include of config.h 2021-07-05 21:09:02 +02:00
chme
1e4728f6b1 [jsonapi] Expose "use_libspotify" config 2021-07-04 14:40:08 +02:00
chme
44c24cee0f [jsonapi] Add "comment" field to track object 2021-07-04 12:03:05 +02:00
chme
467b169210 [smartpl] Add "comment" string field 2021-07-04 11:48:51 +02:00
chme
93b9740233 [httpd] Dereference web root directory to allow symlinks 2021-07-04 11:41:39 +02:00
ejurgensen
e18969ef75 [rsp] Interpret artist in queries as album_artist (fixes #1263) 2021-06-07 20:22:36 +02:00
ejurgensen
5d2d2ea227 [spotify] Add missing include of errno.h (fixes #1267) 2021-06-05 21:10:22 +02:00
ejurgensen
9fbbf9836c [spotify] Submit actual system info to Spotify 2021-06-05 21:09:44 +02:00
ejurgensen
4463d4e7d8 [-] Fix build with old libgcrypt versions (eg Buster's) with no pkg-config 2021-06-01 20:29:16 +02:00
ejurgensen
6f0fef6179 [spotify] Reintroduce libspotify support, change spotifyc to librespot-c
Select use of either libspotify or librespot-c as streaming backend via config
option.

librespot-c (renamed/improved spotifyc) impl has the following:
- sync interface
- seek support
- honor bitrate config, set client and thread name
- use web access token with "streaming" scope for login
- fix issue with podcast playback

Also say goodbye to file-based Spotify login.
2021-05-31 23:24:58 +02:00
ejurgensen
2bbc5f16c5 [xcode] Add support for seekable custom I/O (evbuffer input to transcode) 2021-05-31 11:55:32 +02:00
ejurgensen
57449a126a [xcode] Merge avio_evbuffer into transcode
Only used by transcode anyway. Makes it easier to add custom seek for evbuffer.
2021-05-31 11:55:32 +02:00
ejurgensen
b058f47ffb [input] Also log input buffer threshold in debug mode 2021-05-31 11:55:32 +02:00
ejurgensen
a67c74ba6c [spotify] Introduce own spotifyc as replacement for libspotify 2021-05-31 11:54:30 +02:00
ejurgensen
d3cc8a52f8 [mpd] Minor fixup 2021-05-28 16:57:57 +02:00
ejurgensen
c96dc1fcff [dacp] Fix support for device-volume (speaker volume buttons)
Closes #613
2021-05-26 23:20:40 +02:00
ejurgensen
d2187d0ace [db] Partially revert commit aaffa4a so that source sort tags are used again
Fix for issue #1257
2021-05-25 23:44:53 +02:00
ejurgensen
684c23a044 [db] Fix error where adding Spotify track to queue returns "0 tracks added"
Caused by queue_item_add returning >0 as success, but caller is expecting ==0.
Try to avoid other occurancess of this issue by generally checking for error
("ret < 0") instead.
2021-05-24 21:55:09 +02:00
ejurgensen
5fdace5195 [web] Remove verbose listener_cb() logging added in commit f939215 2021-05-21 23:43:00 +02:00
ejurgensen
28f8ff5253 [web] Fix libwebsocket 2.0 (Debian Buster) incompability added in commit 1a56255 2021-05-21 19:59:12 +02:00
ejurgensen
5de0533232 [airplay] Add mdns txt for Sonos Symfonisk 2021-05-21 18:50:28 +02:00
ejurgensen
1a56255c54 [web] Fix for websocket server only listening on ipv6 on FreeBSD
Credit @luusl
2021-05-21 16:13:44 +02:00
ejurgensen
5128d9478a [misc] Fix for evhttp_bind_socket not supporting dual stack ipv4/6 on BSD 2021-05-20 21:01:00 +02:00
ejurgensen
c1db4d914f [http] Also allow remote playlists to have https streams (fixes #1251)
Fix it by adding net_is_http_or_https() utility function in misc.h and make
sure it used whenever a http protocol check is made.
2021-05-19 22:53:25 +02:00
Christian Meffert
f93921554e
Merge pull request #1243 from luusl/enhance_websocket
Improve the websocket to send events to clients immediately.
2021-05-19 20:32:08 +02:00
taku0220
4d22cb05b3 [scan]Add sort tags for ALAC 2021-05-19 03:02:08 +09:00
martin
f3e5400caf Libwebsockets 2.x compatibility 2021-05-17 12:47:57 +02:00
martin
a15edfcae9 Improve the websocket to send events to clients immediately. 2021-05-13 22:54:11 +02:00
ejurgensen
520a1251ec [-] Change forked-daapd -> owntone in src/.gitignore 2021-05-06 20:48:52 +02:00
ejurgensen
a93455b5a9 [cfg] Rename configure macros FORK -> OWNTONE 2021-04-24 23:54:20 +02:00
ejurgensen
5f1686695a [-] Name update forked-daapd -> owntone throughout the code 2021-04-24 23:54:20 +02:00
ejurgensen
f61665b81d [-] Rename source and target names from forked-daapd to owntone 2021-04-24 23:54:20 +02:00
ejurgensen
89807b61ed [input] Fix possible segfault-on-exit
Could occur if killed during playback (because input_stop() is async, thus
referencing cmdbase after it is destroyed)
2021-04-22 17:00:36 +02:00
luusl
8a1f85a14e Fixed potential crash on pulseaudio sink info callback, when an error
occurs.
2021-04-12 13:11:47 +02:00
ejurgensen
f77161b5c2 [jsonapi] Get currently playing queue item details (closes #1206)
Add now_playing shorthand, so that /api/queue?id=now_playing returns the
currently playing queue item info.
2021-04-05 08:49:27 -07:00
ejurgensen
1fafab12e3 [xcode] Fix for "Invalid return value 0 for stream protocol" log msg
Custom avio must not return 0, see https://patchwork.ffmpeg.org/project/ffmpeg/patch/20171025082258.32530-2-george@nsup.org/
2021-04-05 09:57:50 +02:00
ejurgensen
c7faefe1f8 [docs] Change git links: owntone/forked-daapd -> owntone/owntone-server 2021-04-01 22:09:26 +02:00
ejurgensen
790c9dcca9 [misc] Define SOCK_NONBLOCK and SOCK_CLOEXEC if platform doesn't 2021-04-01 01:45:09 +02:00
ejurgensen
64d6b0d4c3 [raop] Fix scan-build make warning after removing switch in commit 98dad07 2021-04-01 01:21:11 +02:00
ejurgensen
ba8b752a9b [misc] Fix macOS build (doesn't have SOCK_CLOEXEC) 2021-04-01 00:01:12 +02:00
ejurgensen
ed6176062a [airplay] Logging adjustments 2021-03-31 23:55:25 +02:00
ejurgensen
d2a5f939f5 [mpd] Bind via misc.c's net_xxx methods 2021-03-31 23:55:25 +02:00
ejurgensen
d4711decdc [httpd] Bind via misc.c's net_xxx methods 2021-03-31 23:55:25 +02:00
ejurgensen
11151affbd [misc] Add net_evhttp_bind() for centralizing libevent based binding 2021-03-31 23:55:25 +02:00
ejurgensen
c423f3af91 [cfg] Add websocket_interface option 2021-03-31 23:55:25 +02:00
ejurgensen
e5fcfc6574 [cast] Use net_connect() instead of own cast_connect() 2021-03-31 23:55:25 +02:00
ejurgensen
98dad07b7f [airplay] Convert services to dual stack, plus use net_connect() and net_bind() 2021-03-31 23:55:25 +02:00
ejurgensen
f3febb63d9 [raop] Convert services to dual stack, plus use net_bind() and net_connect() 2021-03-31 23:55:25 +02:00
ejurgensen
dfc1580f13 [misc] Add logging of net_connect() service 2021-03-31 23:55:25 +02:00
ejurgensen
dd0f0ece78 [mdns] Remove ipv4/ipv6 argument to mdns_browse
Make sure mdns_browse() always works the same, and follows user config.
2021-03-31 23:55:25 +02:00
ejurgensen
7871d71a9c [misc] Add utility network functions, incl configurable addr binding
Also make misc.c/h a bit less messy.
2021-03-31 23:55:25 +02:00
ejurgensen
3673aa7215 [player] Protect against crash if very first input_write() is FLAG_ERROR 2021-03-31 22:20:56 +02:00
ejurgensen
daa0652e7b [docs] Rename repo: ejurgensen -> owntone 2021-03-30 23:39:07 +02:00
ejurgensen
75f6c72003 [misc] Correct comment 2021-03-27 22:44:16 +01:00
ejurgensen
9c3887a80f [commands] Add missing include 2021-03-27 22:44:02 +01:00
ejurgensen
19635e61ec [httpd] Fix scan-build make warning from commit 3a03c74
Potential buffer overflow
2021-03-15 21:59:40 +01:00
chme
3a03c74f91 Deny access to files outside the web root directory 2021-03-14 09:08:16 +01:00
ejurgensen
363bd5644b [pipe] Support for Shairport sync metadata flush event 2021-03-12 19:48:01 +01:00
ejurgensen
bbe7526414 [airplay] Update pairing modules (pair_ap 0.2) 2021-03-07 23:02:14 +01:00
Peter Salas
8ba35dfa19 [scan] Remove leftover iTunes #ifdefs 2021-02-28 08:31:16 -08:00
ejurgensen
036100eecd [cast] Length check of protobuf messages just to be safe 2021-02-17 22:45:45 +01:00
ejurgensen
13be7999cb [db] Add some headers in db_upgrade.c for easier navigation 2021-02-10 20:05:56 +01:00
ejurgensen
bd91a238ec [db] Upgrade schema to 21.06, change default of query_limit to 0 2021-02-10 20:04:56 +01:00
ejurgensen
79b4a070b0 [db] Change type of "disabled" to int64
Before the value in the db was not read straight into mfi->disabled and
pli->disabled, instead it was evaluated as != 0, so the ->disabled field
would just be true or false. This was also necessary when INOTIFY_FAKE_COOKIE
(1 << 32) was written to the DB, because it could not fit in the uint32 of
mfi->disabled/pli->disabled.

I consider this juggling poor practice, so with this change it is read straight
in and out, always as a int64.
2021-02-09 15:16:06 +01:00
ejurgensen
b6163c9d34 [db] Fix bug in bind_generic, input to sqlite3_bind_int64 should be int64_t 2021-02-09 15:16:06 +01:00
ejurgensen
1fa1d9091b [db] Consolidate setting struct fields from database queries 2021-02-09 15:16:06 +01:00
ejurgensen
689d1ce3dd [db] Refactor queue_item functions
- Use prepared statements
- Add qi_mfi_map that defines mapping between mfi, dbmfi and qi
- Use qi_cols_map/qi_mfi_map for iteration (avoid duplicating field references)
- Stick to "qi" as name for a queue_item in db.c (more similar to mfi/pli/gri)
- Some renaming and other minor stuff in db.c's queue code
2021-02-09 15:16:06 +01:00
ejurgensen
76c52bba3b [rsp] Add ALAC as a codec Roku supports (ref issue #1182) 2021-01-29 20:31:53 +01:00
ejurgensen
ac6d87656a [airplay] Change recommended airplay2-receiver repo 2021-01-29 20:30:22 +01:00
chme
f75947f29a [db] Remove break after v2103 update and directly run update for v2104
The break results in the ugrade stopping at v2103 and only after another
restart of forked-daapd the update to v2104 happens. Removing it will
directly update to the latest DB version.
2021-01-23 16:32:41 +01:00
ejurgensen
728d253e1f [jsonapi] Make updating of currently playing track metadata easier
Update to commit #aaffa4a that makes it easier to update currently playing
track, user can use "now_playing" instead of getting the queue item id.
2021-01-21 22:46:19 +01:00
ejurgensen
aaffa4a83f [jsonapi] Add support for updating queue_item metadata (closes #1153)
This commit also changes db.c's sort_tag_create to always recreate sort tags,
so that they match source tags, should they have changed. Unclear to me why
the previous solution didn't do that, so will probably regret this change when
it dawns on me.
2021-01-21 20:56:05 +01:00
ejurgensen
275d66b6ad [airplay] Use compressed ALAC to save bandwidth
Uses ffmpeg to compress ALAC. Before each audio packet was always 1411 bytes,
now they are half or even much less if it is just silence.
2021-01-18 00:19:34 +01:00
ejurgensen
1977db0319 [xcode] Add profile for ALAC encoding 2021-01-18 00:19:34 +01:00
ejurgensen
f105958a64 [airplay] Fix so that AirPlay 2 devices are removed 2021-01-18 00:19:34 +01:00
chme
0334269989 [mpd] Support search/find/count with modified-since filter criteria 2021-01-16 10:45:15 +01:00
chme
9ff06f094d [htdocs] Rebuild web interface v0.8.5 2021-01-16 08:23:50 +01:00
ejurgensen
60b096c707 [airplay] Make auth-setup easier to test via a define switch 2021-01-14 22:53:09 +01:00
ejurgensen
8b9e064af9 [raop] Lower log level 2021-01-14 22:46:20 +01:00
ejurgensen
b2b91998d9 [airplay] Fix decryption of large responses
If the response is large evrtsp will not read the entire message from the
socket. This change allows for decryption and parsing of partial messages.
2021-01-14 21:36:47 +01:00
ejurgensen
73c5dcec5a [airplay] Update pairing, change ciphering function return values 2021-01-14 21:29:22 +01:00
ejurgensen
754f69bb10 [airplay] Change logging for devices that don't have AirPlay 2 features field
Closes #1167 re announcement from Kodi
2021-01-12 17:59:43 +01:00
ejurgensen
74f4b2c8b2 [airplay] Fixup 2021-01-12 17:56:47 +01:00
whatdoineed2do/Ray
5eeadd3f1b [settings] add webinterface.recently_added_limit 2021-01-11 19:40:04 +01:00
ejurgensen
8f48179365 [airplay] Small update to pairing modules 2021-01-10 23:33:19 +01:00
ejurgensen
1546a43585 [airplay] Disable extended logging 2021-01-10 23:32:34 +01:00
ejurgensen
4e122303a1 [conf] Add speaker level option to disable AirPlay 1 2021-01-10 16:42:08 +01:00
ejurgensen
9805f03d10 [airplay] Update pairing, fix compiler complain about const initialization 2021-01-10 15:29:28 +01:00
ejurgensen
6b91c92bca [airplay] Remove rs->session, not used any more 2021-01-10 15:05:21 +01:00