Commit Graph

15499 Commits

Author SHA1 Message Date
Max Kellermann
def2221dfd Merge branch 'searchplaylist_syntax' of https://github.com/jcorporation/MPD 2024-09-27 08:47:02 +02:00
Max Kellermann
9ff8e02e54 net/Resolver: use StringIsEqual() 2024-09-04 17:26:45 +02:00
Max Kellermann
32dd9704ce util/DeleteDisposer: add const and noexcept 2024-09-04 17:24:42 +02:00
Max Kellermann
523519182a util/IntrusiveHashSet: add concept checks 2024-09-04 17:24:24 +02:00
jcorporation
3f718e8924 Change the semantic of the searchplaylist protocol command
Old: searchplaylist {NAME} {FILTER} [{START:END}]
New: searchplaylist {NAME} {FILTER} [window {START:END}]

This is more similar to the other search commands and we can reuse search specific functions in libmpdclient.
2024-08-30 21:06:50 +02:00
Max Kellermann
a3a07280e8 Merge branch 'mpd-2100-nested-and' of https://github.com/m7a/mpd 2024-08-30 12:57:20 +02:00
Max Kellermann
ed755f04e9 lib/fmt/meson.build: suppress -Warray-bounds with GCC 14
The bug is still present in GCC 14.
2024-08-30 12:48:41 +02:00
Max Kellermann
2809db8b40 Merge branch 'searchplaylist' of https://github.com/jcorporation/MPD 2024-08-30 12:47:24 +02:00
Max Kellermann
c866199d4c net/SocketError: cast to socket_error_t to fix -Wsign-compare
Only relevant on Windows where socket_error_t is a `DWORD` (unsigned).
2024-08-30 12:45:10 +02:00
Max Kellermann
39937be2e1 Merge branch 'stickertypes' of https://github.com/jcorporation/MPD 2024-08-30 12:43:54 +02:00
Max Kellermann
d207c144d6 lib/curl/Multi: remove the Wait() overload with "int" timeout
Enforce type-safety.
2024-08-30 12:30:18 +02:00
Max Kellermann
435f1eb6cc lib/curl/Multi: remove default timeout value
-1 is an illegal value and leads to CURLM_BAD_FUNCTION_ARGUMENT.  Our
API shouldn't imply this value.
2024-08-30 12:30:15 +02:00
Max Kellermann
c7b80b0828 io/FileDescriptor: add method WriteAt() 2024-08-30 12:29:32 +02:00
Max Kellermann
59199b5620 io/FileDescriptor: pass std::span to ReadAt() 2024-08-30 12:29:27 +02:00
Max Kellermann
ebfc83dac5 io/FileDescriptor: add method SetPipeCapacity() 2024-08-30 12:28:51 +02:00
Max Kellermann
f535ccf9bf net/UniqueSocketDescriptor: add UniqueFileDescriptor constructor 2024-08-30 12:28:19 +02:00
Max Kellermann
75eb2c257c net/SocketError: add IsSocketError() overload with socket_error_t 2024-08-30 12:27:19 +02:00
Max Kellermann
314667259e net/SocketDescriptor: add Duplicate() method
The the Duplicate() method we inherited from class FileDescriptor
returns a UniqueFileDescriptor, but we really want to return a
UniqueSocketDescriptor.
2024-08-30 12:27:13 +02:00
Max Kellermann
dbb2b29271 net/IPv6Address: add method GetPortBE() 2024-08-30 12:24:12 +02:00
Max Kellermann
7f25ede888 net/AddressInfo: add method Cast() 2024-08-30 12:23:45 +02:00
Max Kellermann
4a2fff019a util/DisposablePointer: suppress -Wuninitialized
I pretend to know what I'm doing :-)
2024-08-30 12:23:45 +02:00
Linux-Fan, Ma_Sys.ma
6db4b818e6 song/Filter: Fix spacing error on nested AND
Previously, `AND` expressions were the only filters which used `++s` instead
of `s = StripLeft(s + 1)` making them sensitive to spacing issues. This caused
nested AND expressions (like e.g. `(((A) AND (B)) AND (C))`) to needlessly be
rejected with the following error message: `{find} Word expected` due to the
fact that the inner AND expression would leave the cursor `s` at a space rather
than the beginning of the next word (remainder was ` AND (C))` rather than
`AND (C)`).

This commit fixes this by consistently using `s = StripLeft(s + 1)` instead
of `++s` when parsing AND expressions. Although it is not strictly necessary
to resolve the AND nesting bug, the case of trivial AND expressions (consisting
basically of only superfluous parentheses) is also changed to the new handling.
This should be more robust although I expect that case to be even less common
than the direct nesting of AND expressions.

see MusicPlayerDaemon/MPD#2100
2024-08-23 21:36:53 +02:00
jcorporation
f94caa96b8 Add command stickertypes
Prints all available stickertypes like tagtypes for tags.
2024-08-14 21:07:14 +02:00
Max Kellermann
965c466e9b Merge branch 'mpg-duration-fix' of https://github.com/boedy/MPD 2024-08-10 16:54:48 +02:00
boedy
731f20111a Override the value for file size in bytes. Useful for getting sensible track length values in feed mode or for HTTP streams.
https://www.mpg123.de/api/group__mpg123__status.shtml#gad0301e80dbc3f48e47e27d39cd328755
2024-08-08 18:43:15 +02:00
jcorporation
d62f7cdc34 New command searchplaylist 2024-08-02 23:46:17 +02:00
Max Kellermann
f7790430a0 lib/curl/Multi: add SetSocketFunction(), SetTimerFunction() 2024-07-31 10:06:29 +02:00
Max Kellermann
959826d1d1 input/ffmpeg: offload FFmpeg calls to thread
Prepare for interruptible I/O.
2024-07-30 12:43:05 +02:00
Max Kellermann
ec30716e01 input/thread: implement size and seek 2024-07-30 12:33:44 +02:00
Max Kellermann
dc51015c75 input/mms: move MMS_BUFFER_SIZE into the class 2024-07-30 12:33:30 +02:00
Max Kellermann
72b0eeb7b1 input/mms: invoke Start() in constructor 2024-07-30 12:31:58 +02:00
Max Kellermann
b050e0132e input/{async,thread}: add an additional Cond field
This eliminates the ScopeExchangeInputStreamHandler kludge.
2024-07-29 23:17:33 +02:00
Max Kellermann
cf962d94c7 input/thread: remove bogus inline 2024-07-29 23:14:16 +02:00
Max Kellermann
c29d23b4c3 input/thread: use notify_one() instead of notify_all()
There's only ever one waiter, and notify_one() may be faster than
notify_all().
2024-07-29 23:09:07 +02:00
Max Kellermann
61e8df913d input/thread: check IsEOF() in IsAvailable() 2024-07-29 23:05:00 +02:00
Max Kellermann
4a55e3e8bd input/thread: check buffer.empty() in IsEOF() 2024-07-29 23:03:00 +02:00
Max Kellermann
2e78bd430c input/thread: use pass std::span<std::byte> to ThreadRead() 2024-07-29 22:32:52 +02:00
Max Kellermann
dbaa72cb40 util/CircularBuffer: use std::span internally 2024-07-29 22:24:54 +02:00
Max Kellermann
596d2d93dd util/CircularBuffer: use using instead of typedef 2024-07-29 22:21:38 +02:00
Max Kellermann
10311b3a65 util/CircularBuffer: explicitly forbid the copy operator 2024-07-29 22:20:15 +02:00
Max Kellermann
332ba42073 util/HugeAllocator: add std::span cast operator 2024-07-29 22:20:12 +02:00
Max Kellermann
4262d29965 util/HugeAllocator: add constexpr 2024-07-29 22:19:28 +02:00
Max Kellermann
0899d80ae0 util/CircularBuffer: add noexcept and constexpr 2024-07-29 22:14:59 +02:00
Max Kellermann
9fe6493fc2 util/CircularBuffer: use inline initializer 2024-07-29 22:13:50 +02:00
Max Kellermann
902cb8efac input/thread: use std::byte instead of uint8_t 2024-07-29 22:13:50 +02:00
Max Kellermann
f54210bf68 input/async: move enum definition down 2024-07-29 22:13:42 +02:00
Max Kellermann
fb151c8662 lib/fmt/meson.build: suppress -Warray-bounds with GCC 13 2024-07-29 22:13:11 +02:00
Max Kellermann
323517753d lib/fmt/meson.build: remove obsolete clang 14 workaround
Android NDK r27 has clang 18 and I don't feel like supporting clang 14.
2024-07-29 22:11:20 +02:00
Max Kellermann
5726d9f06a mixer/Memento: include cleanup 2024-07-29 17:04:53 +02:00
Max Kellermann
0992fab1c8 filter/ReplayGain: include cleanup 2024-07-29 17:04:30 +02:00