gd
7404be41dc
android: git ignoring .idea directory completely until a good reason emerges not to
2025-02-04 10:22:57 +02:00
Camille Scholtz
b8289ae923
input/meson.build: Add missing dependency
2025-02-03 23:07:58 +01:00
Max Kellermann
6b92b7adb9
util/PacketBigEndian: add operator|
2025-02-01 19:30:17 +01:00
Max Kellermann
00a352ffcd
event/Loop: explicit io_uring initialization
...
Log the io_uring initialization error at MPD startup.
2025-02-01 19:20:50 +01:00
Max Kellermann
63cc07b8a7
event/Loop: add method SetThread()
...
Require to call it before calling Run(); remove the setter from Run().
This gives class EventThread more control over when it is initialized.
2025-02-01 19:19:59 +01:00
Max Kellermann
b2bf95009b
event/Thread: use inline initializers
2025-02-01 18:24:02 +01:00
gd
7df041310c
android: build.gradle.kts - updated dependencies versions. Updated compile sdk to 35, and target sdk to 34
2025-02-01 18:09:12 +01:00
gd
cd9522c1d1
android: manifest - added android:foregroundServiceType=mediaPlayback and permission FOREGROUND_SERVICE_MEDIA_PLAYBACK
...
Required by newer android sdk.
2025-02-01 18:09:07 +01:00
gd
59bd0fe0f0
android: added README.md for notes and resources for MPD android maintainers.
2025-02-01 18:09:02 +01:00
gd
0872a761c8
android: gradle build - add ndk.abiFilters to package the prebuilt arm64-v8a/libmpd.so with the apk
2025-02-01 18:08:58 +01:00
gd
996e158f56
android: updated gradle version
2025-02-01 18:08:55 +01:00
gd
7fb195bc0b
android: Context.cxx - in GetExternalFilesDir removed assert type != nullptr
...
May be null for the root of the files directory.
2025-02-01 18:08:52 +01:00
gd
2fabaa2e95
android: meson.build - changed output dir name from jnilibs to jniLibs
...
It is the default name: https://developer.android.com/studio/projects/gradle-external-native-builds#jniLibs
2025-02-01 18:08:48 +01:00
Camille Scholtz
e3cf9bb0a1
Fix deamon mode on macos
2025-02-01 18:05:49 +01:00
Camille Scholtz
407db96d4a
Install some more dependencies in the macos workflow
2025-02-01 18:05:42 +01:00
Camille Scholtz
3689200b78
Add prcr2 dependency to macos workflow
2025-02-01 18:05:34 +01:00
Camille Scholtz
6c16430a85
Remove whitespace
2025-02-01 18:05:24 +01:00
Camille Scholtz
ff37d11610
Workflow fixes for macOS
2025-02-01 18:05:17 +01:00
Camille Scholtz
509786cbf1
Revert "remove macOS support"
...
This reverts commit 518ce0187a29bea666b9abf71788625262d015be.
2025-02-01 18:05:13 +01:00
allixx
148050898a
doc/user: update windows build meson version
2025-02-01 12:16:38 +03:00
Max Kellermann
a29d3eb975
Merge branch 'id3tag-meson-fix' of https://github.com/allixx/MPD into v0.23.x
2025-02-01 08:23:12 +01:00
allixx
1247ee5347
subprojects/packagefiles/id3tag/meson.build: fix meson errors
2025-02-01 09:59:40 +03:00
gd
f15b6a43d3
Logging: curl - write debug output through MPD log instead of curl writing directly to stderr.
...
The output gets the standard MPD log format with domain curl and a timestamp.
Using CURLOPT_DEBUGFUNCTION that is only called when CURLOPT_VERBOSE is in effect
when MPD log level is verbose.
2025-02-01 08:53:38 +02:00
Max Kellermann
bddfff9c2b
meson.build: fix typo
2025-01-31 19:51:00 +01:00
allixx
cdc99812c9
python/build/libs.py: replace broken Boost 1.81.0 url
2025-01-31 19:17:28 +03:00
Max Kellermann
63ad12bb89
storage/nfs: MapUTF8("") returns the full URL including parameters
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2154
2025-01-30 20:04:19 +01:00
Max Kellermann
7c4ddb5943
input/uring: initialize uring_input_queue lazily
...
The BlockingCall() in InitUringInputPlugin() did not work because the
EventThread was not yet started. This was never noticed until commit
e309941646e which enabled `IORING_SETUP_SINGLE_ISSUER`, and suddenly
the kernel refused to accept io_uring_submit() calls from the
io_thread because io_uring_setup() had been called from the main
thread.
2025-01-30 20:00:57 +01:00
Max Kellermann
3cf5354e3f
Revert "Main: start IO threads before initializing the rest"
...
This reverts commit abc84206977744f30f528f2ef27d87220266276d. This
was a bad idea, too, because it broke daemonization.
2025-01-30 19:58:15 +01:00
Max Kellermann
838398103c
Revert "event/Thread: start the thread in the constructor"
...
This reverts commit b49cfe96f406bf0b750b7a1ea73609905d606335. It was
a bad idea because it broke signal handlers. I need to find a better
way to fix io_uring intialization.
2025-01-30 19:58:15 +01:00
Max Kellermann
30bd70939a
lib/nfs/Connection: remove unnecessary include
2025-01-30 17:24:20 +01:00
Max Kellermann
275cd9d1d0
lib/nfs/Connection: give up connection after NFS4ERR_EXPIRED
...
Once a NFS request fails with NFS4ERR_EXPIRED, the whole connection is
broken and we need to open a new one. I wish libnfs would report this
to us as a connection-level error, but instead only the one request
fails; therefore this workaround is an ugly kludge.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2175
2025-01-30 17:23:39 +01:00
Max Kellermann
5b001957c7
input/async: skip resume and seek if there is a pending error
...
The resume/seek was received asynchronously and meanwhile an error
might have occurred that needs to be handled.
This fixes another NFS-related crash bug.
2025-01-30 16:47:51 +01:00
Max Kellermann
d1e5c90c3b
decoder/flac: do not seek when DecoderCommand::STOP is received
...
libFLAC tries to keep on seeking a stream even after a (fatal) read
error has occurred. Let the DecoderClient decide whether proceeding
is possible.
This fixes a crash bug when playing a file over NFS and the NFS
connection fails.
2025-01-30 16:46:04 +01:00
Max Kellermann
715ef846b6
input/Plugin: pass URI as std::string_view
2025-01-30 13:38:30 +01:00
Max Kellermann
aee49d1c1c
input/cdio: pass std::string_view to parse_cdio_uri()
2025-01-30 13:17:47 +01:00
Max Kellermann
459390cd56
input/alsa: use std::string_view in class SourceSpec
2025-01-30 13:03:52 +01:00
Max Kellermann
7ca8dedb35
pcm/AudioParser: use std::string_view
2025-01-30 12:27:20 +01:00
Max Kellermann
f6cee35896
fs/Traits: add IsAbsolute(string_view)
2025-01-30 11:55:44 +01:00
gd
66ee03741d
Logging: enable log timestamp to stdout logging
...
When running with stdout output to debug the server
or misbehaving clients, it is useful to have the timestamp
to detect timing issues and response times.
Especially when opening and playing online sources that
block the connection thread sometime for a significantly
long time that makes the client-server unresponsive
and cause timeouts in clients.
2025-01-30 11:33:21 +01:00
Max Kellermann
b49cfe96f4
event/Thread: start the thread in the constructor
...
This is the proper fix for the e309941646e0ff1b6 regression; see
commit abc84206977744f30f528f2ef27d87220266276d
2025-01-30 10:58:34 +01:00
Max Kellermann
ae112fe077
Merge branch 'sticker_errors' of https://github.com/jcorporation/MPD
2025-01-30 10:48:18 +01:00
Max Kellermann
a1cbfa1623
Merge branch 'sticker_set' of https://github.com/jcorporation/MPD
2025-01-30 10:46:23 +01:00
Max Kellermann
e06d775af5
util/CircularBuffer: add method MoveTo()
...
This implements wraparound, so AsyncInputStream and ThreadInputStream
can now return all of the buffer contents in one Read() call.
2025-01-29 21:28:28 +01:00
Max Kellermann
950f5f4d32
input/{async,thread}: move code to ReadFromBuffer()
2025-01-29 21:26:05 +01:00
Max Kellermann
abc8420697
Main: start IO threads before initializing the rest
...
This fixes a regression triggered by commit e309941646e0ff1b6 -
IORING_SETUP_SINGLE_ISSUER broke because io_uring_setup() was called
fromm the main thread, yet io_uring_submit() in the I/O thread. This
is because the I/O thread was not yet started when
InitUringInputPlugin() was called, and BlockingCall() was invoked
synchronously in the main thread. This has always been wrong, but was
never noticed.
2025-01-29 21:25:59 +01:00
Max Kellermann
e309941646
event/Loop: initialize io_uring with IORING_SETUP_SINGLE_ISSUER
...
This might give tiny kernel-side optimizations.
2025-01-29 20:29:42 +01:00
Max Kellermann
ea2ced6b9f
event/UringManager: replace with new Uring::Manager class
...
From https://github.com/CM4all/libcommon - the new class is mostly
identical, and I want to maintain only one of them.
2025-01-29 20:27:13 +01:00
Max Kellermann
f1d06396a7
client: replace num
with a name
string
...
This logs the client address (or the process id and uid for local
connections) in each log line instead of the number.
2025-01-29 20:24:05 +01:00
Max Kellermann
95c0e2505c
client/New: pass SocketPeerCredentials to client_new()
2025-01-29 19:36:47 +01:00
Max Kellermann
7adda0aa66
event/ServerSocket: move GetPeerCredentials() call to ClientListener::OnAccept()
2025-01-29 19:32:53 +01:00