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