Commit Graph

14812 Commits

Author SHA1 Message Date
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
Max Kellermann
49e122a81d util/IntrusiveHashSet: add method remove_and_dispose_if(key) 2023-01-22 12:24:23 +01:00
Max Kellermann
74976d3199 event: make FineTimerEvent optional
Several applications don't need it, so let's eliminate the code from
the executable.
2023-01-22 12:21:46 +01:00
Max Kellermann
a750e4afa7 event/Loop: move code to GetEarlierTimeout() 2023-01-22 12:19:07 +01:00
Max Kellermann
c122e990a3 Merge branch 'master' of https://github.com/faceless2/MPD 2023-01-17 19:03:49 +01:00
Max Kellermann
b1422fbda4 release v0.23.12
-----BEGIN PGP SIGNATURE-----
 
 iQJBBAABCgArFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmPG4OcNHG1heEBibGFy
 Zy5kZQAKCRAjbopYxttFElGQD/4lXFixr2fJuAWFYyFT4ebr2w7sPyhXwjlt5uCL
 HTaMxTgQbhMmkHbGEO96UbF7gROGfq+dyvYTEmjWcVPTr/US3M8/mjT9T/DCLj6+
 kF7rZM5ft6npqVxqikg/TQcUgoiSsgfI7dEK/vcXELPyx78bCaq0M0sd2GZvwiiM
 vK9cxxDJ/RkF2dtfXRfGTJlihgQxaiuBZx8Bi3wJjbjvi/Lg85cu3iot9zFy5iDN
 gNzC39dnPYv261lAT/LLNpzLYQzIFE5ul+8ucRNPo+mMS/odSPRdL9XYFDtarsqP
 3Va83DChg7S6/GWfDeW81mQYPDuZ+1rPqbV5zEGimPsDWP9RugzPpZiFJlZrh8w7
 MJp66RYxUWQpracRZIW4zMRiSzGSI3OXbvhx6qBmsn1CuQ19TkovWuRleD4lpfFv
 dFzKHrdatJivM3xvq6CSg8ws+Q6f/j5sw1gzfvOofPlpybtvIrCvlvw78sKLW5n1
 Ecwc+xN38bIVL3E2Ae6zeYQwArpB4+gKT3Wb+r3bjXz7YQYpETI3IbX0vixbl8pP
 9O4ZKot/khOCaQBiZ5hHmiDmF5kxofLnJE4qgGX/c87ZaMUsu7hoKzksy9v7Z9wj
 PNTshhWk1WrSwM1JnVjD5Ahz+Oe43UsKsGZ8Kturbuu+61uTX4QcmYpbaNilGnwk
 J0cLyw==
 =MW7q
 -----END PGP SIGNATURE-----

Merge tag 'v0.23.12'

release v0.23.12
2023-01-17 18:58:04 +01:00
Max Kellermann
b3897df682 decoder/mad: add assert() 2023-01-17 18:53:18 +01:00
Max Kellermann
3cacb56bb7 fs/StandardDirectory: don't fall back to getpwuid() without $HOME
If the environment variable $HOME does not exist, don't attempt to
obtain it from /etc/passwd; without $HOME, the calling process
indicates that it does not wish MPD to access the home directory.

This also prevents MPD from attempting to load
`/root/.config/mpd/mpd.conf` if MPD got started as global systemd
service.  Reading from there makes no sense, only /etc/mpd.conf shall
be used then.

This piece of code was initially added by commit 5d85792178.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1687
2023-01-17 18:51:49 +01:00
Max Kellermann
15a1973e28 decoder/mad: fix integer underflow with very small files
When drop_start_samples and drop_end_samples overlap and are greater
than the actual number of samples, the `num_samples` calculation in
SubmitPCM() could underflow.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1712
2023-01-17 17:41:37 +01:00
Max Kellermann
ad7d47a8ba output/PipeWire: use PW_KEY_TARGET_OBJECT with PipeWire 0.3.64
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1721
2023-01-17 11:50:09 +01:00
Max Kellermann
0948c607b6 lib/curl/meson.build: require CURL 7.55.0 or later
For CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (commit 4efd0a9f77).
2023-01-16 19:42:48 +01:00
Mike Bremford
b96e44b362 Unlike album, artist and albumartist, title and composer were not used as a fallback
when titlesort and composersort were specified but unavailable - this patch fixes that.
2023-01-09 18:15:44 +00:00
Max Kellermann
8a7b7dffec Merge branch 'v0.23.x' 2023-01-06 08:12:38 +01:00
latex
7774e78864 openmpt: add at_end option 2023-01-06 03:18:36 +01:00
Max Kellermann
e1d641f684 lib/curl/Easy: drop deprecated CURLOPT_HTTPPOST wrapper 2023-01-02 14:29:17 +01:00
Max Kellermann
4efd0a9f77 lib/curl/Easy: use CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
CURLINFO_CONTENT_LENGTH_DOWNLOAD is deprecated and is ugly because it
uses floating point.
2023-01-02 14:28:42 +01:00
Max Kellermann
f6f8751332 io/FileReader: add missing include for uint64_t 2023-01-02 14:27:47 +01:00
gd
abb28593ce TagBuilder::RemoveType: added missing tag pool lock before call to tag_pool_put_item 2022-12-29 08:43:10 +01:00
Max Kellermann
d7de8b1453 Merge branch 'iss-1546' of https://github.com/sp1ff/MPD 2022-12-29 08:37:25 +01:00
Mike Bremford
6adff85fd6 Added "searchcount" command, a case-insensitive "count"
The `count` command isn't case-insensitive.  This adds `searchcount`
which is a case-insensitive version of `count`.
2022-12-18 08:29:14 +01:00
Max Kellermann
756621c6e4 neighbor/meson.build: add missing dependency on libfmt 2022-12-01 15:57:28 +01:00
Max Kellermann
7e2ab1fd53 lib/yajl/meson.build: add missing dependency on libfmt 2022-12-01 15:50:34 +01:00
Max Kellermann
c7a0597fe7 util/Intrusive*: add C++20 concept checks 2022-12-01 15:43:51 +01:00
Max Kellermann
253d551684 lib/dbus/meson.build: add missing dependency on libfmt 2022-12-01 15:43:51 +01:00
Max Kellermann
00b7535cf1 util/Concepts: compatibility wrapper for std::predicate 2022-12-01 15:11:27 +01:00
Max Kellermann
5945877313 util/IntrusiveHashSet: add missing Cast()/ToHook() functions to IntrusiveHashSetMemberHookTraits 2022-12-01 15:10:42 +01:00
Max Kellermann
fe3e1d31bf util/IntrusiveHashSet: remove unused type alias "ListHookTraits" 2022-12-01 15:10:38 +01:00
Max Kellermann
65f1cafa43 util/IntrusiveHashSet: add method find_if() 2022-12-01 15:10:32 +01:00
Max Kellermann
d9b1f2fefa net/SocketAddress: add method HasPort() 2022-12-01 15:10:25 +01:00
Max Kellermann
e3ef0929f1 util/IntrusiveHashSet: add const overloads 2022-12-01 15:10:20 +01:00
Max Kellermann
8860962e09 util/IntrusiveHashSet: make several methods const 2022-12-01 15:10:13 +01:00
Max Kellermann
f13b8f669d util/IntrusiveList: simplify ToHook() overload with const_cast 2022-12-01 15:10:09 +01:00
Đoàn Trần Công Danh
e4b055eb6d
v0.23.x: RemoteTagCache: add missing include
Fix build with Boost 1.81.0. `<array>` was included by one of those boost headers,
however, it's no longer included as of Boost 1.81.0.

`master` doesn't use `std::array` in this file.

While we're at it, add all necessary inclusion files.
2022-12-01 08:29:23 +07:00
Max Kellermann
fa58db798b lib/fmt/RuntimeError: new library
Replacing FormatRuntimeError().
2022-11-29 14:10:34 +01:00
Max Kellermann
45b13fc2a6 util/OptionParser: move to cmdline/
This library will depend on libfmt, and libutil shouldn't depend on
any library.
2022-11-29 11:32:16 +01:00
Max Kellermann
cf3f3a7750 lib/pulse/Error: use std::system_error 2022-11-29 09:56:47 +01:00
Max Kellermann
e455b93fac lib/nfs/Connection: use class NfsClientError 2022-11-29 09:45:25 +01:00
Max Kellermann
cf762f2a9d lib/icu/Error: std::system_error with UErrorCode 2022-11-29 09:31:48 +01:00
Max Kellermann
8ad0d919b1 lib/icuConverter, ...: use FmtBuffer() and FmtErrno() 2022-11-29 09:09:11 +01:00
Max Kellermann
4b5c8d1f3e mixer/meson.build: split libmixer_api from libmixer_glue 2022-11-29 09:09:11 +01:00
Max Kellermann
eb6c649d47 lib/fmt/SystemError: add concept check to work around ambiguous overloads 2022-11-29 09:09:10 +01:00
Max Kellermann
f2b025ca6c lib/alsa/meson.build: add dependency on libpcm_basic
For PcmExport::CalcInputSampleRate().
2022-11-29 09:09:10 +01:00
Max Kellermann
4328a6f77d lib/fmt/ToBuffer: fix FMT_VERSION check 2022-11-29 09:09:10 +01:00
Max Kellermann
97a6851525 lib/curl/Error: std::system_error with CURLcode 2022-11-29 06:33:32 +01:00
Max Kellermann
846d7dc317 lib/curl/Error: rename header to HttpStatusError.hxx 2022-11-29 06:33:32 +01:00
Max Kellermann
f62d61f088 lib/fmt/ToBuffer: add missing template parameters 2022-11-29 06:33:32 +01:00
Max Kellermann
1f33ac3e98 lib/upnp/Error: wrap libupnp errors in std::system_error 2022-11-29 00:32:48 +01:00
Max Kellermann
ed08a4bd58 lib/fmt/ToBuffer: use iterator instead of pointer 2022-11-28 23:10:25 +01:00
Max Kellermann
40d0828ccd util/StringBuffer: add non-const iterator 2022-11-28 23:10:01 +01:00
Max Kellermann
66029c405f system/FmtError: move to lib/fmt/ 2022-11-28 23:09:27 +01:00
Max Kellermann
7d8c076e06 lib/fmt/ToBuffer: include fmt/format.h on libfmt 7 to fix linker error 2022-11-28 23:03:52 +01:00
Max Kellermann
05dcac55f9 lib/fmt: add meson.build 2022-11-28 22:18:46 +01:00
Max Kellermann
2aa42d2647 lib/fmt/ToBuffer: new library 2022-11-28 22:18:46 +01:00
Max Kellermann
dc8e0c9c5c archive/zzip: add missing include 2022-11-28 22:18:45 +01:00
Max Kellermann
96ae659fdf system/FmtError: new library
Replaces the Format*() functions in system/Error.hxx.
2022-11-28 21:56:12 +01:00