Max Kellermann
5147654f6c
SongFilter: fix "modified-since" filter
...
Error message sent to client was "basic_string::_M_construct null not
valid" due to passing nullptr to the std::string constructor.
Regression caused by commit 386688b87a
2018-02-09 13:19:26 +01:00
Max Kellermann
250b6a3d52
release v0.20.16
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlp2BjEQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEl0HEACEOGoX3a8slWwuPsqdOu+thc73SIMVzqF9
xzxFbGLyp0MzXTAgU+SLzfbD4/gerglC7TRbGzsvVu7iwxXeKhEL/SJ5RhrCQM3E
U8jaOeavMWeqX60pdbTz2zw4maKAD7U3fWcYxoh09EBaZa7Mm/j7URPLqrlWT7VD
iWqdLcC4HZarOxBbq0CY7rQPVsAVZZ5l43MDV6hiInSn0wWo783G6BtYFgvgH8qk
pZIL0yScQrjyj9D0fgfDC9DBVfHqMqpWW5G2rNhsXTUtpdb9V5tB2B8ZbIUWJfD7
aVFztCwwmbiBle4UBHfyyDLfZkBZmU/qKc9+I3WUxT4DLbA8gDXZFjb7zU80NMge
xzbXeO7XvxvSm7groqRh3Vy0nbkBMB9wTwzre3ULhYyhY2vVISb9lSyRtUE9xuR8
SL2zpdgVcFdTUSKat63ikeU4sbYvssra3ZDRnAyoFF2iVpT2J2B95ZVNfaIYbRSQ
lidlz8q3Px5GUDe3D0ao3hFk5t1Hg2jXx3nbz/Kk+SwZpsaiCewl6zjptye7R7zD
e9OMxYrU+/opsynRE5NFuTvkRKUG1kC47/rWgGZWI9Cbv8+lse1NO0c7VzM7o1hH
Bfk5AhEkv8tLNM+39evXdNQVB0cna5ndSDOkYBcPI78/PUNd+TnrPdfI/W3NCnRl
I+CWQE3uSQ==
=+tJ2
-----END PGP SIGNATURE-----
Merge tag 'v0.20.16'
release v0.20.16
2018-02-03 19:59:29 +01:00
Max Kellermann
975a4ae871
release v0.20.16
2018-02-03 19:55:07 +01:00
Max Kellermann
56aaf3c73e
python/build/libs: upgrade CURL to 7.58.0
2018-02-03 19:46:31 +01:00
Max Kellermann
12fd1cad0c
archive/iso9660: libcdio 2.0 compatibility
...
Closes #173
2018-02-03 19:32:31 +01:00
Max Kellermann
73ddbcc876
player/Thread: wake up the main thread after failed seek
...
Fixes deadlock bug. Closes #210
2018-02-03 19:28:39 +01:00
Max Kellermann
e573cbf032
db/update/Queue: work around GCC7 -Wuninitialized
2018-02-01 19:53:42 +01:00
Max Kellermann
dead461542
lib/upnp/Init: enable IPv6
2018-01-31 18:15:46 +01:00
Max Kellermann
3d5da1ac73
lib/upnp/Init: use nullptr instead of 0
2018-01-31 18:14:26 +01:00
Max Kellermann
ec408ca6a6
output/pulse: fix crash during auto-detection
...
The PulseOutput needs to be "enabled" before WaitConnection() may be
called.
Closes #207
2018-01-30 10:06:36 +01:00
Max Kellermann
ce2b6dc84d
RemoteTagCache: new glue class for integrating RemoteTagScanner
...
This commit also puts an instance of RemoteTagScanner into the
Instance class, and hooks it into the "add" and "addid" commands.
2018-01-30 00:05:57 +01:00
Max Kellermann
7d16d8c887
Listen: move ClientListener pointer to struct Partition
2018-01-29 23:53:52 +01:00
Max Kellermann
1df5c5a76e
Listen: move class ClientListener to src/client/Listener.hxx
2018-01-29 23:48:16 +01:00
Max Kellermann
52da387a1d
Main: move part of the shutdown code to Instance methods
2018-01-29 23:45:48 +01:00
Max Kellermann
c1221c5c87
Main: cancel the update on shutdown even if inotify is unavailable
...
Fixup for commit 681e012fb5
2018-01-29 23:37:56 +01:00
Max Kellermann
befd669075
Instance: rename Shutdown() to Break()
2018-01-29 23:31:41 +01:00
Max Kellermann
b6013a92e0
lib/curl/Request: merge two "try" blocks
2018-01-29 23:25:03 +01:00
Max Kellermann
19af364400
event/Thread: add "noexcept"
2018-01-29 23:11:15 +01:00
Max Kellermann
3fd9a86f3c
event/Call: invoke function directly if the EventLoop is dead
...
Works around a deadlock bug which happens when waiting for an
EventLoop which isn't running anymore.
2018-01-29 23:06:43 +01:00
Max Kellermann
ce68701c0c
event/Loop: add flag "dead"
2018-01-29 22:52:13 +01:00
Max Kellermann
6ea2cb3644
event/Thread: remove unused method StopAsync()
2018-01-29 22:50:21 +01:00
Max Kellermann
199c8aaa25
event/Loop: move code to HandleTimers()
2018-01-29 22:40:12 +01:00
Max Kellermann
9ce6828d72
filter/convert: call PcmConvert::Flush() only if initialized
...
Fixes another part of #208 , the one which caused the bogus exception.
2018-01-29 22:35:28 +01:00
Max Kellermann
7ff5cf8372
filter/convert: add method IsActive()
2018-01-29 22:33:54 +01:00
Max Kellermann
eb771eaf0d
output/Thread: re-lock the mutex after flush error
...
Fixes deadlock due to mutex double lock.
2018-01-29 22:30:56 +01:00
Max Kellermann
6908555ed3
filter/Observer: drop bogus "noexcept"
...
Closes #208 .
2018-01-29 22:14:27 +01:00
Max Kellermann
3890bc5a96
event/Loop: add "noexcept"
2018-01-29 22:05:58 +01:00
Max Kellermann
2c65f986d6
event/EPoll: use C++11 initializer
2018-01-29 22:05:13 +01:00
Max Kellermann
ea402b765c
event/WinSelect: pass const reference to copy constructor
2018-01-29 22:05:13 +01:00
Max Kellermann
497e0669ff
event/PollResult: use size_t for size and index
2018-01-29 21:56:12 +01:00
Max Kellermann
13ac74e0a2
system/EPollFD: update API documentation
2018-01-29 21:49:27 +01:00
Max Kellermann
c2f23d92dc
system/EPollFD: add "noexcept"
2018-01-29 21:48:39 +01:00
Max Kellermann
7027da3cd3
Instance: un-inline the destructor
...
Allows more forward declarations.
2018-01-29 18:43:10 +01:00
Max Kellermann
005bb59797
test/run_input: move code from Scan() to input/ScanTags.cxx
2018-01-29 16:57:44 +01:00
Max Kellermann
88bc3a9271
input/qobuz: implement InputPlugin::scan_tags()
2018-01-26 20:08:01 +01:00
Max Kellermann
2e32cf7b87
input/tidal: implement InputPlugin::scan_tags()
2018-01-26 20:08:01 +01:00
Max Kellermann
3ecf5fd442
test/run_input: add frontend for InputPlugin::scan_tags()
2018-01-26 20:08:01 +01:00
Max Kellermann
3e9c3c8ae8
input/Plugin: add method scan() with asynchronous callback class
...
To be used when a URL gets added.
2018-01-26 19:29:38 +01:00
Max Kellermann
ec31e8df1d
input/qobuz: remove obsolete prototypes
2018-01-26 19:29:38 +01:00
Max Kellermann
b56bfbae26
input/tidal: add setting "audioquality"
2018-01-26 19:18:13 +01:00
Max Kellermann
f55b1415d4
input/qobuz: move code to ExtractQobuzTrackId()
2018-01-26 18:48:15 +01:00
Max Kellermann
67693c6ad0
input/qobuz: add setting "format_id"
2018-01-26 17:30:28 +01:00
Max Kellermann
fce061b544
input/tidal: move code to ExtractTidalTrackId()
2018-01-26 17:29:58 +01:00
Max Kellermann
93765fcb30
input/{tidal,qobuz}: remove unused list_base_hook
2018-01-26 16:56:56 +01:00
Max Kellermann
b221bd7472
input/qobuz: remove bogus "noexcept"
...
This change was missing in 47fa8c4cf6
2018-01-25 15:19:33 +01:00
Max Kellermann
fd0a5a1116
decoder/{dsdiff,dsf,mpg123,wavpack}: avoid exceptions in scan methods
...
The scan methods must be "noexcept".
2018-01-25 13:01:39 +01:00
Max Kellermann
47fa8c4cf6
input/{tidal,qobus}: add bogus "noexcept"
...
The CurlRequest constructor can throw exceptions, therefore we must
not use "noexcept".
2018-01-25 12:58:58 +01:00
Max Kellermann
7640609b41
input/tidal: retry if session is expired
2018-01-24 15:35:02 +01:00
Max Kellermann
e8e6357b73
input/tidal/Error: add method IsInvalidSession()
2018-01-24 15:34:59 +01:00
Max Kellermann
4398101706
input/tidal: parse subStatus in error responses
2018-01-24 15:34:57 +01:00