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
Max Kellermann
254ee00c37
fs/Path: rename GetSuffix() to GetExtension()
...
The "extension" is the name after the dot, but the "suffix" is the
string including the dot.
2022-07-14 18:12:00 +02:00
Max Kellermann
594b97feb1
fs/Path: change cast syntax
2022-07-14 18:12:00 +02:00
Max Kellermann
cc0def15c4
Copyright year 2022
2022-07-14 17:59:35 +02:00
Max Kellermann
81154130b5
test/fs: rename TestFs.cxx to TestGlob.cxx
2022-07-14 17:57:10 +02:00
Max Kellermann
0514f25c61
test/TestFs: move to test/fs/
2022-07-14 17:56:37 +02:00
Max Kellermann
2670bbdcc8
io/FileOutputStream: simplify OpenTempFile() call
2022-07-14 15:47:10 +02:00
Max Kellermann
bd3e096411
io/FileOutputStream: move code to Delete()
2022-07-14 15:43:36 +02:00
Max Kellermann
270a74e53b
io/FileOutputStream: add method Sync()
2022-07-14 15:41:12 +02:00
Max Kellermann
47d103e8a1
io/FileOutputStream: add API documentation
2022-07-14 15:41:03 +02:00
Max Kellermann
188f7ab795
thread/WindowsCond: add explicit cast
2022-07-14 13:04:08 +02:00
Max Kellermann
4953a57c1c
java/String: add std::string_view constructor
2022-07-14 13:03:23 +02:00
Max Kellermann
199037c682
config: allow configuring partitions
...
This just allows creating empty partitions. More features to come.
2022-07-13 15:18:06 +02:00
Max Kellermann
64f84d5468
player/Listener: add virtual method OnPlayerState(), wrapping IDLE_PLAYER
...
This eliminates most of the remaining global "player" idle events.
2022-07-13 14:11:36 +02:00
Max Kellermann
047561dc22
player/Listener: add virtual method OnPlayerError()
...
Replaces two global idle_add() calls.
2022-07-13 14:11:36 +02:00
Max Kellermann
a542a0804a
Partition: OnPlayerTagModified() emits IDLE_PLAYER
...
Replaces one global idle_add() call.
2022-07-13 14:11:36 +02:00
Max Kellermann
cddeb2a0df
io/BufferedOutputStream: add missing #include
2022-07-13 14:11:36 +02:00
Max Kellermann
de1d443db1
output/Multiple: use std::size_t
2022-07-13 13:26:27 +02:00
Max Kellermann
e2040ed395
output/Multiple: use [[gnu::pure]]
2022-07-13 13:25:17 +02:00
Max Kellermann
8a0ba7a725
output/Control: GetName() returns std::string&
2022-07-13 13:23:21 +02:00
Max Kellermann
e74788ea32
output/Control: inline GetName()
2022-07-13 13:13:23 +02:00
Max Kellermann
fef79931c5
output/Multiple: pass std::string_view to FindByName()
2022-07-13 13:13:21 +02:00
Max Kellermann
b52b0ac85a
*: use BufferedOutputStream::Fmt()
2022-07-13 13:10:14 +02:00
Max Kellermann
9a30286289
io/BufferedOutputStream: add libfmt support
2022-07-13 12:52:20 +02:00
Max Kellermann
20310437d0
.github/workflows/build.yml: build with Ubuntu 22.04 as well
2022-07-13 12:41:04 +02:00
Max Kellermann
d29e1544bf
.github/workflows/build.yml: explicitly select ubuntu-20.04
...
According to https://github.com/actions/virtual-environments
"ubuntu-latest" maps to "ubuntu-20.04", even though "ubuntu-22.04" is
also available. Since our job description is very specific to
"ubuntu-20.04", let's select this explicitly.
2022-07-13 12:37:02 +02:00
Max Kellermann
ae4f4d3533
config/Data: add WithEach(ConfigBlockOption)
...
To improve error messages without making callers more complex.
2022-07-13 11:05:21 +02:00
Max Kellermann
89a18b49a7
Merge branch 'v0.23.x'
2022-07-12 14:00:00 +02:00
guihkx
956c5faebb
output/PipeWire: set app icon
...
Closes #1564
2022-07-12 13:59:05 +02:00
Max Kellermann
eb589b0a46
output/osx: fix CI failure
2022-07-12 13:37:46 +02:00
Max Kellermann
52eff41379
remove Haiku support
...
Haiku support has been unmaintained for many years, and this issue has
been open for more than 5 years, but apparently the Haiku people have
lost interest:
https://github.com/MusicPlayerDaemon/MPD/pull/183
Haiku support was therefore deprecated by this commit 4 years ago:
7de8fd04a4
- but in those 4 years, nobody stepped up to adopt
maintainership.
I don't have any computer (or VM) with Haiku and there is no CI with
Haiku support, so I'm unable to adapt the Haiku specific code to API
changes.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/182
Closes https://github.com/MusicPlayerDaemon/MPD/issues/185
2022-07-12 13:14:49 +02:00
Max Kellermann
45071607aa
output/Interface: pass std::span to Play()
2022-07-12 12:59:47 +02:00
Max Kellermann
f5d104e7af
output/ao: simplify write_size checks
2022-07-12 12:58:19 +02:00
Max Kellermann
4f8d2a8b1c
output/alsa: use std::byte instead of uint8_t
2022-07-12 12:36:39 +02:00
Max Kellermann
0158a2b6b9
encoder/flac: refactor input buffer conversion
2022-07-12 12:31:08 +02:00
Max Kellermann
00b8ced09f
encoder/flac: Read() returns the internal buffer
2022-07-12 12:19:55 +02:00
Max Kellermann
5f51be43cf
decoder/flac: add noexcept
and inline
2022-07-12 12:15:06 +02:00