Max Kellermann
dcc7628b67
db/update/Archive: remove useless log message
2023-04-30 08:39:34 +02:00
Max Kellermann
f2a4ae15aa
db/update: pass filenames as std::string_view
2023-04-30 08:28:43 +02:00
Max Kellermann
434bcb08ee
db/simple/Song: pass std::string_view to Load{File,FromArchive}()
2023-04-30 08:21:20 +02:00
Max Kellermann
99885c4cbc
util/IntrusiveHashSet: add method remove_and_dispose()
2023-04-22 08:40:53 +02:00
Simon Arlott
ab196f7afc
output/Control: Support always_off
outputs that are never used for playback
...
Add an `always_off` option to outputs that causes them to never start
playback even if they're enabled.
This allows placeholder `null` outputs to be defined for the purpose
of having an external client react to the enabled state without the
side effects of real outputs. Like an external mixer, the client can
perform some action when an output is enabled.
Normally `null` outputs can be used for playback so it's possible for
MPD to continue playback silently if a problem occurs with all the real
outputs (or there are none enabled).
2023-04-21 20:54:37 +01:00
Max Kellermann
90c3fe22f5
decoder/openmpt: check libopenmpt version at compile time, not at configure time
2023-04-21 17:29:20 +02:00
Simon Arlott
ad8117e7c8
decoder/openmpt: Fix build error with libopenmpt < 0.5
...
openmpt_at_end is a string, not an integer
Fixes build error:
src/decoder/plugins/OpenmptDecoderPlugin.cxx: In function 'void mod_decode(DecoderClient&, InputStream&)':
src/decoder/plugins/OpenmptDecoderPlugin.cxx:85:44: error: invalid cast from type 'std::string_view' {aka 'std::basic_string_view<char>'} to type 'unsigned in '
85 | mod.ctl_set("play.at_end", std::to_string((unsigned)openmpt_at_end));
| ^~~~~~~~~~~~~~~~~~~~~~~~
2023-04-21 17:24:42 +02:00
Benjamin Cremer
82568c0b52
Fix syntax error in mpdconf.example
2023-04-13 08:47:43 +02:00
datasone
838b19c2b5
db/SimpleDatabasePlugin: store in_playlist
value of songs into database
...
Fixes hide_playlist_targets not working after server restart
Currently, `hide_playlists_targets` works by skipping songs with
`in_playlist` value set to true in
[`Directory::Walk`](a57bcd0238/src/db/plugins/simple/Directory.cxx (L237)
). But
`in_playlist` is not stored and only updated in
[`UpdateWalk::PurgeDanglingFromPlaylists`](a57bcd0238/src/db/update/Playlist.cxx (L139)
),
which will only be executed while updating DB.
This causes the problem that playlist target songs are correctly
hidden after database update, but will remain visible after mpd server
restarted. This pr solves the problem by storing `in_playlist` value
of songs into the `SimpleDatabase` file.
2023-04-12 05:18:21 +02:00
kaliko
0d2f67b523
check systemd unit dir from systemd.pc in meson
2023-04-11 21:06:53 +02:00
Max Kellermann
a57bcd0238
thread/Mutex: add RecursiveMutex
2023-04-06 21:32:18 +02:00
Max Kellermann
76497bd5f7
util/IntrusiveSortedList, event/TimerList: include cleanup
2023-04-06 10:24:53 +02:00
Max Kellermann
53ec02d5e9
net/SocketDescriptor: decouple from FileDescriptor on Windows
...
On Windows, a socket is not a file descriptor; it is a different beast
(and anyway, Windows doesn't have file descriptors).
2023-03-29 10:12:50 +02:00
Max Kellermann
7a5f485cf8
event/ServerSocket: use class UniqueSocketDescriptor in SupportsIPv6()
2023-03-29 10:06:48 +02:00
Max Kellermann
90565b1e36
test/run_{input,output}: add missing includes
2023-03-29 10:06:48 +02:00
Max Kellermann
6f7c7a2149
event/EpollBackend: add missing header guard
2023-03-21 11:00:41 +01:00
Max Kellermann
91123983ad
Revert "python/build/meson.py: keep Meson from executing Android-x86 test binaries"
...
This reverts commit 8ab2722300
. The
"needs_exe_wrapper" setting was already there, and the new one was
misplaced, it belongs in "[properties]".
2023-03-21 09:46:25 +01:00
Max Kellermann
2506edbffb
python/build/libs.py: update OpenSSL to 3.1.0
2023-03-21 09:39:28 +01:00
Max Kellermann
929520ecd2
python/build/libs.py: update CURL to 8.0.1
2023-03-21 09:38:22 +01:00
Max Kellermann
a20d467bf1
event/Loop: move quit_injected check to inside #ifdef HAVE_THREADED_EVENT_LOOP
2023-03-20 15:02:32 +01:00
Max Kellermann
102dc123e8
LogBackend: log to stderr (regression fix)
2023-03-14 20:25:28 +01:00
Max Kellermann
b4d0b23369
LogBackend: use fmt::print()
2023-03-14 20:24:14 +01:00
Max Kellermann
119a949bb5
ls: use fmt::print()
2023-03-14 20:20:46 +01:00
Max Kellermann
f5b22bf2c3
input/Offset: remove unused macro PRIoffset
2023-03-14 20:20:10 +01:00
Max Kellermann
5b7a89d714
mixer/plugins/volume_mapping: convert to C++
2023-03-14 20:18:41 +01:00
Max Kellermann
5b41857a22
mixer/plugins/volume_mapping: add SPDX header
2023-03-14 20:08:43 +01:00
Max Kellermann
688d9ff114
util/UriExtract: add uri_get_path_query_fragment()
...
Rename uri_get_path() to uri_get_path_query_fragment() and add a new
uri_get_path() function.
2023-03-14 20:03:17 +01:00
Max Kellermann
c2d202e9b0
meson_options.txt: add option "libfuzzer"
...
This option allows disabling libFuzzer, which is required to run the
fuzzers with Honggfuzz.
2023-03-14 19:47:22 +01:00
Max Kellermann
bc51bc2933
pcm/Normalizer: add method Reset()
2023-03-13 13:54:12 +01:00
Max Kellermann
f547a56b1d
pcm/Normalizer: use Traits::long_type
2023-03-13 13:51:27 +01:00
Max Kellermann
1f6637d49a
pcm/Normalizer: add constant SHIFT
2023-03-13 13:49:25 +01:00
Max Kellermann
de155a740c
pcm/Normalizer: convert peakPos to std::size_t
2023-03-13 13:47:04 +01:00
Max Kellermann
f323fc48d7
pcm/Normalizer: eliminate the local variable slot
2023-03-13 13:45:28 +01:00
Max Kellermann
2ea634c302
pcm/Normalizer: replace the gain
array with a simple prev_gain
variable
2023-03-13 13:44:45 +01:00
Max Kellermann
c0d38d941a
pcm/Normalizer: split the normalization loop
...
Performance improvement because the ramp code is now moved out of the
hot code path, allowing the compiler to vectorize.
2023-03-13 13:38:19 +01:00
Max Kellermann
d7f2d90fd3
pcm/Normalizer: no in-place editing, separate src/dest parameters
...
This eliminates the memcpy() call from NormalizeFilter::FilterPCM().
2023-03-13 13:37:49 +01:00
Max Kellermann
8ea9b89321
pcm/Normalizer: use std::span
2023-03-13 13:16:44 +01:00
Max Kellermann
738254b2fc
pcm/Normalizer: use SampleTraits
2023-03-13 12:42:37 +01:00
Max Kellermann
fcc9a98cad
pcm/Normalizer: use PcmClamp()
2023-03-13 12:42:36 +01:00
Max Kellermann
dcf0a3e475
pcm/Normalizer: remove clipped
(only written to, never read)
2023-03-13 12:42:34 +01:00
Max Kellermann
e990d6eecc
pcm/Normalizer: make variables more local
2023-03-13 12:42:31 +01:00
Max Kellermann
941636b87b
pcm/Normalizer: eliminate local variable ap
2023-03-13 12:31:16 +01:00
Max Kellermann
1298a82f4f
pcm/Normalizer: use std::size_t
2023-03-13 12:31:16 +01:00
Max Kellermann
e6fedcbd10
pcm/Normalizer: expose the class, convert functions to methods
2023-03-13 12:25:09 +01:00
Max Kellermann
48c8c7daf5
pcm/Normalizer: move code to ctor/dtor
2023-03-13 12:25:09 +01:00
Max Kellermann
6e5d9d4490
pcm/Normalizer: hard-code the preferences
2023-03-13 12:25:09 +01:00
Max Kellermann
d2f2dde2e1
pcm/Normalizer: eliminate struct CompressorConfig
2023-03-13 12:25:09 +01:00
Max Kellermann
d0dd035075
pcm/Normalizer: use new/delete instead of malloc()/free()
2023-03-13 12:25:09 +01:00
Max Kellermann
7702643e1b
pcm/Normalizer: remove Compressor_setHistory(), no resize possible
...
This feature was never used.
2023-03-13 12:25:09 +01:00
Max Kellermann
984c9c317a
pcm/Normalizer: add noexcept
2023-03-13 12:25:09 +01:00