Brad Keifer
28528abbcd
Initial changes to support systems with single arg pthread_setname_np()
2025-11-05 11:36:37 +11:00
ejurgensen
ffa88286e4
[dacp] Fix artwork for radio statios sometimes not updating
...
When "Ignore artwork provided by radio stations" is enabled, only the
queue_item->title would be used to create the bogus track id for Remote.
However, that is the name of the radio stations, so doesn't change.
This fixes the issue by including queue_item->album (which is actually
the track title when it's a radio station).
Fixes #1938
2025-10-30 17:28:14 +01:00
ejurgensen
49171dac1a
[artwork] Rename to artwork_get_by_file_id and artwork_get_by_group_id
...
For consistency with new artwork_get_by_queue_item_id
2025-10-27 22:54:11 +01:00
ejurgensen
09b9b0c7fc
[airplay] Support artwork for non-library items, e.g. from Spotify search
2025-10-27 22:54:11 +01:00
ejurgensen
6f45f8b4a5
[dacp] Add support for non-library artwork, e.g. from Spotify searches
...
Fixes #1936
2025-10-27 22:54:11 +01:00
ejurgensen
921d4446d6
[artwork] Add function to get artwork for non-library queue items
...
Adds artwork_get_by_queue_item_id() and a source handler for getting artwork
from queue_item->artwork_url.
2025-10-27 22:54:11 +01:00
ejurgensen
5f526c7a7e
[dacp] Fix segfault from invalid queries
...
When parsing a DACP request (pattern: ^/ctrl-int/[[:digit:]]+/playqueue-edit$)
with a command parameter being "move" and an edit-params parameter lacking a
colon, strchr(param, ':') at httpd_dacp.c:2038 will return NULL, and safe_atoi32
is called with its first parameter str being 1. This will bypass the NULL check
at src/misc.c:650 and causes a segmentation fault at the call to strtol at line
657.
Closes #1933
2025-10-08 19:49:01 +02:00
ejurgensen
b7e385ffe0
[httpd] Better logging of evbuffer_read() errors
...
Fixes #1931
2025-09-30 20:44:01 +02:00
ejurgensen
ec632e478c
[xcode] Fix deprecations of ->pix_fmts and av_format_inject_global_side_data
2025-08-25 22:50:21 +02:00
ejurgensen
19012bf616
[misc] Fix deprecation warning about referencing xmlBuffer->content
2025-08-25 22:50:21 +02:00
ejurgensen
d051d787ba
[scan] Use plist_get_unix_date_val() if available
...
plist_get_date_val is deprecated
2025-08-25 22:50:21 +02:00
Drew Thompson
d8485bf3c2
[scan] Add support for "empty" operand in smart playlists
...
"empty" will be parsed to SQL NULL
2025-08-25 19:14:31 +02:00
ejurgensen
753a027ce1
Merge pull request #1920 from owntone/connect_timeout
...
[misc] Prevent OwnTone from hanging when a connection can't be made
2025-08-23 17:23:15 +02:00
ejurgensen
a84f4e09a0
[misc] Prevent OwnTone from hanging when a connection can't be made
...
This change adds a default 3s timeout to net_connect().
Fixes #1916
2025-08-23 17:22:18 +02:00
ejurgensen
ba8212b175
[scan] Use libmount to detect filesystem mount events
...
Resolves issue #1897
2025-08-22 19:57:53 +02:00
ejurgensen
d16343bddc
[scan] Revert libmount commits due to MacOS/FreeBSD build errors
...
Reverts 3be8e4f and e607019
2025-08-21 23:50:24 +02:00
ejurgensen
3be8e4f479
[scan] Fix wrong symbol name for non-libmount builds
2025-08-21 23:39:55 +02:00
ejurgensen
e607019a1c
[scan] Use libmount to detect filesystem mount events
...
Resolves issue #1897
2025-08-21 23:31:10 +02:00
ejurgensen
324b6eb61a
[spotify] Update librespot-c to 0.7
...
Uses an extended metadata request like go-librespot to get file id, which
should mean that Spotify works even when not in legacy mode (tcp mode).
Ref issue #1912
2025-08-21 23:10:23 +02:00
Alain Nussbaumer
b9d821b46a
[web] Add followed artists to the Spotify music page #1538
2025-08-19 17:31:16 +10:00
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