Commit Graph

17502 Commits

Author SHA1 Message Date
Max Kellermann
2d2df25d04 mixer/Mixer: avoid locking twice 2022-08-18 17:39:17 +02:00
Max Kellermann
29eb3e9ebc mixer/Control: move some code to Lock*() methods 2022-08-18 17:34:00 +02:00
Max Kellermann
b0873fbc90 mixer/Mixer*: drop the "Mixer" prefix from source files 2022-08-18 17:21:39 +02:00
Max Kellermann
c14484a5cc mixer/MixerList: eliminate header 2022-08-18 17:14:42 +02:00
Max Kellermann
a966cfeb1f playlist/cue/CueParser: fix nullptr dereference
Regression from commit 21e4c25e61
2022-08-18 17:06:51 +02:00
Max Kellermann
6c0546d829 mixer/Internal: document that caller must lock the mutex 2022-08-18 16:57:58 +02:00
Max Kellermann
e1e8f45983 mixer/Control: add noexcept 2022-08-18 16:56:32 +02:00
Max Kellermann
3eedcc55b9 mixer/Control: convert pointers to references 2022-08-18 16:56:06 +02:00
Max Kellermann
dd2cab1488 Merge branch 'v0.23.x' 2022-08-18 16:54:18 +02:00
Max Kellermann
f883c09b6b fs/FileSystem: add pure attributes 2022-08-18 16:53:32 +02:00
Max Kellermann
71acad6c21 fs/FileSystem: add noexcept 2022-08-18 16:53:31 +02:00
Max Kellermann
e2d4654e20 filter/ReplayGain: invoke the MixerListener after volume change
This ensures that Partition::OnMixerVolumeChanged() invokes
MixerMemento::InvalidateHardwareVolume(), clearing the cached volume
level.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1526
2022-08-18 14:45:45 +02:00
Max Kellermann
2b8f1170a6 mixer/Control: use Mixer::IsGlobal() 2022-08-18 14:33:35 +02:00
Max Kellermann
5c4743441e mixer/All: use Mixer::IsPlugin() 2022-08-18 14:08:31 +02:00
Max Kellermann
938054bdb8 command/all: fix off-by-one bug in parameter count check 2022-08-09 12:47:57 +02:00
Max Kellermann
d0909adf6b command/all: use class StaticVector 2022-08-09 12:46:26 +02:00
Max Kellermann
a12b004fa4 util/StaticVector: new class 2022-08-09 12:44:02 +02:00
Max Kellermann
a8452957fc command/Request: pass std::span to constructor 2022-08-09 12:43:52 +02:00
Max Kellermann
feb334756e command/all: convert macro to constexpr 2022-08-09 12:39:18 +02:00
Max Kellermann
50a4d7169e TagAny: pass std::string_view to uri_has_scheme() 2022-08-09 11:43:35 +02:00
Max Kellermann
6239b6c0e2 Merge branch 'v0.23.x' 2022-08-08 23:48:38 +02:00
Max Kellermann
cb288439a4 {android,win32}/build.py: make stdout/stderr unbuffered
Avoid excessive buffering if run by CI.
2022-08-08 23:48:23 +02:00
Max Kellermann
b789ffd2bf Merge branch 'v0.23.x' 2022-08-08 23:46:22 +02:00
Max Kellermann
69f741e8a6 mixer/Memento: move IDLE_MIXER out of SetVolume()
Make this idle event per-partition.
2022-08-08 23:32:57 +02:00
Max Kellermann
4b4f47002b mixer/Volume: refactor to class MixerMemento, per partition
Eliminate global variables, convert them to MixerMemento fields.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1583
2022-08-08 23:30:27 +02:00
Max Kellermann
615c301961 mixer/Volume: remove logging (mostly useless) 2022-08-08 23:13:14 +02:00
Max Kellermann
dc07180e48 input/CdioParanoia: add options "mode" and "skip"
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1529
2022-08-08 22:53:48 +02:00
Max Kellermann
d3b235bab5 input/CdioParanoia: move global variables up 2022-08-08 22:38:28 +02:00
Max Kellermann
0279f4fb57 output/jack: fix bogus assertion failure
Regression from commit 45071607aa

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1571
2022-08-08 22:01:59 +02:00
Max Kellermann
7c920ddebe filter/ffmpeg: fix FFmpeg 5.1 deprecation warnings 2022-08-08 21:34:26 +02:00
Max Kellermann
88793cbc1a output/httpd: avoid extra buffer copy if possible 2022-08-08 21:00:38 +02:00
Max Kellermann
2afe427ab3 output/httpd: copy from returned encoder buffer
This fixes a regression from commits c266fb7758 and 00b8ced09f,
but really caused by API change in commit 7e14f8f830, and this
plugin's failure to adapt to this API change.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1585
2022-08-08 21:00:27 +02:00
Dave Hocker
bbc088ae4e This PR provides forward and backward compatibility at macos SDK 12.0. At SDK 12.0, API function names were changed essentially replacing
occurrences of the word Master/master with Main/main. This change was test built on two different systems.

1. macos 10.15.7 with Xcode 12.4 and clang 12.0.0 on x86_64
2. macos 12.5 with Xcode 13.4.1 and clang 13.1.6 on arm64 (Apple silicon M1)

It should be noted that on macos 10.15.7 with Xcode 11.2 and clang 11.0, MPD will not build.
The MPD documentation states that clang 11.0 is the minimum requirement,
but clang 11.0 produces compile errors. Apparently the macos version
of clang 11.0 is not fully compliant.
2022-08-08 17:39:29 +02:00
Max Kellermann
4c08c0b8b1 Merge branch 'v0.23.x' 2022-07-27 11:06:47 +02:00
Max Kellermann
fe195257d8 python/build/libs.py: update FFmpeg to 5.1 2022-07-27 11:04:14 +02:00
Max Kellermann
57d5df8118 decoder/ffmpeg: fix FFmpeg 5.1 deprecation warnings 2022-07-27 11:04:09 +02:00
Max Kellermann
59792cb0b8 decoder/ffmpeg: wrap FFmpeg include in "extern C"
Commit ebae25d175 added that #include, but forgot to wrap it in
"extern C", so the linker tried to look up C++ symbols, causing linker
failure.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1582
2022-07-27 11:04:03 +02:00
Max Kellermann
b864094fdc Merge branch 'master' of https://github.com/Sonico98/MPD 2022-07-21 21:14:15 +02:00
Sonico
3ef83cc34e Add titleSort tag 2022-07-20 23:05:10 -03:00
Rosen Penev
3f133dd586 use data() instead of &[0]
No need for C pointer manipulation.

Removed data() for string_view as [] can be used without.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-07-20 13:50:48 -07:00
Rosen Penev
cc557c4d60 meson: port ncpmc iconv solution
Properly deals with iconv, unlike the current solution. have_iconv fails
when libiconv CFLAGS are passed to the compiler. Tested under OpenWrt
with its CONFIG_BUILD_NLS, which adds libiconv include flags.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-07-20 08:03:24 +02:00
Max Kellermann
0c98d93e9a io/FileOutputStream: write to temporary file if O_TMPFILE is not available 2022-07-14 18:45:33 +02:00
Max Kellermann
c344403bed fs/Path: add operator+ 2022-07-14 18:42:25 +02:00
Max Kellermann
150e8f78bf io/FileOutputStream: use fsync() if fdatasync() is unavailable
Fixes the macOS build which apparently doesn't implement the POSIX
function fdatasync().
2022-07-14 18:34:44 +02:00
Max Kellermann
bc7fdba36d test/fs/TestPath: add missing PATH_LITERAL 2022-07-14 18:34:43 +02:00
Max Kellermann
fe3ab7b937 fs/Path: add WithSuffix() 2022-07-14 18:23:48 +02:00
Max Kellermann
458084d79b fs/Path: add GetSuffix() 2022-07-14 18:20:55 +02:00
Max Kellermann
f44bc19ce1 test/fs/TestPath: new unit test 2022-07-14 18:20:45 +02:00
Max Kellermann
d3947d0ad5 fs/Path: GetExtension() skips all leading dots
Don't return an empty string for "..", because this path doesn't have
an extension.
2022-07-14 18:20:45 +02:00
Max Kellermann
849ed122c7 fs/Path: document GetExtension() 2022-07-14 18:12:00 +02:00