Commit Graph

4487 Commits

Author SHA1 Message Date
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
ejurgensen
5571fa628d [mpc] Support for readpicture and albumart 2025-01-22 20:26:06 +01:00
ejurgensen
df86df02dc [daap] Fix for Apple Music/iTunes not working on Airplay host (attempt 2)
OwnTone selects ALAC for daap streaming because it thinks the client is an Airplay speaker.

Regression in 28.10 coming from PR #1698.

Fixes #1816
2025-01-22 20:26:06 +01:00
ejurgensen
04bca06805 Revert "[daap] Fix for Apple Music/iTunes not working on Airplay host"
This reverts commit 73864e82cd.
2025-01-22 20:26:06 +01:00
ejurgensen
7ed66079f2 [daap] Fix for Apple Music/iTunes not working on Airplay host
OwnTone selects ALAC for daap streaming because it thinks the client is an Airplay speaker.

Regression in 28.10 coming from PR #1698.

Fixes #1816
2025-01-22 20:26:06 +01:00
ejurgensen
3999449c89 [httpd/daap] Improve logging of speaker profile selection 2025-01-22 20:26:06 +01:00
ejurgensen
0483aad095 [mpd] Fix outputs enable/disable/toggle not working in v28.10
Also simplify code by using new speaker index from player and remove some code
duplication.

Regression from PR #1779. Fixes #1814.
2025-01-22 20:26:06 +01:00
ejurgensen
269aed632f [player] Add a index attribute to struct player_speaker_info + a getter 2025-01-22 20:26:06 +01:00
Fabian Groffen
1019b777c3 [mpd] outputs: drop invalid outputsvolume key
This key confuses some clients, and it isn't emitted by MPD, nor
documented to exist:
9ff8e02e54/src/output/Print.cxx

It was added in bdb2c7493, but without explanation why it was added to
outputs command.

Signed-off-by: Fabian Groffen <grobian@gentoo.org>
2025-01-22 20:22:10 +01:00