Commit Graph

18460 Commits

Author SHA1 Message Date
Max Kellermann c8ece786dd player/Thread: add assert() to StartDecoder()
StartDecoder() must not be called when a decoder is still being
started.  This detects the bug
https://github.com/MusicPlayerDaemon/MPD/issues/1900 earlier.
2024-04-15 21:36:11 +02:00
Max Kellermann 60fae87e59 doc/mpdconf.example: move "replaygain_limit" to user.rst 2024-04-15 18:58:53 +02:00
Max Kellermann 3145b10f51 doc/mpdconf.example: remove advanced replay gain settings
Keep the example file short, omit settings that are probably only used
by few users.
2024-04-15 18:55:03 +02:00
Max Kellermann 75047a26f8 doc/mpdconf.example: fix replaygain_limit description
The description (added by commit 43806d524d) was wrong.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1977
2024-04-15 18:51:27 +02:00
Max Kellermann 1e4bf90c60 io, net, evnet: quote file names in error messages 2024-04-10 13:36:05 +02:00
Max Kellermann b3a31b69ee util/RedBlackTree: fix lost "right" child while swapping with successor
Fixes a tree corruption bug that led to assertion failures.
2024-04-10 13:35:31 +02:00
Max Kellermann 88475f2e2b util/RedBlackTree: swap colors when swapping with successor
Swapping was incomplete without swapping the colors; this led to
assertion failures under certain conditions.
2024-04-10 13:35:28 +02:00
Max Kellermann 3cf0896998 test/util/TestIntrusiveTreeSet: add test with large randomized tree, erasing random elements
Test fails currently due to two bugs in the red-black tree
implementation.
2024-04-10 13:35:24 +02:00
Max Kellermann e0a53d4747 util/IntrusiveTreeSet: add debug method Check()
Only for the unit test.
2024-04-10 13:35:21 +02:00
Max Kellermann 669cbcd25a util/IntrusiveList: allow the last disposer to destroy the IntrusiveList
Fixes a use-after-free bug in Co::MultiAwaitable::SetReady() when the
last callback frees the Co::MultiAwaitable owner.
2024-04-10 13:35:09 +02:00
Max Kellermann 2f7c19f139 util/SpanCast: rewrite ToStringView(std::span<std::byte>) to avoid cast ambiguities 2024-04-10 13:34:51 +02:00
Max Kellermann e131f22642 util/SpanCast: merge two ToStringView() using std::remove_const_t 2024-04-10 13:34:25 +02:00
Max Kellermann a09e33bf8e Merge branch 'RoboSchmied-AGfixT118' of https://github.com/RoboSchmied/MusicPlayerDaemon-MPD 2024-04-08 08:23:48 +02:00
Max Kellermann cd3c34e7b9 Merge branch 'intents' of https://github.com/DDRBoxman/MPD 2024-04-08 08:23:25 +02:00
Max Kellermann b3733ef32a Merge branch 'sticker_filters' of https://github.com/jcorporation/MPD 2024-04-08 08:20:28 +02:00
RoboSchmied f3b9674fed Fix: 1 typo
Co-authored-by: RoAGmer <no-reply@github.com>
Signed-off-by: RoboSchmied <github@roboschmie.de>
2024-04-07 18:59:40 +02:00
Colin Edwards b0cd456753 android: Button to jump to bottom of log view
This adds a button that can jump to the bottom of the log view.
If the user scrolls up we now disable the auto scroll down and show the
down button. When the down button is clicked the auto scroll resumes and
the button is removed.
2024-04-06 20:11:01 -05:00
jcorporation c613d25f29 Add operators contains and starts_with to sticker find 2024-04-06 20:08:59 +02:00
Colin Edwards fff9ceccc2 android: Add intents for service start and stop
org.musicpd.action.StartService
org.musicpd.action.StopService

You can test these actions like:
adb shell am broadcast -a org.musicpd.action.StartService org.musicpd

Calling these from an app like tasker should allow for automation
2024-04-05 23:46:14 -05:00
Colin Edwards 4bcbeae1e0 android: Move service client into it's own file
The service file was getting harder to read so lets pull the client code
into it's own file
2024-04-05 23:27:41 -05:00
Max Kellermann 4c56e87e36 lib/curl/Global: remove empty line 2024-04-04 09:18:34 +02:00
Max Kellermann 011b96ff98 net/UniqueSocketDescriptor: add method MoveToFileDescriptor() 2024-04-04 09:16:44 +02:00
Max Kellermann d563f5fc87 decoder/mpg123: use mpg123_ssize_t only on MPG123_API_VERSION >= 47 2024-04-03 23:21:54 +02:00
Max Kellermann 9c2df5ce19 decoder/mpg123: implement stream_decode 2024-04-03 23:12:26 +02:00
Max Kellermann 1745c485f3 decoder/mpg123: move code to Scan() 2024-04-03 22:52:56 +02:00
Max Kellermann a53db82ae4 decoder/mpg123: move code to Decode() 2024-04-03 22:49:43 +02:00
Max Kellermann a20a83eb76 decoder/mpg123: move code to GetAudioFormat() 2024-04-03 22:37:29 +02:00
Max Kellermann 65e5a43e46 decoder/List: prefer "mpg123" over "mad"
libmad hasn't been maintained for many many years, while libmpg123 is
still maintained.

Our "mad" plugin can't do streams, but MPD will automatically fall
back to "mad" (or "ffmpeg") for streams.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1954
2024-04-03 22:25:34 +02:00
Max Kellermann b6afdf1201 util/UriUtil: disable path segment stripping
This bug introduced by commit 49ed9dae34
and activated by commit acc1bd6297
caused leading spaces to disappear from the beginning of all file
names.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1961
2024-04-03 22:00:36 +02:00
Max Kellermann 08a00ee21b config/PartitionConfig: clip the max_playlist_length setting
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1932
2024-04-03 21:43:39 +02:00
Max Kellermann 41a1e98cb9 subprojects: update sqlite3 to 3.45.2-1 2024-04-03 21:34:40 +02:00
Max Kellermann 99da022775 util/IntrusiveSortedList: remove unused class 2024-04-03 21:31:08 +02:00
Max Kellermann 1ee25b4234 event/TimerList: remove option NO_BOOST
Always use the new IntrusiveTreeSet class.
2024-04-03 21:30:59 +02:00
Max Kellermann c5e607a310 event/TimerList: use IntrusiveTreeSet instead of boost::intrusive::multiset 2024-04-03 21:30:31 +02:00
Max Kellermann 5a0bad3b2f util/IntrusiveTreeSet: new class 2024-04-03 21:29:34 +02:00
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