Max Kellermann
5ad53a7554
output/Thread: remove duplicate code by calling InternalCloseOutput()
2021-10-22 19:54:47 +02:00
Max Kellermann
7b2e3331f2
output/Filtered: improve API docs
2021-10-22 19:54:38 +02:00
Max Kellermann
3cb44f6652
increment version number to 0.23.3
2021-10-22 12:50:11 +02:00
Max Kellermann
b7fdff46f2
release v0.23.2
2021-10-22 12:45:45 +02:00
Max Kellermann
e16109330d
input/last: clear "uri" in OnCloseTimer()
...
Without clearing the "uri" field, the next Open() call attempts to
reuse the old InputStream, but it has already been closed, so Open()
always returns nullptr.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1300
2021-10-22 12:45:18 +02:00
Max Kellermann
72621531e0
protocol/Result: convert to Client method
2021-10-22 11:55:39 +02:00
Max Kellermann
0a48146efc
client/Client: pass std::string_view to Write()
...
Almost all callers have string literal, and the length is known at
compile time.
2021-10-22 11:54:14 +02:00
Max Kellermann
0c4bf12bfd
player/CrossFade: fix inverted check and wrong variable
...
The inverted check was introduced by commit 46d00dd85f
, and commit
8ad17d25ef
added a check for the wrong variable. D'oh!
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1303
2021-10-22 11:49:38 +02:00
Max Kellermann
b8e0855ef3
output/pipewire: obey PipeWire's DSD bit order and interleave
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1297
2021-10-21 21:15:16 +02:00
Max Kellermann
6467502b9d
output/pipewire: restore SampleFormat::DSD after ToPipeWireAudioFormat() call
2021-10-21 21:15:13 +02:00
Max Kellermann
15b67f20e5
output/pipewire: un-inline ParamChanged()
2021-10-21 20:11:22 +02:00
Max Kellermann
0825179f00
output/pipewire: add local reference variables
2021-10-21 20:02:59 +02:00
Max Kellermann
97211d0aad
output/pipewire: rename field "buffer" to "pod_buffer"
2021-10-21 20:02:32 +02:00
Max Kellermann
029c499bfa
output/pipewire: use std::fill_n()
2021-10-21 20:01:44 +02:00
Max Kellermann
0ba867ec16
output/pipewire: use MAX_CHANNELS, not SPA_AUDIO_MAX_CHANNELS
...
MPD supports only 8 channels, so MAX_CHANNELS is enough, the array
doens't need to be SPA_AUDIO_MAX_CHANNELS (which is 64).
2021-10-21 20:01:01 +02:00
Max Kellermann
866d147122
output/pipewire: make field "channels" unsigned
2021-10-21 19:59:48 +02:00
Max Kellermann
32851d1bc7
output/pipewire: DSD support
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1297
2021-10-20 11:39:54 +02:00
Max Kellermann
78257408b4
output/pipewire: report errors from the "state_changed" callback
2021-10-20 11:24:57 +02:00
Max Kellermann
f447b7615e
output/pipewire: check pw_stream_connect() errors
2021-10-20 11:24:51 +02:00
Max Kellermann
1f780b7209
output/Thread: log exception details
2021-10-20 11:24:51 +02:00
Max Kellermann
04bf8a6b1a
output/pipewire: fix memory leak in SendTag()
2021-10-20 10:16:36 +02:00
Max Kellermann
c4c64854d4
output/pipewire: evaluate errno after libpipewire function calls
2021-10-20 10:13:27 +02:00
Max Kellermann
17562dc90b
output/pipewire: remove misplaced `noexcept`
2021-10-20 09:41:27 +02:00
Max Kellermann
7b24316734
output/pipewire: fix coding style
2021-10-20 09:41:10 +02:00
Max Kellermann
5fab107fd3
lib/nfs/FileReader: use the thread-safe InjectEvent
...
.. instead of DeferEvent, which is not thread-safe. This caused
various playback problems, which was initially caused by the
DeferEvent/InjectEvent split in commit 774b4313f2
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1298
2021-10-20 09:38:09 +02:00
Max Kellermann
f31920e092
event/Loop: add thread assert() to AddDefer()
...
Currently fails in class NfsFileReader due to
https://github.com/MusicPlayerDaemon/MPD/issues/1298
2021-10-20 09:26:27 +02:00
Max Kellermann
eb111a10e7
output/pipewire: remove redundant prefix and newline from log message
2021-10-19 14:38:37 +02:00
Max Kellermann
80b09360c6
NEWS: mention the previous commit
2021-10-19 14:38:37 +02:00
Nicolai Syvertsen
5ccf78855d
Implement SendTag for PipeWire output plugin
2021-10-19 14:31:40 +02:00
Max Kellermann
fd5a3b5880
client/Response: reimplement Error() without FmtError()
...
With libfmt versions older than 7, this leads to an endless recursion
between Error() and FmtError(), resulting in a crash due to stack
overflow. D'oh!
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1295
2021-10-19 13:40:11 +02:00
Max Kellermann
6120c1360c
neighbor/Glue: remove unreachable "throw" statement
...
Should have been removed by commit a8087dc12c
2021-10-19 13:40:11 +02:00
Max Kellermann
a8087dc12c
neighbor/Glue: mention failed plugin name in error message
2021-10-19 13:29:00 +02:00
Max Kellermann
070c03dbf7
event/Thread, ...: fix printf->libfmt remains
2021-10-19 13:19:07 +02:00
Max Kellermann
0a9bec3754
increment version number to 0.23.2
2021-10-19 10:29:49 +02:00
Max Kellermann
fff25ac753
release v0.23.1
2021-10-19 10:27:28 +02:00
Max Kellermann
4f1e79b6b8
filter/ReplayGain: emit "mixer" event when replay gain changes volume
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1294
2021-10-19 10:03:21 +02:00
Max Kellermann
aa9933c0b5
output/pipewire: add `noexcept`
2021-10-19 08:58:50 +02:00
Max Kellermann
0697d1f859
output/pipewire: include cleanup
2021-10-19 08:57:33 +02:00
Max Kellermann
df033fa4aa
NEWS: mention the previous commit
2021-10-19 08:56:32 +02:00
Nicolai Syvertsen
b941a7df83
Implement volume updates for pipewire output
2021-10-19 00:01:45 +02:00
Max Kellermann
31151cec3c
command/playlist: "load" supports relative positions
...
This commit also increases the PROTOCOL_VERSION so clients can detect
the availability of the feature.
2021-10-18 22:08:22 +02:00
Max Kellermann
07e8c338df
command/queue: move position parameter functions to separate library
2021-10-18 22:07:04 +02:00
Max Kellermann
b22d7218aa
command/player, ...: use decimal notation
...
During the libfmt migration, I converted "%1.3f" to just "{:1.3}"
without the "f" suffix, but libfmt defaults to scientific notation,
which can break some MPD clients.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1291
2021-10-18 16:54:53 +02:00
Max Kellermann
d5be8c74b0
output/pipewire: attempt to change the graph sample rate
...
Requires PipeWire 0.3.32.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1283
2021-10-18 16:46:23 +02:00
Max Kellermann
c112cb60da
output/snapcast: fix typo which caused "Failed to get chunk"
...
This bug caused a 9 second offset in all time stamps. Due to that,
the Snapcast server thought the chunks are too old and discarded them.
Fixes https://github.com/MusicPlayerDaemon/MPD/discussions/1287
2021-10-18 16:40:11 +02:00
Max Kellermann
677fa4f9bc
doc/plugins.rst: mention that the snapcast output requires a format
2021-10-17 20:01:21 +02:00
Max Kellermann
907af2ad02
Permission: refactor getPermissionFromPassword() to return std::optional
...
This replaces the output parameter (which is bad API design). As a
side effect, it fixes the bad [[gnu::pure]] attribute added by commit
a636d2127
which caused optimizing compilers to miscompile calls to
that function. "Pure" functions can be assumed to have no output
arguments, so the compiler can assume the function doesn't modify
them.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1282
2021-10-17 19:58:50 +02:00
Thomas Zander
6a2e7bbc02
protocol/ArgParser.cxx: Add missing #include <stdio.h>
...
Fixes a build problem on platforms where stdio.h is not included
transitively. snprintf() is defined in stdio.h.
2021-10-16 17:38:07 +02:00
Max Kellermann
771c46032f
meson.build: add missing libfmt dependencies
...
Fixes https://github.com/MusicPlayerDaemon/MPD/discussions/1281
The problem occurred when there was libfmt-dev installed, but it was
too old (e.g. on Debian Buster), and Meson used the wrap fallback.
Those internal MPD libraries where the libfmt dependency was not
declared were still using the old system libfmt headers, which are not
ABI-compatible with MPD's own libfmt build.
2021-10-15 14:26:59 +02:00
Max Kellermann
85611aa456
storage/smbclient: add StoragePlugin.prefixes
...
Should have been part of commit
ef24cfa523
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1279
2021-10-15 10:24:30 +02:00