Max Kellermann
6a99f20828
util/IntrusiveHashSet: add concept checks to *Operators
...
This requires adding another template argument and reordering the others.
2024-04-03 21:27:37 +02:00
Max Kellermann
91ca502e10
output/httpd/Client: pass std::string_view to HandleLine()
2024-04-03 21:06:11 +02:00
Max Kellermann
1e5c37ee78
util/SpanCast: add ToStringView() with non-const std::byte
...
Without this, we would get std::string_view<std::byte> which makes no
sense.
2024-04-03 20:58:03 +02:00
Max Kellermann
ef2cdc0c6a
output/httpd/Client: remove duplicate API docs
2024-04-03 20:50:31 +02:00
Max Kellermann
c94c08c6b4
event/BufferedSocket: pass std::span to OnSocketInput()
2024-04-03 20:43:40 +02:00
Max Kellermann
5de8edced6
output/httpd/HttpdClient: convert metaint
to a compile-time constant
...
After all these years, we had this as a field but there was never a
way to change the value. So let's just hard-code it until we actually
have a reason to make it variable at runtime.
2024-04-03 20:30:53 +02:00
Max Kellermann
8906ce07de
output/httpd/IcyMetaDataServer: pass metaint as std::size_t
2024-04-03 20:29:47 +02:00
Max Kellermann
9d66fc491c
output/httpd/Client: fix API doc syntax
2024-04-03 20:21:18 +02:00
Max Kellermann
f8a838db5d
output/httpd/Client: convert variable to std::string_view
...
In all cases, we already know the length, and casting the C string to
std::string_view has to call strlen() again.
2024-04-03 20:20:33 +02:00
Max Kellermann
e4ba736d03
input/{async,rewind}, decoder/dsdiff: use std::cmp_*() for safer integer comparisons
2024-03-15 18:45:46 +01:00
Max Kellermann
cc291e8c98
Merge branch 'extend-robustness-of-cdda-playback' of https://github.com/lazypingu/MPD
2024-03-15 18:39:45 +01:00
lazypingu
c00d217a53
Skip track if returned LSNs are negative which indicates track errors or if track is not an audio track
2024-03-12 20:39:51 +01:00
lazypingu
9d853897cd
Use track and disc functions from libcdio-paranoia to enable playback of hidden tracks and audio tracks on multisession CDs
2024-03-12 20:37:50 +01:00
lazypingu
88c77f9c8a
Add debug logging if setting speed failed
2024-03-12 20:37:50 +01:00
lazypingu
1a7278f1d3
Move cddap_speed_set below cddap_open to make sure that the drive was initialized and opened before attemting to set the speed
2024-03-12 20:36:28 +01:00
Max Kellermann
541707f9a8
lib/curl/Easy: add SetRequestBody() overload with std::span
2024-03-11 15:32:24 +01:00
Max Kellermann
00cf036d58
lib/avahi/Client: relax assertion after COLLISION/REGISTERING
...
Turns out that `AVAHI_CLIENT_S_COLLISION` can occur after
`AVAHI_CLIENT_S_RUNNING`, and `connected==true`. Relaxing this fixes
a bogus assertion failure.
2024-03-11 15:32:24 +01:00
Max Kellermann
9c68f24cfc
net/SocketError: fix typo
...
Whoops. This function has never been used.
2024-03-11 15:32:24 +01:00
Max Kellermann
02c4512b00
util/CharUtil: add IsLowerHexDigit()
2024-03-11 15:32:24 +01:00
Max Kellermann
be84b189dc
util, io, net, ...: use "#pragma once"
2024-03-11 15:32:24 +01:00
Max Kellermann
d685d693e8
input/rewind, archive/iso9660: use use std::cmp_*() for safe integer comparison
2024-03-11 15:09:57 +01:00
Max Kellermann
b0cfdfa257
client/Idle: consume only idle flags that were subscribed to
...
Since the very beginning when idle subscriptions where introduced
(commit 0bad84066b
), waiting for a certain idle mask would clear
all other idle flags as well. This would cause idle events to get
lost.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1998
2024-03-11 15:07:07 +01:00
Marius Feraru
7b6909f2c0
db/update/Walk:FindAncestorLoop: uint64_t inode & device
...
Previously, inode numbers were truncated to 32 bits, which could lead
to problems on XFS where inodes are 64 bit; this could lead to bogus
"recursive directory found" errors during database update.
[mk: added commit description and NEWS line]
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2000
2024-03-11 13:34:27 +01:00
jcorporation
45553c5f61
This commit adds the sort and window parameter to "sticker find"
...
The three new compare operators "eq", "gt" and "lt" are casting the values to int.
Sort supports:
- uri: sort by uri
- value: sort by value as string
- value_int: casts value to int
Closes #1894
2024-03-07 20:52:11 +01:00
Max Kellermann
9eb26ab90c
Merge branch 'countplaylist' of https://github.com/jcorporation/MPD
2024-02-15 11:28:11 +01:00
jcorporation
f801f299c9
New command playlistlength
...
Count the number of songs and their total playtime in the playlist.
2024-02-15 11:25:34 +01:00
Max Kellermann
7f18cae2e4
Merge branch 'skidoo23-patch-1' of https://github.com/skidoo23/MPD
2024-02-13 08:06:16 +01:00
jcorporation
a3794f8c3b
Allow range in listplaylist and listplaylistinfo
2024-02-08 21:26:28 +01:00
skidoo23
31a88e7ccc
Update Templates.cxx
...
Remove Spotify leftovers
2024-01-26 14:34:58 +01:00
skidoo23
4074e3a9e4
Update Option.hxx
2024-01-26 14:31:08 +01:00
Max Kellermann
7f60acdfdd
util/CharUtil: add IsUpperAlphaNumericASCII()
2024-01-18 18:53:05 +01:00
Max Kellermann
aef2c5dc14
lib/avahi/Service: add field visible
...
Now individual services can be hidden or shown at any time.
2024-01-18 18:50:06 +01:00
Max Kellermann
8d02986b0e
lib/avahi/Publisher: add missing defer_register_services.Cancel() calls
2024-01-18 18:50:01 +01:00
Max Kellermann
461da92064
lib/avahi/Publisher: make the service list dynamic
...
This allows editing the list of services at any time instead of
passing a constant list at construction time. To do this, Service
instances are now caller-owned and managed in an IntrusiveList instead
of Publisher-owned in a std::forward_list.
2024-01-18 18:48:27 +01:00
Max Kellermann
b20b773189
zeroconf/avahi/Helper: embed the Avahi::Publisher without std::unique_ptr
2024-01-18 18:45:51 +01:00
Max Kellermann
5023432802
lib/avahi/Publisher: use DeferEvent for RegisterServices()
...
Prepares making the service list dyammic; the DeferEvent not only
moves the operation out of the current stack frame, but also allows
combining several AddService() calls.
2024-01-18 18:24:08 +01:00
Max Kellermann
4a14248004
lib/avahi/Publisher: move code to RegisterServices(AvahiEntryGroup)
2024-01-18 18:24:04 +01:00
Max Kellermann
1b241fc97a
lib/avahi/Publisher: allow RegisterServices() to throw
2024-01-18 18:24:01 +01:00
Max Kellermann
09d1ab7abe
lib/avahi/Publisher: move try/catch in GroupCallback() to the top level
2024-01-18 18:23:57 +01:00
Max Kellermann
d28cb93835
lib/avahi/Client: add method IsConnected()
...
Publish only if the client is really connected.
2024-01-18 18:23:52 +01:00
Max Kellermann
6b43338e06
lib/avahi/Client: add assert()
2024-01-18 18:23:48 +01:00
Max Kellermann
9a7a49350c
lib/avahi/Client: free the AvahiClient on AVAHI_CLIENT_FAILURE
...
Previously the AvahiClient was only freed when AVAHI_ERR_DISCONNECTED
was detected, but all other error conditions would lead to a memory
leak.
2024-01-18 18:23:45 +01:00
Max Kellermann
f85629afa6
lib/avahi/Client: is if with initializer
2024-01-18 18:23:42 +01:00
Max Kellermann
a39473a912
lib/avahi/Service: add API docs
2024-01-18 18:23:37 +01:00
Max Kellermann
05d0e9b8bb
lib/avahi/Publisher: reuse the AvahiEntryGroup
...
The libavahi-client documentation recommends reusing AvahiEntryGroup
instances instead of freeing them and creating new ones.
2024-01-18 18:23:30 +01:00
Max Kellermann
b68c3b7f55
net/SocketDescriptor: disable msghdr methods on Windows
2024-01-18 15:44:44 +01:00
Max Kellermann
0fbed6dec1
net/SocketDescriptor: remove misplaced [[nodiscard]]
2024-01-18 15:44:43 +01:00
naglis
16af2a2998
CommandLine: fix typo
...
I believe this is a typo since all other sections have the form
"<Singular> plugins", e.g. "Encoder plugins".
2024-01-18 14:23:41 +02:00
Max Kellermann
c93fc161dc
Merge branch 'next_prev_fix' of https://github.com/DDRBoxman/MPD
2024-01-18 09:58:39 +01:00
Colin Edwards
0075c57bd4
android: Check playlist state before changing track
...
Playlist will throw an exception if we call next or previous track when it is not in the "playing" state
2024-01-13 23:23:29 -06:00