Commit Graph

1029 Commits

Author SHA1 Message Date
Max Kellermann a5d7f5e1fa client/Client: add interface IClient
This allows detangling dependencies and fixes a linker problem in
test/test_translate_song.cxx.
2023-11-26 08:11:06 +01:00
Max Kellermann 08a5768764 fs/io/TextFile: split into class FileLineReader and AutoGunzipFileLineReader
Detangle dependencies.
2023-11-25 22:50:32 +01:00
Max Kellermann 3d2bd08132 test/meson.build: eliminate variable gtest_main_dep 2023-11-21 20:46:10 +01:00
Max Kellermann 1259fdc2e3 test/meson.build: re-enable various compiler warnings with GTest 2023-11-21 20:46:10 +01:00
Max Kellermann a564b7eedb test/test_translate_song: remove unused Log() symbol 2023-11-21 20:46:10 +01:00
Max Kellermann 10940da381 util/Intrusive{List,HashSet}: add "tag" for base hooks 2023-11-02 10:48:46 +01:00
Max Kellermann 7ccc4ddf0d io/Reader: use std::span 2023-10-07 08:44:42 +02:00
Max Kellermann 5ddddbb16f test/util/TestIntrusiveForwardList: add push_back() test 2023-10-04 16:50:38 +02:00
Max Kellermann cad35a83fb io/FileDescriptor: add Read()/Write() overloads with std::span 2023-09-27 11:14:23 +02:00
Max Kellermann 09a2da89a2 io/FileDescriptor: pass std::span to Full{Read,Write}() 2023-09-27 10:14:02 +02:00
Max Kellermann 2bb4c7cfa7 test/meson.build: add missing libfmt dependency
Should have been part of 64647edbe1
2023-09-26 10:47:52 +02:00
Max Kellermann 64647edbe1 lib/fmt/SocketAddressFormatter: new library 2023-09-19 11:22:39 +02:00
Max Kellermann 64e91d6eb7 test/util/TestIntrusiveForwardList: add constant_time_size test 2023-09-16 22:39:03 +02:00
Max Kellermann f448bfd3f3 util/IntrusiveForwardList: add option `cache_last` 2023-09-16 22:39:03 +02:00
Max Kellermann 1f495efb46 test/LoadDatabase: ignore tag/charset mismatches
This program shouldn't fail just because the configuration doesn't
match - it has no configuration, it's just a dumb test program.
2023-09-07 09:54:03 +02:00
Max Kellermann 38d8359384 test/LoadDatabase: new test program (for benchmarking the database loader) 2023-09-06 16:17:24 +02:00
Max Kellermann 78801f303e test/util/TestIntrusiveHashSet: add test for remove_and_dispose_key() 2023-08-03 20:44:52 +02:00
Max Kellermann 2cd5f4cd3e util/IntrusiveHashSet: replace template parameters Hash/Equal with a single one
Preparing to add a key extraction function.  Without this "Operators"
template parameter, we'd have even more template parameters, and that
parameter list would grow too complex.  Better wrap it in one single
template that contains all operators.

This is an API change which all callers need to adjust to, but it will
be worth it.
2023-08-03 20:44:14 +02:00
Max Kellermann 42d5b05f54 util/IntrusiveHashSet: rename insert() to insert_commit()
Clarify that the method is not a freestanding insertion method but
should only be used after insert_check().
2023-07-21 19:42:26 +02:00
Max Kellermann 8ba68fdb47 io/OutputStream: use std::span 2023-05-21 21:35:11 +02:00
Max Kellermann 90565b1e36 test/run_{input,output}: add missing includes 2023-03-29 10:06:48 +02: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 e6fedcbd10 pcm/Normalizer: expose the class, convert functions to methods 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 2d7068a09d pcm/AudioCompress: convert to C++ 2023-03-13 12:25:01 +01:00
Max Kellermann dbfd0a833d io/meson.build: move sources to libio_fs.a
Only that one has a dependency on libfs.a (for class AllocatedPath
etc.).
2023-03-07 12:48:47 +01:00
Max Kellermann b18ef61361 output/Registry: rename function 2023-03-07 11:57:36 +01:00
Max Kellermann 5ef29c424d output/meson.build: add liboutput_registry.a 2023-03-07 11:53:16 +01:00
Max Kellermann 1132a1c9a7 protocol/ArgParser: use libfmt 2023-03-06 20:10:06 +01:00
Max Kellermann 0c102a8f2f meson.build: add missing libfmt dependencies 2023-03-06 20:10:06 +01:00
Max Kellermann 02d108774c test/meson.build: add missing dependencies on libio.a 2023-03-06 19:50:52 +01:00
Max Kellermann 2c66d90626 fs/io: move to separate library
To eliminate the libio.a dependency.
2023-03-06 19:47:29 +01:00
Max Kellermann 42f6a0441c use [[gnu::...]] attributes 2023-03-06 16:14:15 +01:00
Max Kellermann 7a46c57ef3 tag/Type: require C++ 2023-03-06 15:28:44 +01:00
Max Kellermann a302d34f6d tag/Names: convert to C++ 2023-03-06 15:16:33 +01:00
Max Kellermann 148aca23be use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Max Kellermann 78b13577ef test/net/TestIPv[46]Address: add more tests 2023-01-28 08:15:41 +01:00
Max Kellermann c6eac285ea test/util/TestRingBuffer: add "U" literal suffix to work around -Wsign-compare 2023-01-23 14:05:55 +01:00
Max Kellermann f31ae7c556 util/RingBuffer: replacement for boost::lockfree::spsc_queue 2023-01-23 13:44:54 +01:00
Max Kellermann 8860962e09 util/IntrusiveHashSet: make several methods `const` 2022-12-01 15:10:13 +01:00
Max Kellermann fa58db798b lib/fmt/RuntimeError: new library
Replacing FormatRuntimeError().
2022-11-29 14:10:34 +01:00
Max Kellermann 45b13fc2a6 util/OptionParser: move to cmdline/
This library will depend on libfmt, and libutil shouldn't depend on
any library.
2022-11-29 11:32:16 +01:00
Max Kellermann 4b5c8d1f3e mixer/meson.build: split libmixer_api from libmixer_glue 2022-11-29 09:09:11 +01:00
Max Kellermann 9467df526c song/StringFilter: add enum Position
Replaces two conflicting bools.
2022-11-15 21:55:55 +01:00
Max Kellermann 53530bd1d5 lib/icu/Canonicalize: convert all punctuation to ASCII
To make tag matching easier.

Closes https://github.com/MusicPlayerDaemon/MPD/issues/1669
2022-11-15 21:04:16 +01:00
Max Kellermann d7f545721b lib/icu/Canonicalize: use unorm2_normalize() instead of u_strFoldCase()
unorm2_normalize() can case-fold as well, plus it applies Unicode
normalization which MPD should do for proper string comparisons.
2022-11-15 20:53:29 +01:00
Max Kellermann 5a1fbe60af test/TestStringFilter: new unit test 2022-11-15 20:52:53 +01:00
Max Kellermann 88e33b7b32 test/TestTagSongFilter: initialize ICU 2022-11-15 20:51:59 +01:00
Max Kellermann 51769c40d8 util/IntrusiveSortedList: new class 2022-11-13 09:08:36 +01:00