Commit Graph

14632 Commits

Author SHA1 Message Date
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 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 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 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 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 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
Max Kellermann 3e2de560ca encoder/lame: eliminate the audio_format field 2022-07-12 12:08:46 +02:00
Max Kellermann c266fb7758 encoder/lame: Read() returns the internal buffer
Eliminate memcpy() calls.
2022-07-12 12:01:31 +02:00
Max Kellermann 0d09f307b2 encoder/Interface: update API docs 2022-07-12 12:00:02 +02:00