Max Kellermann
0f4bf5569a
event/InotifyEvent: new class wrapping inotify
...
Replaces class InotifySource.
2022-06-30 12:05:50 +02:00
Max Kellermann
ff4cf6c6d1
test/run_inotify: add class Instance
2022-06-30 11:57:03 +02:00
Max Kellermann
bc3415ce8b
Copyright year 2022
2022-06-30 09:41:53 +02:00
Max Kellermann
1da09f5b1b
lib/curl: use std::span
2022-06-29 17:37:12 +02:00
Max Kellermann
ec66ee3bfb
tag/Handler: use std::string_view instead of StringView
2022-06-29 17:22:17 +02:00
Max Kellermann
6d113de1f8
tag/Handler: pass std::span to OnPicture()
2022-05-24 14:18:33 +02:00
Max Kellermann
b50173ae8b
util/CircularBuffer: use std::span
2022-05-20 11:15:45 +02:00
Max Kellermann
bb7be9a4cd
util/*FifoBuffer: migrate from WritableBuffer to std::span
2022-05-19 14:01:57 +02:00
Max Kellermann
6e1500c251
Merge branch 'v0.23.x'
2022-04-26 21:05:39 +02:00
Max Kellermann
85f9863e0a
meson.build: always enable Wave encoder for Snapcast
...
Even if the "wave_encoder" option is disabled (and no other encoder
plugins are enabled), forcefully enable the Wave encoder (if Snapcast
is enabled).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1500
2022-04-26 20:13:43 +02:00
Max Kellermann
a360475c7b
Merge branch 'v0.23.x'
2022-03-26 06:49:51 +01:00
Max Kellermann
2be4f89555
test/DumpOgg: new debug program
2022-03-16 16:51:44 +01:00
Max Kellermann
1e548fb6e3
lib/curl/Headers: central type definition for the header map
2022-02-14 18:19:05 +01:00
Max Kellermann
fdc0329e64
archive/List: add option to disable archive plugins in mpd.conf
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1384
2022-02-14 17:54:21 +01:00
Max Kellermann
b1096a9935
test/{visit_archive,dump_text_file}: add basic config file support (not wired yet)
2022-02-14 16:43:37 +01:00
Max Kellermann
c68dbc4e5c
queue/Queue: add method GetLight()
2022-02-14 13:33:34 +01:00
Max Kellermann
713c7585b5
pcm/MixRampAnalyzer: a MixRamp implementation
2021-12-06 21:09:28 +01:00
Max Kellermann
f12c25b7ae
pcm/ReplayGainAnalyzer: new library
2021-12-06 21:06:19 +01:00
Max Kellermann
0a54b987a1
test/run_filter: move ReadFrames() to separate source
2021-12-06 10:31:52 +01:00
Max Kellermann
2240327286
ReplayGainInfo: move to tag/
2021-12-06 09:28:36 +01:00
Max Kellermann
3452682a42
IcyMetaDataParser: move to tag/
2021-12-03 16:07:39 +01:00
Max Kellermann
9262b24504
AudioCompress: move to pcm/
2021-12-03 16:04:59 +01:00
Max Kellermann
a5fa43b526
fs/io: move to io/
2021-12-03 14:35:41 +01:00
Max Kellermann
20bf1d68e6
MixRampInfo: move to tag/
2021-12-01 17:09:02 +01:00
Max Kellermann
9bc4c168fd
tag/MixRamp: rename to MixRampParser.cxx
2021-12-01 17:07:53 +01:00
Max Kellermann
3415049d1c
test/tag/TestMixRampParser: include the header, not the .cxx file
2021-12-01 17:07:39 +01:00
Max Kellermann
36b333459b
test/tag/TestMixRampParser: new unit test
2021-12-01 15:46:01 +01:00
Max Kellermann
4d3320233e
test/test_mixramp: move to test/tag/
2021-12-01 15:33:17 +01:00
Max Kellermann
cc421b04cd
test/meson.build: add "protocol:gtest" where appropriate
2021-11-26 08:47:06 +01:00
Max Kellermann
3f2bc325a1
test/meson.build: fix test() indent
2021-11-26 08:40:40 +01:00
Max Kellermann
54686dfd79
test/meson.build: add dependencies on run_input
...
Fixes spurious unit test failures because run_input has not yet been
built.
2021-11-26 08:35:49 +01:00
Rosen Penev
4e0e4c00bf
treewide: replace lock_guard with scoped_lock
...
SonarLint reports the latter to be better:
std::scoped_lock basically provides the same feature as std::lock_guard,
but is more generic: It can lock several mutexes at the same time, with a
deadlock prevention mechanism (see {rule:cpp:S5524}). The equivalent code
to perform simultaneous locking with std::lock_guard is significantly more
complex. Therefore, it is simpler to use std::scoped_lock all the time,
even when locking only one mutex (there will be no performance impact).
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-11-11 17:13:03 -08: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
41a69027c2
test/util/TestUriRelative: add failing test for "./" prefix
2021-10-07 14:44:30 +02:00
Max Kellermann
d7e7adb496
time/FileTime: add ChronoToFileTime()
2021-08-10 16:16:15 +02:00
Max Kellermann
017814adc7
test/time/TestFileTime: new unit test
2021-08-10 15:12:34 +02:00
Max Kellermann
7f94af8b2c
test/time/TestISO8601: disable on Windows for now
2021-08-10 15:07:19 +02:00
Max Kellermann
ee6603ed38
test/meson.build: add missing dependencies on libfmt
2021-08-10 14:31:49 +02:00
Max Kellermann
a2bdac571a
Merge branch 'v0.22.x'
2021-05-17 19:33:15 +02:00
Max Kellermann
8c51440057
test/test_mixramp: workaround for -Wdouble-promotion
2021-04-28 13:00:42 +02:00
Max Kellermann
a71b76bb3c
test/test_pcm_format: another workaround for -Wdouble-promotion
2021-04-26 23:25:36 +02:00
Max Kellermann
c1429500b2
test/test_pcm_format: work around -Wdouble-promotion
2021-04-26 22:21:12 +02:00
Max Kellermann
25354b9d8c
Merge branch 'v0.22.x'
2021-03-10 21:06:12 +01:00
Max Kellermann
d19b3df3b0
test/run_output: call AudioOutput::Drain()
2021-03-08 22:20:55 +01:00
Max Kellermann
4d9af9a81b
test/run_{input,output,convert}: switch file descriptors to binary mode
...
Fixes those programs on Windows.
2021-03-08 17:27:23 +01:00
Max Kellermann
eff50b263a
test/run_output: use class StaticFifoBuffer
2021-03-08 17:01:48 +01:00
Max Kellermann
2bebc79363
test/run_convert: use std::byte
2021-03-08 16:58:43 +01:00
Max Kellermann
e777fb4edb
test/run_convert: pass FileDescriptor to RunConvert()
2021-03-08 16:51:57 +01:00
Max Kellermann
3fb25d4062
test/run_convert: move code to RunConvert()
2021-03-08 16:46:21 +01:00
Max Kellermann
e227596c20
test/run_output: pass FileDescriptor to run_output()
2021-03-08 16:44:15 +01:00
Max Kellermann
e1b62fb90d
Merge branch 'v0.22.x'
2021-03-05 19:33:46 +01:00
Max Kellermann
bc2988144e
test/run_output: use OptionParser, add option "--verbose"
2021-03-05 17:39:48 +01:00
Max Kellermann
b1a9958c66
test/run_output: add struct CommandLine
2021-03-05 17:39:48 +01:00
Max Kellermann
422cf5f182
Merge branch 'v0.22.x'
2021-03-05 16:05:56 +01:00
Max Kellermann
c962a6be76
test/run_convert: fix Windows compiler errors
2021-03-05 13:24:28 +01:00
Max Kellermann
922c4bf3f0
test/TestLookupFile: fix Windows compiler errors
2021-03-05 13:22:34 +01:00
Max Kellermann
99217593bf
test/util/TestIntrusiveList: add AutoUnlink test
2021-03-02 18:15:37 +01:00
Max Kellermann
1c6e4a2b18
test/util/TestIntrusiveList: new unit test
2021-03-02 18:12:15 +01:00
Max Kellermann
0091c4e12b
util/Exception: add FindNested()
2021-03-02 17:13:29 +01:00
Max Kellermann
2d96b05403
test/util/TestException: add CheckFindRetrowNested() unit test
2021-03-02 17:12:43 +01:00
Max Kellermann
29b49dd630
zeroconf/{bonjour,avahi}: pass service_type as parameter
2021-02-24 15:11:11 +01:00
Max Kellermann
9d6bf7e720
test/run_avahi: refactor to RunZeroconf (both avahi and bonjour)
2021-02-24 15:09:10 +01:00
Max Kellermann
975d5be046
zeroconf/avahi/Init: return a std::unique_ptr<AvahiHelper>
2021-02-24 14:41:37 +01:00
Max Kellermann
04d5588fe5
zeroconf/Zeroconf*: drop prefix from file names
2021-02-24 13:33:59 +01:00
Max Kellermann
a312629aad
zeroconf: pass global port to init function
2021-02-24 06:40:26 +01:00
Max Kellermann
c0b9339d31
zeroconf/AvahiPoll: move to lib/avahi/
2021-02-22 14:24:00 +01:00
Max Kellermann
a4b236348f
Merge branch 'v0.22.x'
2021-02-07 22:04:07 +01:00
Max Kellermann
c58c53293c
test/run_input: add option --seek
2021-02-07 21:20:17 +01:00
Max Kellermann
8695a2806a
test/run_input: document more options
2021-02-07 21:17:10 +01:00
Max Kellermann
abbd980671
Merge branch 'v0.22.x'
2021-01-01 19:59:15 +01:00
Max Kellermann
5348f8c9c8
copyright year 2021
2021-01-01 19:54:28 +01:00
Max Kellermann
1f312b2e42
curl/Handler: disallow OnData() to throw
...
This eliminates some complexity from class CurlRequest.
2020-12-15 17:03:24 +01:00
Max Kellermann
ce4c69dd95
test/util/TestException: new unit test
2020-12-02 15:09:47 +01:00
Max Kellermann
8eea825462
test/util/TestTemplateString: new unit test
2020-12-02 15:03:51 +01:00
Max Kellermann
49e1ce7c43
test/TestUtil: move to test/util/
2020-12-02 15:02:45 +01:00
Max Kellermann
0c28d8dcbe
time/ISO8601: support YYYY-MM (without day of month)
2020-11-30 21:55:12 +01:00
Max Kellermann
ac4975cd7a
util/MimeType: relicense to BSD-2
2020-11-18 15:28:21 +01:00
Max Kellermann
2a9131498f
util/UriExtract: pass std::string_view to uri_get_suffix()
2020-11-04 21:13:57 +01:00
Max Kellermann
35a232105e
util/UriExtract: uri_get_suffix() returns std::string_view
...
No need to copy it to a buffer.
2020-11-04 21:08:26 +01:00
Max Kellermann
bb99cf37e3
release v0.22.2
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAl+Zm30QHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEm0BD/0eeuI09j2LPCCQQdOUxl3ydWDLVVqDbT/b
wUYLFEIscr0Kr8k4Mcl3C5LBEeCJq4ZYQ/VqlgNVC11SXVhq7IHJALJ3rYQVIpx+
7MGfd1M0G39d9nlEFeKG2iNKx78aiBTqkMC9MtctacIOiKmntXP0cZZxpqGMMVZs
5t8l8i2CM35BWisu0PjSvPJMzGVf9lgEIqx1ejHBFrX6V6DEZ8d6KEbV9FulNo1Y
bH1UmKdsz71LC1ZE9EescmL5kVvaXyWyJmDDiu2/sqcMRjAHl2+RIAsunv6SqdGH
Sk4OZbtXB8M8EQHuSJESUS6SnQEyGdwCptBn4NHXkajzRJqKCq0FRDyQGT+qrmUr
H+91rZeWRYFbBMStP9l9MMQiTTjXgfCnHExDK9AmrMhiuYnuVxV1deEP7FXswCkd
yU3sPpcKgdzMEYzoTuzXJVyMIKr0WOmNGFMEUbxfBXZDCbT1i9SH+Bi0kQAYe9h9
JQTSWeS5NDRcI/b6nHS6ccUGFEp1scbXQNLw+17UvrUwfeZW9N9/t6jPS4kdUNEm
tnNmbM/3o7yT3B8BGKTl5qBVSjCcgqKfsBXvy9Qn2zE0TN4HQPiJSDXZEH9LuZR1
c6b8aI94gZkN4av1OAjmZgLyn+Pr2gyrei4FQNXyjNJkV5F3wiiLhhDTEMc2WLNm
Zf4qpZArww==
=eRNp
-----END PGP SIGNATURE-----
Merge tag 'v0.22.2' into master
release v0.22.2
2020-10-28 17:33:10 +01:00
Max Kellermann
1195eb266e
protocol/Ack: remove unused variable `ack_domain`
2020-10-28 15:47:05 +01:00
Max Kellermann
329382c1da
event/SignalMonitor: add `noexcept`
2020-10-13 17:26:33 +02:00
Max Kellermann
e0c75da266
playlist/cue/parser: pass StringView to Feed()
2020-10-05 20:33:58 +02:00
Max Kellermann
dffd5831f8
test/fuzzer: a simple fuzzer using libFuzzer
...
This commit adds some basic infrastructure for fuzzers, and adds a
fuzzer for the CUE sheet parser.
2020-10-05 20:25:26 +02:00
Max Kellermann
85af4d6916
meson.build: add -Wdouble-promotion
2020-09-22 20:40:53 +02:00
Max Kellermann
85849c9396
decoder/plugin: add method protocols()
...
Similar to commit 4e2a551f30
but for
decoder plugins. This is tailored for the FFmpeg decoder plugin which
implements some protocols (e.g. RTSP) as demuxer plugin.
2020-09-21 14:53:18 +02:00
Max Kellermann
e8380cf2aa
Merge branch 'v0.21.x' into master
2020-09-07 21:15:53 +02:00
Max Kellermann
1a5e0ef7c9
test/test_archive_iso9660.sh: use an odd chunk size to trigger bug
...
This makes the unit test fail. D'oh!
2020-09-07 20:53:46 +02:00
Max Kellermann
979a7a1dcc
test/run_input: add option --chunk-size
2020-09-07 20:52:37 +02:00
Max Kellermann
291be84704
Merge branch 'v0.21.x' into master
2020-09-07 20:18:40 +02:00
Max Kellermann
962cf32ba7
test/run_input: pass FileDescriptor to dump_input_stream()
2020-09-07 20:14:39 +02:00
Max Kellermann
ae23682372
system/FileDescriptor: add method FullWrite()
2020-09-07 20:13:43 +02:00
Max Kellermann
540919f256
*: use nullptr instead of NULL
2020-09-07 20:08:27 +02:00
Max Kellermann
398281cd76
io/FileDescriptor: add method FullRead()
2020-09-07 20:07:47 +02:00
Max Kellermann
88446ccde9
test/run_filter: use Filter::Flush()
2020-09-07 20:07:40 +02:00
Max Kellermann
6238cc0734
test/run_filter: pass ConstBuffer<void> to FullWrite()
2020-09-07 20:07:33 +02:00
Max Kellermann
fd4823c507
test/run_filter: fix error message
2020-09-07 20:07:29 +02:00
Max Kellermann
68bcfd8bf0
test/run_filter: check for partial writes
2020-09-07 20:07:24 +02:00
Max Kellermann
1d332746af
test/run_filter: move code to WriteOrThrow()
2020-09-07 20:07:18 +02:00
Max Kellermann
f3e133c617
test/run_filter: use class FileDescriptor
2020-09-07 20:07:13 +02:00