Max Kellermann
6b3a282db4
lib/curl/Request: don't enable CURLOPT_NETRC on Windows
...
Our Windows build is built with `--disable-netrc`, and that makes
CURLOPT_NETRC fail, causing failures with all streams. D'oh!
Closes https://github.com/MusicPlayerDaemon/MPD/issues/886
2020-06-10 22:46:42 +02:00
Max Kellermann
7583cfe9b7
{android,win32}/build.py: enable the GME decoder plugin
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/891
2020-06-10 21:33:29 +02:00
Max Kellermann
aafc9ce75b
decoder/gme: use class NarrowPath() for Windows compatibility
2020-06-10 21:22:00 +02:00
Max Kellermann
fea326530b
decoder/gme: simplify LoadGmeAndM3u() by moving code to ReplaceSuffix()
2020-06-10 21:20:49 +02:00
Max Kellermann
8925cc17d8
decoder/gme: use StringAfterPrefix()
2020-06-10 21:11:08 +02:00
Max Kellermann
14412c867f
add a few IWYU pragmas
2020-06-10 21:10:33 +02:00
Max Kellermann
c5cc256bf2
decoder/gme: use Path::GetSuffix()
2020-06-10 21:02:07 +02:00
Max Kellermann
563c7318f9
fs/AllocatedPath: add method GetSuffix()
2020-06-10 21:00:41 +02:00
Max Kellermann
e92129f449
doc/protocol.rst: clarify the term "UNIX time"
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/893
2020-06-10 20:42:42 +02:00
Max Kellermann
374cc51f77
decoder/Bridge: add flag to make initial seek errors fatal
...
When the client wants to seek, but the decoder has already finished
decoding the current song, the player restarts the decoder with an
initial seek at the new position. When this initial seek fails, MPD
pretends nothing has happened and plays this song from the start.
With this new flag, a restarted decoder marks the initial seek as
"essential" and fails the decoder if that seek fails.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/895
2020-06-10 17:49:10 +02:00
Rosen Penev
1008d5f67c
use cwchar include
...
Needed for std::wmemchr under libcxx
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-05-30 13:22:04 +02:00
Shen-Ta Hsieh
8e07ea7ad8
src/db: fitting libmpdclient interface
2020-05-29 19:00:16 +02:00
Max Kellermann
d751df0a73
storage/State: disable -Wcomma to work around Boost compiler warning
2020-05-28 14:00:31 +02:00
Max Kellermann
2c084781b0
output/openal: disable -Wdeprecated-declarations on Apple
2020-05-28 13:59:52 +02:00
Max Kellermann
ae7d550a01
meson.build: remove `-Wall -Wextra`, to be set by Meson
2020-05-28 13:19:34 +02:00
Max Kellermann
30d97fe8a0
meson.build: fix the WildMidi check when the feature is disabled
...
Fixes regression from commit 69f09648a4
2020-05-27 16:06:49 +02:00
Max Kellermann
5cb0080052
meson.build: default to warning_level=2
...
This branch isn't yet ready for level 3 (`-Wpedantic`) due to several
C++ violations (e.g. variable length arrays). These are already
cleaned up in the master branch (0.22).
2020-05-27 15:57:13 +02:00
Max Kellermann
8e4ca23727
lib/ffmpeg/Time: replace C99 compound literal with C++ initializer list
2020-05-27 15:54:34 +02:00
Max Kellermann
bdc861f058
util/TemplateString: remove extra semicolon
2020-05-27 15:46:55 +02:00
Rosen Penev
8925040262
remove some more extra semicolons
...
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-05-27 15:36:53 +02:00
Max Kellermann
c065950ced
.travis.yml: disable zzip on OS X to fix Travis-CI build failure
2020-05-27 15:31:34 +02:00
Max Kellermann
257a77fa35
{android,win32}/build.py: build libmodplug and WildMidi
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/866
2020-05-27 15:03:49 +02:00
Max Kellermann
4e5d6e560b
decoder/modplug: assume ModPlug is built as static library on Windows
2020-05-27 15:03:46 +02:00
Max Kellermann
d276d8eda2
decoder/wildmidi: assume WildMidi is built as static library on Windows
2020-05-27 15:03:35 +02:00
Max Kellermann
ebcb5e9368
decoder/wildmidi: use NarrowPath, fixing the Windows build
2020-05-27 15:03:33 +02:00
Max Kellermann
69f09648a4
meson.build: attempt to detect WildMidi using pkg-config
...
The WildMidi project added the pkg-config file in version 0.3.3, but
unfortunately, Debian still doesn't ship it 4 years later:
https://bugs.debian.org/916631
However, for cross-compiling, the pkg-config file is very helpful.
2020-05-27 15:03:16 +02:00
Max Kellermann
9adda30c38
NEWS: move two lines below Windows/Android
2020-05-27 14:33:43 +02:00
Max Kellermann
d2d4a0251e
.gitignore: add emacs lsp-mode files
2020-05-26 21:07:56 +02:00
Max Kellermann
f7b6431b6f
meson.build: work around Meson bug detecting strndup() on Windows
...
Work around Meson bug https://github.com/mesonbuild/meson/issues/3672
2020-05-26 20:50:56 +02:00
Max Kellermann
03b9bd3a9e
python/build/libs.py: update FFmpeg to 4.2.3
2020-05-26 18:54:56 +02:00
Max Kellermann
61aed60f6d
python/build/libs.py: update CURL to 7.70.0
2020-05-07 14:18:55 +02:00
Max Kellermann
2cc323c9fe
python/build/libs.py: update Boost to 1.73.0
2020-05-07 14:18:21 +02:00
Max Kellermann
f24ab120ee
android/build.py: use -fpic instead of -fPIC on ARM/Aarch64
...
Sync with the Android NDK build scripts.
2020-05-07 13:58:36 +02:00
Max Kellermann
68349bc55c
android/build.py: use -mfpu=vfpv3-d16 on ARMv7
...
This flag is used by the Android NDK build scripts as well, and this
fixes a build failure (assembler error) with FFmpeg and NDK r21.
2020-05-07 13:50:33 +02:00
Max Kellermann
209364adf2
db/simple: fix crash when mounting twice
...
The `db->close()` call was a `nullptr` dereference because the `db`
variable had already been moved.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/839
2020-05-05 18:57:29 +02:00
Max Kellermann
24afdee35c
command/all: "tagtypes" requires no permissions
...
The command is used to configure the client's connection, and this
shouldn't require any permissions. The client should be able to do
that before sending a password.
2020-04-30 13:08:09 +02:00
Max Kellermann
7aea285361
Revert "Fix unsafe float comparison."
...
This reverts commit a5273d6992
. It was
wrong and broke the MixRamp unit test.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/844
2020-04-30 06:57:36 +02:00
Rosen Penev
47a7707df1
Math.hxx: fix wrong macro name
...
_GLIBCXX_USE_C99_MATH_TR1 is the correct one.
_GLIBCXX_USE_C99_MATH is always defined.
2020-04-29 23:20:04 +02:00
Max Kellermann
6fdae1139f
increment version number to 0.21.24
2020-04-29 23:20:04 +02:00
Max Kellermann
6c240f667c
release v0.21.23
2020-04-23 17:46:20 +02:00
Max Kellermann
3040ddb5ec
lib/nfs/FileReader: use `struct stat64` on Windows 32-bit
...
libnfs is compiled with `-D_FILE_OFFSET_BITS=64`, but Meson decides
not to enable this mode. We could force this mode, but then again,
these days, nobody should be using 32-bit Windows ... so this is a
kludge only for debugging with 32-bit WINE.
2020-04-23 17:32:34 +02:00
Max Kellermann
fdb28eb0c4
fs/NarrowPath: preserve nullptr in Path operator
...
Fixes Path::IsNull() checks on Windows.
2020-04-23 17:10:28 +02:00
Max Kellermann
7ded244a61
lib/nfs/Connection: pass POLLHUP and POLLERR to nfs_service()
2020-04-23 16:58:53 +02:00
Max Kellermann
8ed533acf3
event/SocketMonitor: handle epoll_ctl()=EBADF/ENOENT in Schedule()
...
This fixes a freeze bug in the NFS input/storage plugins: when libnfs
auto-reconnets after a failure, it installs the new socket on the same
file descriptor number. MPD's attempt to unregister the old socket by
calling SocketMonitor::Steal() from NfsConnection::ScheduleSocket()
fails because the new/old socket number is not registered in epoll, so
epoll_ctl() returns ENOENT. The problem is that it left
`scheduled_flags`, and so subsequent Schedule() calls will use
`EPOLL_CTL_MOD`, which will fail again and again. Instead, we need to
use `EPOLL_CTL_ADD` to register the new socket.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/806
Closes https://github.com/MusicPlayerDaemon/MPD/issues/756
2020-04-23 16:58:26 +02:00
Max Kellermann
a27580d0cc
lib/nfs/Connection: don't pass HANGUP to Schedule()
...
This flag is output-only.
2020-04-23 15:21:04 +02:00
Max Kellermann
905db05cf9
zeroconf/AvahiPoll: don't pass ERROR|HANGUP to Schedule()
...
These flags are output-only.
2020-04-23 15:19:24 +02:00
Max Kellermann
4242aee21e
event/SocketMonitor: remove HANGUP|ERROR from ScheduleRead()
...
These flags are output-only. Using them here is misleading.
2020-04-23 15:18:18 +02:00
Max Kellermann
e71bd2a08b
event/PollGroupWinSelect: make EVENT_{READ,WRITE} `static`
2020-04-23 15:10:57 +02:00
Max Kellermann
e53a4d0a9e
lib/nfs/FileReader: reset `state` in OnNfsCallback()
...
The object's state is `IDLE` when OnNfsCallback() gets invoked, so
let's use the start of the method to reset the `state` field.
2020-04-23 14:54:52 +02:00
Max Kellermann
159389164a
lib/nfs/FileReader: set `state=IDLE` before invoking callback
...
Fixes assertion failure if the callback fails.
2020-04-23 14:51:43 +02:00