Commit Graph

4388 Commits

Author SHA1 Message Date
whatdoineed2do/Ray 0c43de9735 [scan] option to use first genre on multi token genres
multiple genres are either supported by format (see flac/orbis) or are
handled by convention (see mp3) - ffmpeg presents either case as a
single string, seperated by ';' (ie "Pop;Rock")

Currently the server/db does not support multiple genres and will store
the ffmpeg string as-is which is unlikely the user intention.

Introduce 'split_genre' to take the first genre token
2022-12-29 20:07:30 +01:00
ejurgensen c23c2fdc45 [httpd] Addendum to commit 017e09d: More fixing up of libevent warnings 2022-12-26 17:16:58 +01:00
ejurgensen 017e09d7c3 [httpd] Fix evhttp_connection_get_peer() const char warning for newer libevent 2022-12-25 20:09:38 +01:00
ejurgensen b70188f4b8 [spotify] Fix commit 5e7bf182 to avoid picking too large images 2022-12-21 23:29:44 +01:00
ejurgensen 5e7bf1826c [spotify] Fix poor artwork resolution on playback from playlist start
Closes #1559
2022-12-21 17:39:41 +01:00
whatdoineed2do/Ray 7d26c2c954 [db,scan,jsonapi] bug fix to handle date_released before 1970, storing -ve values in db 2022-12-13 17:38:07 +00:00
ejurgensen 7c0474b743 [player] Don't stop/clear queue on speaker 'prevent-playback' or 'busy'
When 'prevent-playback' or 'busy' is sent by a single playing speaker, we just
want to pause playback and not clear the queue

Closes #1553
2022-11-20 22:38:33 +01:00
ejurgensen d468fd358e [spotify] Select best artwork size even when not ordered descending
Spotify web API docs say that images are ordered wideest first, but that isn't
happening right now, so don't rely on that for size selection.

Also makes sure we pick an image even when max_w is smaller than smallest
available image.
2022-10-30 20:31:58 +01:00
ejurgensen 1379914857 [xcode] See if we can do without asking decoder for specific sample rate/channels
We use filters now, so shouldn't be necessary.

request_sample_fmt and request_channel_layout was added with commit 73b2d08.
2022-10-26 17:22:41 +02:00
ejurgensen 684f55f603 [xcode] Align how ffmpeg API checks are done 2022-10-26 17:22:41 +02:00
ejurgensen 4ff850cd3d [xcode] A bit of refactoring 2022-10-26 17:22:29 +02:00
ejurgensen e437e41870 [airplay] Add WWW authentication for Airplay 2
Some speakers (e.g. Homepod) that are configured to require password want that
this is used both for pairing authentication and classic WWW Authentication.

This commit adds the WWW Authentication that is also used for Airplay 1.

Closes #1545.
2022-10-15 00:30:31 +02:00
whatdoineed2do 94c28386a6
[xcode] Use ffmpeg ch_layout instead of deprecated channel_layout/channels (#1536)
Co-authored-by: whatdoineed2do/Ray <whatdoineed2do@nospam.gmail.com>
2022-10-06 17:09:01 +02:00
whatdoineed2do/Ray 48526c2ab7 [dacp] bug fix - play item from 'up next' when stopped 2022-09-03 01:32:01 +02:00
ejurgensen c1373394a8 [mdns] Add log hint about Avahi not running if adding browser fails
Ref issue #1529
2022-08-21 10:21:22 +02:00
ejurgensen 3cbb95976a [airplay] Add support for password based authentication
Closes #1527
2022-08-15 20:09:54 +02:00
ejurgensen 31ab97595e [smartpl] Support larger smart playlists (fixes #1521) 2022-08-08 17:42:54 +02:00
ejurgensen 1725d5cef6 [mdns] If configured, use bind_address to set network interface
Otherwise keep using AVAHI_IF_UNSPEC. Resolves #1519.
2022-07-14 21:29:21 +02:00
ejurgensen 3754871c73 [misc] Add utility function to get interface name from IP address 2022-07-14 21:12:58 +02:00
ejurgensen 680c27eb66 [mdns] Fix possible crash after Avahi restart (fixes #1509)
Necessary to clear the resolver list on client restart, since especially
r->resolver becomes invalid when mdns_client is freed.

Also drop freeing of libevent watches and timers on deinit, it is not
necessary, Avahi will do it.
2022-07-14 21:00:34 +02:00
ejurgensen 0bde7acce8 [smartpl] Fix parsing of CRLF and "NOT (" (closes #1502) 2022-06-28 20:46:20 +02:00
ejurgensen 8f9f311bdf [dacp] Fix AirPlay speakers turning on by themselves (closes #1487)
Affects Denon speakers and possibly others
2022-06-06 10:20:40 +02:00
Christian Meffert ffcde46140
Merge pull request #1484 from chme/fix/consume-repeat
[player] Turn repeat mode off when activating consume mode
2022-06-03 07:51:37 +02:00
chme 9340443a3b [spotify] Remove "Spotify saved" playlist
This special playlist was previously required to keep track of saved
albums tracks to avoid purging them after a rescan, since then the
rescan logic was changed to use the Spotify web api and this playlist
has no use anymore.
2022-06-03 07:06:17 +02:00
chme efb9ba7767 [spotify] Additional cleanup of functionality only used with libspotify
- Remove playlist commands only used by libspotify: adding / removing
playlist command was used by the callbacks from libspotify to receive
incremental updates (did not work for some time)
- Remove "login" web api endpoint: no login into libspotify is required
any more. Spotify web api authorization follows the OAuth flow.
2022-06-03 07:06:17 +02:00
ejurgensen 02078212ac [httpd] Better log message when Spotify OAuth fails 2022-06-02 19:58:51 +02:00
chme 63bede3ee9 [player] Turn repeat mode off when activating consume mode and vice
versa
2022-05-28 09:42:07 +02:00
ejurgensen 0ca02687bd [spotify] Remove old libspotify integration
No longer works, libspotify has been sunset by Spotify
2022-05-25 22:49:35 +02:00
ejurgensen d4a2b11c3e [spotify] Slightly improved version of recent commit 79fb65f 2022-05-24 20:34:45 +02:00
hgy59 30f33b1b1d mdns_init: avoid null reference access
- when avahi client creation fails with mdns_client=null, use avahi_strerror(error) instead of MDNSERR
  to avoid access to mdns_client->error.
2022-05-22 20:56:49 +02:00
ejurgensen 79fb65fbd8 [spotify] Fix for "Premium account required" (issue #1474)
Sadly user-agent spoofing seems to be necessary after Spotify sunset of
libspotify. Apparently librespot is whitelisted.
2022-05-17 23:31:30 +02:00
whatdoineed2do/Ray 5cebf4aca2 [smartpl] add 'file_size' 2022-05-13 15:27:02 +01:00
whatdoineed2do/Ray 4418803aba [db,jsonapi] add file_size to count query 2022-05-13 09:51:06 +01:00
whatdoineed2do 670ac7745d
[rcp] bug fix - speaker unselection upon restart / obey volume (#1459) 2022-05-08 14:09:59 +02:00
ejurgensen c90a1c17e3 [-] Fix deprecated GCRY_THREAD_OPTION_PTHREAD_IMPL and GCRYCTL_SET_THREAD_CBS
Looks like libgcrypt uses platform standard threading instead of asking caller
for a threading package/callbacks.
2022-05-08 10:04:58 +02:00
whatdoineed2do/Ray b54a963f3a [web] typo prevent handling of LISTENER_SPEAKER events 2022-05-07 11:12:22 +01:00
Christian Meffert 6dbd90ad7f
Merge pull request #1461 from whatdoineed2do/player-missing-listener-event-on-device-fail
[player] send volume event when a device fails
2022-05-07 08:24:45 +02:00
chme d277f7c7b3 [http/spotify] Add support for http sessions across multiple requests
This change allows to reuse curl handles for multiple requests.
Reusing a curl handle improves performance if more than one request is
made against a service (connection, session cache, dns cache are kept
between requests).
2022-05-01 09:01:23 +02:00
whatdoineed2do/Ray b5bb0bd7f2 [player] send volume event when a device fails - without this the webui does not know that an output device failing, volume/selected status remains 2022-04-29 22:00:03 +01:00
whatdoineed2do/Ray 7d525e4dec [rcp] bug fix on deinit() - the rcp_session_cleanup() adv the head of list so no need to do again in deinit loop 2022-04-24 15:04:23 +01:00
Christian Meffert 7598a71aea
Merge pull request #1444 from chme/feat/jsonapi-pl-item-count
[jsonapi] Add item and stream count to playlists, expose config option "radio_playlists"
2022-04-08 17:44:02 +02:00
Christian Meffert 176142f311
Merge pull request #1445 from whatdoineed2do/websocket-slow-shutdown
[web] slow 4.1.6 shutdown; request to cancel ws loop
2022-04-06 17:27:38 +02:00
whatdoineed2do/Ray f33ccb9238 [web] slow 4.1.6 shutdown; request to cancel ws loop 2022-04-06 11:18:48 +01:00
chme 32c1516e60 [jsonapi] Add item and stream count to playlists, expose config option
"radio_playlists" in config endpoint
2022-04-05 21:48:24 +02:00
chme e5d3c148ea [db/scan] Force compilation artist if track belongs to a compilation 2022-04-04 20:55:19 +02:00
chme ecc139641a [spotify] Respect `album_override` setting when parsing Spotify tracks 2022-04-04 20:51:14 +02:00
chme 9564240613 [jsonapi] New endpoint to fetch single composer/genre
Refactor "browse" endpoints (genre and composer) by defining a common
endpoint with the browse type as path parameter.
2022-03-31 20:51:00 +02:00
chme b18b76413d [httpd] Fix parsing of uri into path parts with encoded '/' (%2F)
In path with an encoded '/' character, the parsing of the path into
parts was wrong.

E. g. an uri like
'/api/library/composers/Adam%20Gardner%2FDavid%20Schneider' would result
in the following parts:

- path_part[0] = "/api"
- path_part[1] = "library"
- path_part[2] = "composer"
- path_part[3] = "Adam Gardner"
- path_part[4] = "David Schneider"

Doing the decode after splitting the uri into parts fixes this and
results in:

- path_part[0] = "api"
- path_part[1] = "library"
- path_part[2] = "composer"
- path_part[3] = "Adam Gardner/David Schneider"
2022-03-31 20:51:00 +02:00
ejurgensen a932cc532d [smartpl] Increase size of parse output buffer
To accommodate for larger smart playlists
2022-03-24 22:58:54 +01:00
ejurgensen 03d05ea828 [spotify] Make sure failed AP's are avoided on next connection attempt 2022-03-22 20:58:43 +01:00
ejurgensen f27eac8341 [artwork] Also use queue_item->artwork_url for pipe sources 2022-03-22 20:57:43 +01:00
ejurgensen 54aa9c32cc [dacp] Listen for queue events to support json api metadata updates
Will only work for http and pipe sources

Fixes #1433
2022-03-22 20:57:43 +01:00
ejurgensen 5b23da9196 [player] 'clear_queue_on_stop_disable' in mpd section should keep working
Ref commit bfbd634
2022-03-20 20:30:25 +01:00
whatdoineed2do/Ray f6ce4c0df2 [player] missing update from 92279ef 2022-03-20 12:52:36 +00:00
ejurgensen 92279ef33d [library] Move clear_queue_on_stop_disable cfg option to library section
Resolves #1430
2022-03-17 22:44:06 +01:00
ejurgensen 48051f6364 [spotify] Handle channel error (so that new AP connection is triggered) 2022-03-15 21:14:28 +01:00
ejurgensen 75f6f75da3 [smartpl] Fix bison parser regression, missing "starts with" syntax
Also adds "ends with" syntax just for good measure.

Closes #1432
2022-03-07 23:31:52 +01:00
whatdoineed2do/Ray ac9772eecf [streaming] memleak introduced via e1375f6ad 2022-03-05 21:02:18 +00:00
ejurgensen e6823199d6
[db] Fix incorrect sorting of album/artist searches via web api (#1421)
Fix incorrect sorting of album/artist searches via web api. Also works with composers etc.

Fixes issue #1418
2022-02-20 10:18:13 +01:00
ejurgensen 616be4d8cb [db] Use custom LIKE operator adapted from sqlite's icu.c (closes #1390)
Improves the search, e.g.:
- 'é' LIKE 'e'
- 'æ' LIKE 'Æ'
- 'Ö' LIKE 'o'
2022-02-13 20:52:40 +01:00
ejurgensen edd22b6874 [scan] Remove unused libunistring includes 2022-02-12 20:58:16 +01:00
ejurgensen 6a5a27d3db [rcp] Fixup print masks, disable some logging 2022-02-11 22:09:14 +01:00
whatdoineed2do a0ea8416f6
[db] fix 'add next' when in queue shuffle mode (#1414)
* [db] fix 'add next' when in queue shuffle mode

* [db] review on 'add next' fix

Co-authored-by: whatdoineed2do/Ray <whatdoineed2do@nospam.gmail.com>
2022-02-06 20:23:06 +01:00
ejurgensen 26d7cf453c
Merge pull request #1397 from whatdoineed2do/outputs-soundbridge
[outputs] new output: Roku/Soundbridge RCP
2022-02-06 17:17:05 +01:00
whatdoineed2do/Ray 8f722faaf2 [outputs] new output: RCP/Roku/SoundBridge devices
Roku SoundBridge devices can be treated as dumb speakers; they offer a
texted based protocol, RCP, that allows the server to request the Roku
device to connect to the server's stream.mp3 and provides ability to
control volume

Roku devices appear as speakers automatically via mDNS announcements on
the server _roku-rcp._tcp
2022-02-05 21:59:00 +00:00
ejurgensen a19f5e3915 [db] Use static_assert() for map size consistency checking 2022-02-05 22:20:57 +01:00
ejurgensen dd5ab6eb1d [cast] Remove djb_hash() error check 2022-02-05 22:06:25 +01:00
whatdoineed2do/Ray c66df6864c [smartpl] add 'THIS WEEK' 2022-01-31 17:23:48 +01:00
ejurgensen d6a9ef4081 [smartpl] Minor lexer simplification 2022-01-31 17:21:53 +01:00
ejurgensen 4fee544a5d [misc] Fix possible read of uninitialized memory in safe_snreplace() 2022-01-31 17:20:37 +01:00
ejurgensen 75c3590741 [parsers] Use YYABORT instead of negative return
Seems return could lead to a memleak of yymsg
2022-01-31 00:44:29 +01:00
ejurgensen 410fa4b80e [smartpl] calloc error check to avoid Coverity warning 2022-01-31 00:43:41 +01:00
ejurgensen 4d8eed49a3 [-] Update gitignore with removed rsp hash file 2022-01-31 00:42:46 +01:00
ejurgensen 17b9ce0969 [smartpl/daap] Fix some error checks after PR #1386 2022-01-30 15:34:54 +01:00
ejurgensen 75c6733832 [smartpl] Add "scan_kind" field to smart query language (bison/flex version)
bison/flex version of commit #1694e6e
2022-01-30 09:58:48 +01:00
ejurgensen d0bfe193ee [rsp] Add more keywords to RSP lexer
Just in case they might be needed by some client
2022-01-29 17:46:40 +01:00
ejurgensen 228c8e7920 [daap] Move daap_query_parse_sql() into dmap_common.c/h, drop daap_query.c/h 2022-01-29 17:46:40 +01:00
ejurgensen 71b4444118 [rsp] Add basic bison/flex RSP parser 2022-01-29 17:46:40 +01:00
ejurgensen 9c1f7dd380 [smartpl] Add ESCAPE to LIKE queries where the value contains % and _
Plus various minor improvements
2022-01-29 17:46:40 +01:00
ejurgensen 9233c03ca8 [daap] Unescaping of \' in the value part of a daap clause 2022-01-29 17:46:40 +01:00
ejurgensen 6238647202 [smartpl] Minor improvements to parser 2022-01-29 17:46:40 +01:00
ejurgensen 3898a4b588 [smartpl] Make parser return actual datakind/mediakind values from db.h 2022-01-29 17:46:40 +01:00
ejurgensen db6f300071 [daap/smartpl] Fix print masks in parsers 2022-01-29 17:46:40 +01:00
ejurgensen 7b93336cab [smartpl] Escape value fields (protect against SQL injections) 2022-01-29 17:46:40 +01:00
ejurgensen 074ad56ca1 Attempt to fix macOS workflow mk8 2022-01-29 17:46:40 +01:00
ejurgensen 35382d1a7e Attempt to fix macOS workflow mk7 2022-01-29 17:46:40 +01:00
ejurgensen 54f6004bf9 [daap] Place ESCAPE properly in SQL query 2022-01-29 17:46:40 +01:00
ejurgensen f36d1cce6d Put bison/flex files in parsers dir, so scan-build --exclude can be used
The autogenerated files create warnings that we can't do much about, so
exclude them.
2022-01-29 17:46:40 +01:00
ejurgensen 397800c9cd [smartpl] Reinstate smartpl file scanner with new parser 2022-01-29 17:46:40 +01:00
ejurgensen efe5df5e12 [daap/smartpl] Add new bison/flex parsers 2022-01-29 17:46:40 +01:00
ejurgensen 3a93dc5da8 [daap/rsp/smartpl] Drop ANTLR parsers
Replacing the antlr parsers solves multiple issues:

- Build warnings (issue #307)
- Build hacks: "-Xconversiontimeout 30000" and other Makefile magic
- Incorrect parsing of daap queries with sql wildcards (like 'tag:*tes%t_ng*')
- Infinite recursion/memory/CPU (issue #570 and #1248)
- systemd service file workarounds due to memory/CPU issue
- ANTLR3 being replaced with ANTLR4 (that doesn't support C file generation)
- Runtime dependency on antlr library
- Difficult installs of ANTLR3 on some systems (special install script)
2022-01-29 17:46:40 +01:00
chme 1694e6e111 [smartpl] Add "scan_kind" field to smart query language 2022-01-22 12:07:52 +01:00
chme 1d2e4dc7a8 [db,library] Add "scan_kind" field to playlists, directories and files
(db upgrade to v22.00)

`scan_kind` identifies the library "scanner" component that created the
item and is responsible to keep it up to date (rescan).

The library update now supports passing a `scan_kind` to update only the
items of one particular "scanner". This allows e. g. to only update the
item from the Spotify library or only update the RSS feeds.

The OwnTone database is upgraded to v22.00 and the `scan_kind` columns
in `files`, `playlists`, `directories` are identified by:

 1. Check if item is part of a RSS playlist (podcast RSS feed), they
belong to the "rssscanner"
 2. Check if item has a Spotify `virtual_path`, they belong to the
"spotifyscanner"
 3. Remaining items belong to the "filescanner"
2022-01-22 10:38:31 +01:00
ejurgensen b5087e110f [xcode] Modifications for ffmpeg 5 (fixes #1396) 2022-01-21 19:25:58 +01:00
ejurgensen 33837f0382 [mpd] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen 6f6a9c6cb9 [misc] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen ad4c7fd74c [main] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen 933affaa7e [remote] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen dcb3973aa4 [web] Coverity fixups 2022-01-20 21:42:05 +01:00
ejurgensen 3e099072e8 [streaming] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen 2d84b0bab9 [alsa] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen cd4386228d [spotify] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen 0fdca0587c [airplay] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen a09da06e8f [scan] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen d72958f1f7 [db] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen 070866b41a [jsonapi] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen 53ee9a3c39 [daap] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen 334beb1cfa [httpd] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen c9aac896ee [player] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen 0bc574fafe [rtsp] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen b059d73211 [commands] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen e321c54655 [artwork] Coverity fixups 2022-01-20 20:17:38 +01:00
ejurgensen d857116e41 [daap] Fix null dereference on missing group-type param 2022-01-14 23:12:49 +01:00
ejurgensen 5e6f19a6da [airplay] Fix reading features txt from Kodi (fixes #1381)
Adds support for "features" values that are not comma separated.
2022-01-12 20:33:07 +01:00
ejurgensen 021a53aa64 [spotify] Add missing return() in librespot-c channel.c 2022-01-11 20:11:35 +01:00
ejurgensen 6a0c7db50a [airplay] Disable unused ntp_to_timestamp() 2022-01-11 20:10:54 +01:00
whatdoineed2do/Ray 07a9ed6654 [jsonapi] composer review 2021-12-30 10:49:45 +00:00
whatdoineed2do/Ray 69d32eb691 [jsonapi] support composers
- enable search for composer (albums/tracks)
- expose new rest endpoint for retreiving all known composers
2021-12-29 14:14:56 +00:00
chme 8dfbb460c2 [db/readme] Add comment to browse_info object; update docs for genre
endpoint
2021-12-29 12:01:42 +01:00
chme 8becdee8f1 [db] Refactor db_query_fetch_* functions to take the output parameter
first and the input parameter as last parameter
2021-12-28 07:23:56 +01:00
chme a65ee4462e [db] Refactor fetching query result into generic function
Additionally changes the return value in case the end of the result set
is reached.
2021-12-28 06:55:35 +01:00
chme d7086cab00 [db,jsonapi] Additional meta data for browse queries 2021-12-28 06:29:07 +01:00
chme f3fa343b9b [spotify] Add missing listener notification on librespot logout 2021-12-26 20:22:06 +01:00
whatdoineed2do/Ray 8f9356ff11 [http,conf] allow user to request no ssl peer verification
This solves for the case where hosted RSS podcasts have self signed or
expired certs:  using default (verify peer) in these instances results
in 'SSL peer certificate or SSH remote key was not OK'
2021-12-18 17:00:05 +00:00
ejurgensen 5efe0eeb0f [pipe] Fix regression in commit 6646802
Don't try to apply pipe metadata if parsing failed. Resolves #1366.
2021-12-12 10:32:42 +01:00
ejurgensen d6cc0e453d [airplay] Update pair_ap to 0.12
Better input validation of public keys
2021-12-06 22:49:34 +01:00
ejurgensen 088e26c1f0 [airplay] Fix rare pairing bug due to incorrect SRP padding (ref #1280)
Update pair_ap to version 0.11, which it fixes an issue where some randomized
values of SRP "a" are short enough that they require padding.
2021-12-04 23:05:33 +01:00
ejurgensen 1418bfb245 [scan] Don't iTunes playlist scan timestamp on failed scan
Also some refactoring.

Closes #1359
2021-12-01 20:11:54 +01:00
ejurgensen b71c353fc9 [spotify] Update librespot-c for better connection handling
- New attempt at fixing #1317: Don't prevent reconnection if a request is queued
- Protection against flooding Spotify with reconnection attempts
- Don't reconnect when getting a stop request during blocked download
2021-11-27 15:10:56 +01:00
ejurgensen ce5634e372 [spotify] Fix log message typo 2021-11-20 14:55:27 +01:00
ejurgensen 6646802832 [pipe] Fix deadlock coming from metadata pipe (issue #1343)
Cause of deadlock:
  new volume pipe metadata -> lock pipe mutex -> set player volume waiting for
  player -> player waiting for input write -> input write waiting for get
  metadata -> get metadata waiting for mutex

Change implementation so lock is only held while parsing/storing metadata,
where it is required, and not when calling the player.
2021-11-15 23:13:13 +01:00
ejurgensen 0d67f26662 [artwork] Fix memleak on pipe artwork error 2021-11-15 22:57:43 +01:00
ejurgensen 6d54886030 [librespot-c] Close connection if peer disconnects
Attempt to fix possible bad state where librespot-c keeps try to using a
connection even after the access point has disconnected.
2021-11-04 17:20:55 +01:00
ejurgensen 5e66dbd8c9 [spotify] Fix Spotify initialization issues
* loading library even though library playback login failed
2021-11-01 10:37:17 +01:00
ejurgensen 65d578f8c8 [scan] Ignore 0-byte files in library so ffmpeg 3.2 doesn't crash 2021-10-29 23:08:37 +02:00
whatdoineed2do a5f75dab36
[jsonapi] /api/library/*/{id} returns 404 (instead of 500) on not finding item (#1326)
Co-authored-by: whatdoineed2do/Ray <whatdoineed2do@nospam.gmail.com>
2021-10-25 17:36:51 +02:00
ejurgensen d2ee9f20fb [jsonapi] Add PUT /api/library/tracks endpoint (update multiple tracks)
Also fix error in json doc (track->id type)
2021-10-10 23:31:34 +02:00
ejurgensen 41e3733ccc [misc] Make safe_xxx integer conversions safer by checking for NULL input
Also don't touch output on error + fix missing check for return in db.c
2021-10-09 23:39:00 +02:00
ejurgensen c4d57aa5d1 [spotify] Clear spotify_status on logout (clears logged_in and username) 2021-10-05 20:46:44 +02:00
ejurgensen ae7280b770 [library] Fix macos format warning
library.c:233:123: warning: format specifies type 'long' but the argument has type '__darwin_suseconds_t' (aka 'int') [-Wformat]
2021-10-01 19:01:32 +02:00
ejurgensen 679c142212 [db] Remove unused strdup_if() 2021-10-01 18:58:13 +02:00
ejurgensen 5e93080aa2 [airplay] Fix warning about int type seqnum 2021-10-01 16:52:47 +02:00
ejurgensen aff8ac6a6b [raop] Fix warning about int type seqnum 2021-10-01 16:52:02 +02:00
ejurgensen 7572560bf2 [chromecast] Fix format and type errors 2021-10-01 16:44:30 +02:00
ejurgensen 63c3d59d2f [spotify] Preserve fine-grained errors from request_make() 2021-09-24 19:17:47 +02:00
ejurgensen 6692411040 [-] Fixup PR 1309 (usermark) 2021-09-17 22:58:21 +02:00
whatdoineed2do/Ray 4d5c256327 [db,jsonapi] revert usermark from queue item table 2021-09-16 10:43:55 +01:00
whatdoineed2do/Ray 16cf3cb44b [jsonapi] use u32 types for parsing param: rating 2021-09-16 09:11:31 +01:00
whatdoineed2do/Ray 52d1ba7dd4 [db,jsonapi] remove DB_FILES_USERMARK_MAX 2021-09-15 08:40:07 +01:00
whatdoineed2do/Ray d43ce017f5 [db,jsonapi,smartpl] db usermark flag review 2021-09-08 14:51:55 +01:00