9187a08106
lib/curl: remove .netrc support on Android
...
Not needed on Android, and the implementation uses getpwuid_r() which
is unavailable on old Android versions.
2018-02-09 23:14:29 +01:00
3859a50466
python/build/libs.py: convert CURL edit to quilt patch
2018-02-09 23:14:27 +01:00
6ba918b203
input/file: don't use posix_fadvise() on Android
...
Requires Android API 21, but we want to support older versions as
well.
2018-02-09 22:54:22 +01:00
e8b70dbca4
SongSave, queue/PlaylistState, tag/ReplayGain: use portable atof() wrappers
...
For Android pre-5.0 compatibility (#213 ).
2018-02-09 22:54:22 +01:00
0f8d223c7f
protocol/ArgParser: move strtof()/strtod() switch to util/NumberParser.hxx
2018-02-09 22:54:22 +01:00
19a2885fd5
protocol/ArgParser: use strtod() instead of strtof() on Android
...
For Android pre-5.0 compatibility (#213 ).
2018-02-09 22:54:22 +01:00
e46fbd0780
filter/convert: set the PcmConvert instance only if it was initialized
...
Fixes valgrind warning.
2018-02-09 19:05:45 +01:00
56b74ad990
filter/convert: add method IsActive()
2018-02-09 19:04:45 +01:00
6de92bb42b
pcm/Order: fix size calculation with 8 channels
...
This was a buffer overflow bug which could cause MPD crahes when
playing back 8 channels with the ALSA output plugin.
Closes #216
2018-02-09 19:01:12 +01:00
c801936e53
db/update/Service: set the update thread name
2018-02-09 18:48:14 +01:00
817656504d
thread/Util: implement system call wrapper for sched_setscheduler()
...
There is a POSIX definition for sched_setscheduler(), but Linux does
not implement that; instead of changing the process's scheduler, it
only affects one thread. This has caused some confusion among
application developers and C library developers.
While glibc implements Linux semantics, Musl has made their
sched_setscheduler() function an always-failing no-op, causing the
error message "sched_setscheduler failed: Function not implemented".
http://git.musl-libc.org/cgit/musl/commit/src/sched/sched_setscheduler.c?id=1e21e78bf7a5c24c217446d8760be7b7188711c2
Instead of relying on the C library which may be unreliable here, we
now roll our own system call wrapper.
Closes #218
2018-02-09 18:43:45 +01:00
6f00f97b66
thread/Util: rename ioprio_set() to linux_ioprio_set()
...
Juse in cas glibc gets a wrapper for the system call which would then
conflict with ours.
2018-02-09 18:43:45 +01:00
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
250b6a3d52
Merge tag 'v0.20.16'
...
release v0.20.16
2018-02-03 19:59:29 +01:00
12fd1cad0c
archive/iso9660: libcdio 2.0 compatibility
...
Closes #173
2018-02-03 19:32:31 +01:00
73ddbcc876
player/Thread: wake up the main thread after failed seek
...
Fixes deadlock bug. Closes #210
2018-02-03 19:28:39 +01:00
e573cbf032
db/update/Queue: work around GCC7 -Wuninitialized
2018-02-01 19:53:42 +01:00
dead461542
lib/upnp/Init: enable IPv6
2018-01-31 18:15:46 +01:00
3d5da1ac73
lib/upnp/Init: use nullptr instead of 0
2018-01-31 18:14:26 +01:00
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
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
7d16d8c887
Listen: move ClientListener pointer to struct Partition
2018-01-29 23:53:52 +01:00
1df5c5a76e
Listen: move class ClientListener to src/client/Listener.hxx
2018-01-29 23:48:16 +01:00
52da387a1d
Main: move part of the shutdown code to Instance methods
2018-01-29 23:45:48 +01:00
c1221c5c87
Main: cancel the update on shutdown even if inotify is unavailable
...
Fixup for commit 681e012fb5
2018-01-29 23:37:56 +01:00
befd669075
Instance: rename Shutdown() to Break()
2018-01-29 23:31:41 +01:00
b6013a92e0
lib/curl/Request: merge two "try" blocks
2018-01-29 23:25:03 +01:00
19af364400
event/Thread: add "noexcept"
2018-01-29 23:11:15 +01:00
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
ce68701c0c
event/Loop: add flag "dead"
2018-01-29 22:52:13 +01:00
6ea2cb3644
event/Thread: remove unused method StopAsync()
2018-01-29 22:50:21 +01:00
199c8aaa25
event/Loop: move code to HandleTimers()
2018-01-29 22:40:12 +01:00
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
7ff5cf8372
filter/convert: add method IsActive()
2018-01-29 22:33:54 +01:00
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
6908555ed3
filter/Observer: drop bogus "noexcept"
...
Closes #208 .
2018-01-29 22:14:27 +01:00
3890bc5a96
event/Loop: add "noexcept"
2018-01-29 22:05:58 +01:00
2c65f986d6
event/EPoll: use C++11 initializer
2018-01-29 22:05:13 +01:00
ea402b765c
event/WinSelect: pass const reference to copy constructor
2018-01-29 22:05:13 +01:00
497e0669ff
event/PollResult: use size_t for size and index
2018-01-29 21:56:12 +01:00
13ac74e0a2
system/EPollFD: update API documentation
2018-01-29 21:49:27 +01:00
c2f23d92dc
system/EPollFD: add "noexcept"
2018-01-29 21:48:39 +01:00
7027da3cd3
Instance: un-inline the destructor
...
Allows more forward declarations.
2018-01-29 18:43:10 +01:00
005bb59797
test/run_input: move code from Scan() to input/ScanTags.cxx
2018-01-29 16:57:44 +01:00
88bc3a9271
input/qobuz: implement InputPlugin::scan_tags()
2018-01-26 20:08:01 +01:00
2e32cf7b87
input/tidal: implement InputPlugin::scan_tags()
2018-01-26 20:08:01 +01:00
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
ec31e8df1d
input/qobuz: remove obsolete prototypes
2018-01-26 19:29:38 +01:00
b56bfbae26
input/tidal: add setting "audioquality"
2018-01-26 19:18:13 +01:00
f55b1415d4
input/qobuz: move code to ExtractQobuzTrackId()
2018-01-26 18:48:15 +01:00