Commit Graph

4495 Commits

Author SHA1 Message Date
ejurgensen
b612e12aca [spotify] Fix misplaced librespot-c legacy mode selector
OwnTone was supposed to default to the old raw tcp Spotify protocol, which
would have left it unaffected by Spotify breaking the http response to the
metadata request. However, the mechanism for defaulting was misplaced. This
should put it in the right place and fix #1912.

Of course, the new protocol is still broken, but hopefully that will be fixed
on Spotify's side.
2025-08-09 21:55:37 +02:00
ejurgensen
75c9db5f59 [jsonapi] Add client_id and client_secret to /api/spotify
Closes #1909
2025-08-03 20:54:10 +02:00
ejurgensen
7b91d43274 [scan] Fix for platforms without fcopyfile() or copy_file_range()
Add @cagney's fallback copy function. Use feature tests in configure.ac for
fcopyfile() and copy_file_range().

Fixes #1901
2025-07-27 22:40:33 +02:00
ejurgensen
5e4d40ee03 [dacp] Fix null dereference on missing mode param
Fixes #1907
2025-07-24 18:08:10 +02:00
ejurgensen
c09026f7c3 [spotify] Fix Bullseye breakage by updating librespot-c to 0.6 2025-06-21 00:21:49 +02:00
ejurgensen
4154a20cda [spotify] Don't log "Unexpected JSON" when getting a null element
Instead log a debug message. Ref issue #1892.
2025-05-21 23:28:08 +02:00
ejurgensen
b88df4b4e8 [airplay] Fix client name showing as blank when pairing with MacOS
Also include the X-Apple-HKP header in pair-pin-start like iOS does, just in
case.

Ref issue #1885
2025-05-17 01:19:27 +02:00
ejurgensen
7193d0a243 [spotify] Fix GCC 15 compile errors about implicit declarations
Resolves issue #1888
2025-05-16 23:49:09 +02:00
ejurgensen
ae5be5f83e [spotify] OAuth redirect to https://owntone.github.io/owntone-oauth/spotify/
From Nov 2025 Spotify will require that the OAuth redirect is to a https url,
so we go via a Github hosted intermediate page.

Ref issue #1858
2025-05-04 22:59:56 +02:00
ejurgensen
23c67a3eb6 [api] Fix setting output selected and volume at the same time
player_speaker_enable returned 1 on success, but code expected 0. With these
changes the implementation should be more resilient.

Closes #1884
2025-04-25 16:01:16 +02:00
ejurgensen
8e9e939e49 [player] Add log message if speaker_set() called with non-existent speaker id
Closes #1879
2025-03-28 22:24:19 +01:00
ejurgensen
f108e531bb [spotify] Config check for libcurl 7.83, needed for curl_easy_nextheader()
Resolves #1878
2025-03-20 20:33:11 +01:00
ejurgensen
d99342e586 [spotify] Make client_id and secret configurable
Closes #1877
2025-03-20 20:32:24 +01:00
ejurgensen
13a8f71c0c [parsers] Fix possible stack overflow from recursion
Closes #1873
2025-03-15 20:16:41 +01:00
Christian Meffert
aab6f6c718 [logger] Support logging with logfmt format 2025-02-25 20:08:11 +01:00
ejurgensen
4980218fc5 [spotify] Import version 0.5 of librespot-c 2025-02-24 19:58:09 +01:00
ejurgensen
038c741052 [spotify] Set the new protocol as experimental and fallback, old one as default 2025-02-23 23:43:51 +01:00
ejurgensen
2547336576 [spotify] Retry fix for connection retry 2025-02-23 23:27:50 +01:00
ejurgensen
aab49945d4 [misc] Distinguished logging of errors from getaddrinfo() 2025-02-23 23:27:50 +01:00
ejurgensen
b5977b5633 [spotify] Fix for connection retry during login 2025-02-23 23:27:50 +01:00
ejurgensen
3f9e400dbd [spotify] Import version 0.4 of librespot-c and remove password-based login
Experimental version to test new protocol
2025-02-23 23:27:49 +01:00
Christian Meffert
9b56727361 [spotify] Fix possible deadlock during Spotify scan (#1859) 2025-02-20 07:13:55 +01:00
ejurgensen
d64c30b5ab [logger] Fix more compile warnings on e.g. ARMv7 (ref #1863) 2025-02-18 20:17:59 +01:00
ejurgensen
200d9abc43 [logger] Fix compile warnings on e.g. ARMv7 (closes #1863) 2025-02-18 19:30:30 +01:00
Christian Meffert
5acf9dd336 [db] Add thread name/id to db wait unlock 2025-02-16 23:51:06 +01:00
Christian Meffert
5fec4bbe34 [logger] Add thread name and thread id to log messages 2025-02-16 23:51:06 +01:00
Alain Nussbaumer
c72dc48b1d [api] Stop playback once last item is removed from the queue 2025-02-16 12:37:58 +01:00
ejurgensen
792e04b47d [artwork] Allow longer tokens in auth headers towards online sources
Fixes "Cannot make request for online artwork, auth header is too long" error
2025-02-11 16:44:47 +01:00
ejurgensen
71d48452d8 [mpd] Fix bug in 28.11 (and .10?) where "mpc enable/disable" toggles
Fixes #1847
2025-02-05 09:16:26 +01:00
ejurgensen
591a0b6b83 [spotify] Allow for longer tokens (fixes #1846) 2025-02-04 19:39:25 +01:00
Christian Meffert
7760554cb7 [lbrainz] Add ListenBrainz integration
- Support submitting listens (scrobble) to ListenBrainz.
- Add JSON API endpoints to manage ListenBrainz auth token.
2025-02-01 14:25:45 +01:00
Christian Meffert
9283d0c3c2 [http] Make output_body (request body) in http_client_ctx "const" and delete unused fields 2025-02-01 14:25:10 +01:00
Christian Meffert
9fbd07a75d [db] Add cli parameter to overwrite path to SQLite extension
This will allow pointing to the locally build (and not installed) owntone SQLite extension during development and local testing.
2025-01-22 20:27:34 +01:00
Christian Meffert
a2d56df416 [httpd] Fix infinite loop with more than one ws connection 2025-01-22 20:27:34 +01:00
Christian Meffert
a454f062bb [web] Implement libevent ws in httpd_libeventhttp, address thread safety 2025-01-22 20:27:34 +01:00
Christian Meffert
91175dc905 [listener] Support passing context arg to listener callbacks 2025-01-22 20:27:34 +01:00
Christian Meffert
eca99f120a [httpd] libevent proxy handling changes with libevent >= 2.2 2025-01-22 20:27:34 +01:00
Christian Meffert
a3ab301cff [web] Support libevent as WS server instead of libwebsockets
If libevent >= 2.2 is detected during configure and "websocket_port" == 0 in the config file, the libwebsocket implementation is disabled and instead the libevent http server offers the websocket connection. The connection to the websocket is then done with the path "/ws".
2025-01-22 20:27:34 +01:00
ejurgensen
c7432e6bca [settings] Move two settings to artwork category
show_cover_artwork_in_album_lists and streamurl_ignore. Ref #1829.
2025-01-22 20:26:06 +01:00
ejurgensen
410d3a0cfa [http] Implement setting to ignore StreamUrl
Some radio stations send garbage in the ICY StreamUrl tag, ref issue #1829.
2025-01-22 20:26:06 +01:00
ejurgensen
76b5da0f0d [settings] Make settings convenience macros more convenient 2025-01-22 20:26:06 +01:00
ejurgensen
f986eedb25 [artwork] Fix concurrency issues with online search and artwork retrieval 2025-01-22 20:26:06 +01:00
ejurgensen
464f87a8db [artwork] Don't make online artwork searches if artist/album starts with "unknown" 2025-01-22 20:26:06 +01:00
ejurgensen
3c98ca7928 [http] Support for extracting artwork url from within StreamUrl field 2025-01-22 20:26:06 +01:00
ejurgensen
1b2c51bc5e [misc] Improve logging of int conversion errors 2025-01-22 20:26:06 +01:00
ejurgensen
1810be023d [json-api] Setting of track attribs time_played/time_skipped and make generic 2025-01-22 20:26:06 +01:00
ejurgensen
40f43840f2 [httpd] Fixup commit 5d7e3dc0 in case NULL isn't zero 2025-01-22 20:26:06 +01:00
ejurgensen
d0ff361ae0 [httpd] Add parameter "no_register_playback" for DAAP/RSP streaming 2025-01-22 20:26:06 +01:00
ejurgensen
9a513e41c7 [json_api] Method for setting skip_count and for setting play_count directly 2025-01-22 20:26:06 +01:00
ejurgensen
72ef58d853 [mpd] Add getvol, bump version to 0.23.0 2025-01-22 20:26:06 +01:00