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 |
|
Max Kellermann
|
2e1481f49d
|
input/tidal: add exception class TidalError
Allows catchers to inspect the HTTP status.
|
2018-01-24 15:34:54 +01:00 |
|