Max Kellermann
851fcf4823
decoder/gme: require GME 0.6 or later
...
This allows dropping a few compile-time version checks and we can use
pkg-config to detect the library.
2023-03-09 18:27:05 +01:00
Max Kellermann
63b9fb3d2b
event/meson.build: add missing dependency on libio.a
2023-03-09 18:27:05 +01:00
Max Kellermann
a79454f6a6
io/FileDescriptor: fold CreateSignalFD() into the SignalFD constructor
2023-03-09 18:04:58 +01:00
Max Kellermann
b5fbfe9aa6
io/FileDescriptor: fold CreateEventFD() into the EventFD constructor
2023-03-09 17:59:56 +01:00
Max Kellermann
598894211f
decoder/ffmpeg: require FFmpeg 4.0 or later
2023-03-08 20:32:35 +01:00
Max Kellermann
dbfd0a833d
io/meson.build: move sources to libio_fs.a
...
Only that one has a dependency on libfs.a (for class AllocatedPath
etc.).
2023-03-07 12:48:47 +01:00
Max Kellermann
d45994268f
system/PeriodClock: move to time/
2023-03-07 12:08:44 +01:00
Max Kellermann
815b248990
*/Registry: use constinit
2023-03-07 12:04:16 +01:00
Max Kellermann
333b36f090
output/Registry: add noexcept
2023-03-07 11:57:55 +01:00
Max Kellermann
b18ef61361
output/Registry: rename function
2023-03-07 11:57:36 +01:00
Max Kellermann
86ae45108c
output/Finish: fold into Filtered.cxx
2023-03-07 11:54:46 +01:00
Max Kellermann
5ef29c424d
output/meson.build: add liboutput_registry.a
2023-03-07 11:53:16 +01:00
Max Kellermann
c8dfb57408
output/meson.build: move OutputPlugin.cxx to liboutput_api.a
2023-03-07 11:52:32 +01:00
Max Kellermann
b773ef3f0f
win32/HResult: use libfmt
2023-03-06 20:10:06 +01:00
Max Kellermann
c8f54b3509
lib/pcre/UniqueRegex: use libfmt
2023-03-06 20:10:06 +01:00
Max Kellermann
00d5e6e9c7
lib/avahi/Publisher: use libfmt
2023-03-06 20:10:06 +01:00
Max Kellermann
1132a1c9a7
protocol/ArgParser: use libfmt
2023-03-06 20:10:06 +01:00
Max Kellermann
149d1a2f47
output/shout: use libfmt
2023-03-06 20:10:06 +01:00
Max Kellermann
17f2c0ae88
output/httpd: use libfmt
2023-03-06 20:10:06 +01:00
Max Kellermann
ce0b4d5c19
system/Error: remove unused function FormatSystemError()
2023-03-06 20:10:06 +01:00
Max Kellermann
0c102a8f2f
meson.build: add missing libfmt dependencies
2023-03-06 20:10:06 +01:00
Max Kellermann
415de497d3
use more libfmt instead of sprintf()
2023-03-06 19:50:53 +01:00
Max Kellermann
02d108774c
test/meson.build: add missing dependencies on libio.a
2023-03-06 19:50:52 +01:00
Max Kellermann
2c66d90626
fs/io: move to separate library
...
To eliminate the libio.a dependency.
2023-03-06 19:47:29 +01:00
Max Kellermann
e4cdf29951
fs/meson.build: make several dependencies internal
2023-03-06 19:44:34 +01:00
Max Kellermann
b5d224ce22
fs/{StandardDirectory,CheckFile}: move to fs/glue/
...
Distangle library dependencies.
2023-03-06 19:43:09 +01:00
Max Kellermann
c937a299f7
fs/Charset: assign fs_charset
...
This got lost 8 years ago in commit 87c88fcb27
D'oh!
2023-03-06 19:25:44 +01:00
Max Kellermann
6d4ec8b46f
fs/Charset: remove useless log message
2023-03-06 19:20:22 +01:00
Max Kellermann
941f2ca60d
pcm/{Traits,Dsd*}: use std::byte
2023-03-06 18:44:20 +01:00
Max Kellermann
7a1b996da9
pcm/Dsd2Pcm: use SampleTraits<SampleFormat::DSD>::SILENCE
2023-03-06 18:30:16 +01:00
Max Kellermann
302a571367
pcm/Buffer: use std::byte
2023-03-06 18:22:12 +01:00
Max Kellermann
ec195acf4f
pcm/Interleave: use std::byte
2023-03-06 18:22:10 +01:00
Max Kellermann
8f41e05a39
db/upnp/ContentDirectoryService: use fmt::format_int
2023-03-06 16:45:59 +01:00
Max Kellermann
35b6d65f27
util/Compiler.h: remove unused compiler version check macros
2023-03-06 16:37:46 +01:00
Max Kellermann
e602bcf41e
pcm/ReplayGainAnalyzer: remove GCC version checks, assume proper C++17 support
2023-03-06 16:37:45 +01:00
Max Kellermann
8c5ba50840
command/{file,storage}: remove stray "#pragma GCC diagnostic pop"
2023-03-06 16:37:45 +01:00
Max Kellermann
ff239fff4f
util/ByteOrder: check only __GNUC__
...
Assume GCC/clang is recent enough.
2023-03-06 16:37:45 +01:00
Max Kellermann
abdbaf605e
player/Thread, ...: assume [[fallthrough]] is supported
2023-03-06 16:29:55 +01:00
Max Kellermann
47b3577d6b
util/Compiler.h: remove unused macro gcc_printf
2023-03-06 16:27:47 +01:00
Max Kellermann
2ffc7c2088
io/BufferedOutputStream: remove unused method Format()
2023-03-06 16:27:28 +01:00
Max Kellermann
1f56960c44
util/FormatString: remove unused library
2023-03-06 16:24:51 +01:00
Max Kellermann
dfc5b4972b
output/httpd/IcyMetaDataServer: use libfmt
2023-03-06 16:23:43 +01:00
Max Kellermann
18c3c2118d
util/Compiler.h: remove unused macros
2023-03-06 16:14:30 +01:00
Max Kellermann
42f6a0441c
use [[gnu::...]] attributes
2023-03-06 16:14:15 +01:00
Max Kellermann
3b9aab0684
util/UTF8: fix indent
2023-03-06 16:12:09 +01:00
Max Kellermann
7a46c57ef3
tag/Type: require C++
2023-03-06 15:28:44 +01:00
Max Kellermann
118b76a8f1
db/Interface, ...: forward-declare TagType
2023-03-06 15:25:30 +01:00
Max Kellermann
a302d34f6d
tag/Names: convert to C++
2023-03-06 15:16:33 +01:00
Max Kellermann
148aca23be
use SPDX IDs, replacing the long copyright headers
2023-03-06 14:59:48 +01:00
Max Kellermann
c83ab0dc58
unix/SignalHandlers: shut down if parent process dies in --no-daemon mode
...
By default, if the parent of a process dies, the process gets SIGHUP
and is supposed to shut down. This however doesn't work for MPD,
because MPD redefines SIGHUP with a different meaning (like most
daemons do).
To work around this, we configure the kernel to send SIGTERM instead
of SIGHUP.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1706
2023-03-06 13:00:07 +01:00
Max Kellermann
d9952b9054
CommandLine: hard-code daemon=false
if ENABLE_DAEMON is not set
2023-03-06 13:00:06 +01:00
Max Kellermann
04e60d67ae
command/playlist: allow range in "playlistmove"
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1689
2023-03-06 12:01:45 +01:00
Max Kellermann
9bcba41cd6
Merge branch 'pipewire-lock' of https://github.com/ncfavier/MPD
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1753
2023-03-06 10:06:03 +01:00
Naïm Favier
eabc487e59
output/PipeWire: lock thread loop in SendTag
2023-03-06 10:03:14 +01:00
Max Kellermann
5c5e522fcd
output/jack: remove DLL support
...
This effectively reverts commit 0f02bbc2fe
which was a horrible
kludge for JACK support on Windows. Maintaining this kludge doesn't
seem worth the trouble (the JACK version was never updated), and
apparently nobody uses this.
2023-03-06 08:10:00 +01:00
Max Kellermann
f687028c87
output/PipeWire: use class StaticVector
2023-03-06 08:09:07 +01:00
Max Kellermann
d5fafa1340
output/PipeWire: map tags "Date" and "Comment"
2023-03-06 07:48:25 +01:00
Max Kellermann
e8994b43a0
output/PipeWire: convert tag mapping to array
2023-03-06 07:44:06 +01:00
Max Kellermann
6ada2c9c3f
lib/curl/Request: add method GetEasy()
2023-03-05 08:50:39 +01:00
Max Kellermann
bbf190fc42
lib/curl/Multi: add noexcept
2023-03-05 08:49:20 +01:00
Max Kellermann
963ff1997d
lib/curl/Easy: add methods SetXferInfoFunction(), SetMimePost()
2023-03-05 08:47:40 +01:00
Max Kellermann
5c2a576546
io/BufferedReader: add missing include
2023-03-05 08:43:41 +01:00
Max Kellermann
452400b7ef
net/SocketAddress: remove __cpp_lib_span checks
2023-03-05 08:41:33 +01:00
Dave Hocker
f248fe2dec
Resolve deprecation warnings by replacing use of sprintf with FmtBuffer
2023-02-06 11:56:49 +01:00
Brad Smith
e0df0b6d74
oss: Remove use of the soundcard.h header, OpenBSD no longer uses OSS
2023-02-03 18:38:20 -05:00
Sean DuBois
a41414e0e0
Decoder/FluidSynth: Allow gain to be adjusted
2023-02-01 12:00:19 -05:00
Max Kellermann
f1cea1f152
util/IntrusiveHashSet: add unlink(), is_linked()
2023-01-31 13:07:26 +01:00
Max Kellermann
02f5698868
event/Loop: remove unnecessary include
...
Not used since a3b32819b1
2023-01-31 13:04:25 +01:00
Max Kellermann
5b07c8fc6c
util/CharUtil: add IsLowerAlphaNumericASCII()
2023-01-29 09:39:40 +01:00
Max Kellermann
b45afd1cab
util/StringBuffer: add constexpr
2023-01-29 09:38:40 +01:00
Max Kellermann
8b73257a86
storage/meson.build: move MemoryDirectoryReader.cxx to storage_api.a
...
This library is required by the plugins, so this fixes a dependency issue.
2023-01-29 08:21:58 +01:00
Max Kellermann
def6fffcf1
event/Loop: fixup for NO_FINE_TIMER_EVENT
2023-01-29 08:07:03 +01:00
Max Kellermann
1f5d50ccce
lib/curl/Setup: include cleanup
2023-01-28 08:06:10 +01:00
Max Kellermann
ebf65572dd
util/ByteOrder: remove unnecessary operator=
...
The compiler can just use the uint32_t constructor instead. This was
redundant code.
2023-01-28 07:48:03 +01:00
Max Kellermann
c30c293d6f
input/async: check for errors in Seek()
...
Fixes a busy loop in BufferingInputStream::RunThreadLocked() because
the method never learns that seeking is ignored, even though the HTTP
stream is already broken and can never be read; nobody cared to check
for errors.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1727
2023-01-28 07:44:59 +01:00
Max Kellermann
9ee1be6fba
command/database: add missing include for UINT_MAX
2023-01-23 15:50:49 +01:00
Max Kellermann
76177dbc79
win32/HResult: use [[gnu::const]]
2023-01-23 15:35:36 +01:00
Max Kellermann
6cc532c9a0
win32/HResult: remove unused function FormatHResultError()
2023-01-23 15:35:36 +01:00
Max Kellermann
3cc770a00b
remove obsolete Boost dependency
...
Boost makes building a piece of software much more difficult than
necessary. It's a huge library, and just uncompressing it takes a
considerable amount of time. MPD only used a tiny fraction of it, yet
its header bloat made the MPD build very slow. Locating Boost was
difficult due to its arcane build system and its resistance to use
pkg-config; it's always a special case. MPD could never use features
of newer Boost versions because Linux distributions always shipped old
Boost versions. Boost made everything complicated and slow.
So, finally, after getting rid of GLib (commit ccdb94b06c
), switching
to C++ and using Boost (commit 0801b3f495
), we've finally get rid of
it 8 years later.
Unfortunately, I had to reimplement parts of it along the way
(e.g. IntrusiveList). Kind of NIH, but on the other hand, compiling
MPD has become much easier for users.
2023-01-23 15:06:58 +01:00
Max Kellermann
7ef0bfbdf1
event/meson.build: disable Boost
2023-01-23 14:58:38 +01:00
Max Kellermann
bafde1900b
lib/nfs/Manager: use IntrusiveList instead of boost::intrusive::set
...
MPD usually has only one NFS connection, maybe two, so managing them
in a tree seems like overkill, and since we want to get rid of Boost
anyway...
2023-01-23 14:58:09 +01:00
Max Kellermann
5844242cfb
input/cache/Manager: use IntrusiveHashSet instead of boost::intrusive::set
2023-01-23 14:19:22 +01:00
Max Kellermann
7e7cdf73b9
input/InputStream: add method GetUriView()
2023-01-23 14:15:18 +01:00
Max Kellermann
5ca74acd8d
input/InputStream: allow emplacing the URI
2023-01-23 14:15:18 +01:00
Max Kellermann
cd2aaac0c2
output/osx: fix typo
2023-01-23 14:15:18 +01:00
Max Kellermann
ff8a7225fc
output/osx: change type to std::size_t to fix -Wc++11-narrowing
2023-01-23 14:06:56 +01:00
Max Kellermann
d0be122fc6
output/osx: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:55:50 +01:00
Max Kellermann
01e5a7b1b5
output/wasapi: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
0b42018377
output/PipeWire: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
7cb6c70bc2
output/alsa: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
f31ae7c556
util/RingBuffer: replacement for boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
5728c514d1
output/wasapi: use std::hardware_destructive_interference_size
2023-01-23 13:44:53 +01:00
Max Kellermann
debac0dfd4
win32/ComWorker: use std::queue/Mutex/Cond instead of boost::lockfree::spsc_queue/WinEvent
2023-01-23 13:25:07 +01:00
Max Kellermann
80b1f49af7
lib/dbus/AppendIter: add missing include
2023-01-22 12:29:54 +01:00
Max Kellermann
868958e159
util/IntrusiveHashSet: fix find_if() concept
2023-01-22 12:25:55 +01:00
Max Kellermann
52af03a5a6
util/IntrusiveHashSet: implement remove_and_dispose_if() with constant_time_size
2023-01-22 12:24:50 +01:00
Max Kellermann
7475e971bc
util/IntrusiveList: remove_and_dispose_if() returns the number of removed items
2023-01-22 12:24:43 +01:00
Max Kellermann
c65b1fee8d
util/IntrusiveHashSet: check key equivalence in remove_and_dispose_if()
2023-01-22 12:24:41 +01:00
Max Kellermann
e2abade6aa
util/IntrusiveList: add postfix operator++
2023-01-22 12:24:33 +01:00
Max Kellermann
57673136d8
util/IntrusiveHashSet: add method expire_find_if()
2023-01-22 12:24:30 +01:00