Max Kellermann
997311ba14
lib/curl/Easy: add method TrySetOption()
2024-01-04 17:51:48 +01:00
Max Kellermann
cbd031ca7f
lib/upnp/Action: common UpnpSendAction() wrapper for pupnp and npupnp
...
Merge a lot of duplicate code.
2024-01-04 17:40:59 +01:00
Max Kellermann
95842e7984
db/upnp: eliminate the std::forward_list, use IterableSplitString()
2024-01-04 16:31:28 +01:00
Max Kellermann
cc41e95806
db/upnp: add rootid_sv
2024-01-04 16:20:44 +01:00
Max Kellermann
2c77e088b4
db/upnp: eliminate temporary std::string from Visit()
2024-01-04 16:19:03 +01:00
Max Kellermann
c8e2ab6781
db/upnp/Object: smaller enums
2024-01-04 14:31:41 +01:00
Max Kellermann
b2ed29b8c0
lib/upnp/ContentDirectoryService: getFriendlyName() returns std::string reference
...
This can avoid the overhead of casting a C string back to std::string_view.
2024-01-04 14:28:12 +01:00
Max Kellermann
1789b56a85
db/upnp: pass std::string_view to songPath()
2024-01-04 14:28:12 +01:00
Max Kellermann
714dbc9294
lib/upnp/Discovery: forward-declare inner class ContentDirectoryDescriptor
2024-01-04 14:28:12 +01:00
Max Kellermann
f40eb963fd
lib/upnp/Discovery: forward-declare inner class Downloader
2024-01-04 14:28:12 +01:00
Max Kellermann
ee4b49d12f
lib/expat/ExpatParser: pass std::string_view to Parse()
2024-01-04 14:28:12 +01:00
Max Kellermann
4c9942534c
lib/upnp/Device: pass url as std::string_view to Parse()
2024-01-04 14:28:12 +01:00
Max Kellermann
d5f7db59a8
lib/upnp/Util: pass std::string_view to path_getfather()
2024-01-04 14:28:12 +01:00
Max Kellermann
8d1b73ae89
lib/upnp/Discovery: use string_view::starts_with() instead of strncmp()
2024-01-04 14:28:08 +01:00
Rosen Penev
f68fab53a7
zzip: fix compilation on Windows
...
NarrowPath is needed.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-01-04 12:38:36 +01:00
Rosen Penev
6a4dc281d1
bzip2: fix compilation on Windows
...
NarrowPath is needed.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-01-04 12:38:30 +01:00
Rosen Penev
a859de6806
sndfile: fix compilation with clang's libc++
...
error: non-constant-expression cannot be narrowed from type 'sf_count_t'
(aka 'long long') to 'size_type' (aka 'unsigned int') in initializer list
[-Wc++11-narrowing]
215 | std::span{buffer, num_frames * frame_size},
| ^~~~~~~~~~~~~~~~~~~~~~~
note: insert an explicit cast to silence this issue
215 | std::span{buffer, num_frames * frame_size},
| ^~~~~~~~~~~~~~~~~~~~~~~
| static_cast<size_type>()
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-01-03 12:18:52 -08:00
Rosen Penev
f6dbf38e99
upnp: change interface variable name
...
rpc.h under Windows defines interface as struct, which blows up the
build here. Rename to avoid.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-28 19:39:05 -08:00
Max Kellermann
d0a4270449
lib/upnp/Compat: remove obsolete kludges
...
Those bugs have been fixed looong ago.
2023-12-28 21:24:58 +01:00
Max Kellermann
b9a7a9981e
lib/upnp/ContentDirectoryService: remove unused fields
2023-12-28 21:22:41 +01:00
Max Kellermann
d9fb152b95
lib/upnp/ContentDirectoryService: include some headers only with libpupnp
2023-12-28 21:18:41 +01:00
Max Kellermann
9396ffb509
db/plugins/upnp/ContentDirectoryService: add missing closing curly brace
2023-12-28 20:52:53 +01:00
Rosen Penev
e7e07c39c5
meson: fix flac_dep under Windows
...
declare_dependency's found() method evaluates to true always, resulting
in MPD trying to build flac when not found. Check for dependency()'s
find() first.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-27 12:43:08 -08:00
Rosen Penev
44080154b0
no setenv on Windows
...
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-27 10:50:00 -08:00
Rosen Penev
7c520f6475
fs: fix typo
...
Wrong macro used.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2023-12-26 10:57:44 -08:00
Max Kellermann
23b4688c44
util/ByteOrder: move Packed* classes to separate headers
2023-12-22 18:20:46 +01:00
Max Kellermann
a888b3a707
decoder/plugins/meson.build: add missing dependency to libid3tag
2023-12-22 18:03:47 +01:00
Max Kellermann
3c5b864396
tag/IcyMetadataParser: use std::span
2023-12-21 08:42:23 +01:00
Max Kellermann
58fc857a2d
tag/IcyMetadataParser: pass std::string_view to icy_parse_tag()
2023-12-20 20:18:39 +01:00
Max Kellermann
e443ee357a
tag/IcyMetadataParser: do not null-terminate strings in icy_parse_tag()
...
Just pass std::string_views into the unmodified buffer to
icy_parse_tag_item().
2023-12-20 19:58:35 +01:00
Max Kellermann
2618294eb7
tag/IcyMetadataParser: pass std::string_view to icy_parse_tag_item()
2023-12-20 19:51:22 +01:00
Max Kellermann
03352cb4ad
tag/IcyMetadataParser: use std::byte in ParseInPlace()
2023-12-20 19:49:08 +01:00
Max Kellermann
303d981099
subprojects: add lame
2023-12-20 16:50:13 +01:00
Max Kellermann
7727630f24
Merge branch 'alsa_input_exception' of https://github.com/borine/MPD
2023-12-20 13:21:37 +01:00
Colin Edwards
16c91a3f4b
android: Fix MPD shutdown from settings UI
2023-12-19 22:05:03 -06:00
Max Kellermann
dfef30a737
subprojects: add curl
2023-12-11 10:53:43 +01:00
Max Kellermann
642de1510b
lib/curl/Request: remove redundant CurlEasy wrapper methods
2023-12-09 20:54:21 +01:00
borine
f61eed1a82
input/plugins/Alsa: catch all exceptions
...
snd_pcm_poll_descriptors_revents() may return any error code; the
ALSA docs do not constrain the permitted values. A 'hw' device
will only ever return an error if the pfd array passed in is
invalid (-EINVAL), but other I/O plugins may return arbitary
errors. For example a network-based device may return -EPIPE etc.
The resulting exception thrown by
AlsaNonBlockPcm::DispatchSockets() must be caught to prevent the
mpd process from being aborted.
2023-11-26 15:36:42 +00:00
Max Kellermann
e9c40dead8
output/SharedPipeConsumer: add noexcept
2023-11-26 08:48:45 +01:00
Max Kellermann
31bf6d29b9
BulkEdit: forbid copying
2023-11-26 08:47:06 +01:00
Max Kellermann
571b6f0cdb
queue/IdTable: add constexpr
(because we can)
2023-11-26 08:43:50 +01:00
Max Kellermann
e7b9e8de14
queue/IdTable: add API docs
2023-11-26 08:43:20 +01:00
Max Kellermann
321553d5f9
queue/IdTable: add explicit
2023-11-26 08:41:57 +01:00
Max Kellermann
4d23068c5c
queue/IdTable: use C++11 initializer
2023-11-26 08:41:19 +01:00
Max Kellermann
634b38169a
Merge branch 'alsa_input_buffer' of https://github.com/borine/MPD
2023-11-26 08:24:51 +01:00
Max Kellermann
fe4695f92a
Merge branch 'added_time_proxy_plugin' of https://github.com/jcorporation/MPD
2023-11-26 08:20:18 +01:00
Max Kellermann
3c7941b24b
Instance: work around -Wunused-parameter
2023-11-26 08:13:57 +01:00
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
0dfd7e3d8c
net/SocketDescriptor: SO_PROTOCOL is really Linux-specific
2023-11-25 23:03:30 +01:00
Max Kellermann
f757dfdc4f
SongLoader: add noexcept
2023-11-25 22:57:24 +01:00
Max Kellermann
eb675ad1b1
pcm/meson.build: add missing dependency on libconfig.a
2023-11-25 22:51:43 +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
d888bb1902
io/meson.build: move libfmt dependency to libio.a
2023-11-25 22:16:47 +01:00
Max Kellermann
6dc708f53f
net/SocketDescriptor: use method GetOption() internally
2023-11-25 21:58:17 +01:00
Max Kellermann
60033f3eb4
net/SocketDescriptor: add method GetProtocol()
2023-11-25 21:58:09 +01:00
Max Kellermann
1239e075b8
net/SocketDescriptor: add method GetIntOption()
2023-11-25 21:56:07 +01:00
Max Kellermann
d0eea87b1a
song/*SongFilter: use libfmt
2023-11-25 20:42:50 +01:00
Max Kellermann
273fc329e0
Merge branch 'added-since' of https://github.com/jcorporation/MPD
2023-11-25 20:36:38 +01:00
Max Kellermann
b9daeef524
event/FineTimerEvent: add SetDue(), ScheduleCurrent()
2023-11-21 20:47:29 +01:00
Max Kellermann
9383ceac30
event/{Coarse,Fine}TimerEvent: add API docs
2023-11-21 20:47:25 +01:00
Max Kellermann
ebf1fc7ca4
util/IntrusiveList: convert static_assert to concept check
2023-11-21 20:42:01 +01:00
Max Kellermann
73708e7be7
event/TimerEvent: remove transitional header
2023-11-21 20:41:55 +01:00
Max Kellermann
0c409aa290
input/LastInputStream: use CoarseTimerEvent
2023-11-21 20:41:47 +01:00
Max Kellermann
edfa329e64
util/DereferenceIterator: use *declval() to guess the default value type
...
This allows the iterator to point to another iterator.
2023-11-21 20:40:47 +01:00
Max Kellermann
5ab2c31500
Merge branch 'v0.23.x'
2023-11-21 20:37:46 +01:00
skidoo23
50c1e3738a
decoder/ffmpeg: Fix build error with ffmpeg 6.1
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1898
2023-11-21 20:36:37 +01:00
jcorporation
1615fbc30e
Add "added-since" filter expression
2023-11-04 17:25:24 +01:00
jcorporation
45a4fcab1e
Add support for added attribute to proxy plugin
2023-11-02 21:22:48 +01:00
Max Kellermann
68b19ae087
util/SpanCast: add ReferenceAsWritableBytes()
2023-11-02 10:50:24 +01:00
Max Kellermann
a073db1e52
util/SpanCast: add ReferenceAsBytes()
2023-11-02 10:50:00 +01:00
Max Kellermann
10940da381
util/Intrusive{List,HashSet}: add "tag" for base hooks
2023-11-02 10:48:46 +01:00
Max Kellermann
57d9cffc42
event/PipeEvent: expose the EventPollBackendEvents constants
2023-11-02 10:48:21 +01:00
Max Kellermann
ac25f3456a
Merge branch 'added_time' of https://github.com/jcorporation/MPD
2023-11-02 10:42:31 +01:00
jcorporation
f4f79a3d5f
New command "stickernames" lists uniq and sorted sticker names
2023-10-21 18:21:03 +02:00
jcorporation
7bf43a9712
Add "added" timestamp to song database
...
- added is set to current time, if a new song is added to the database.
- GetAdded falls back to mtime.
Code for proxy plugin is missing, this needs a patch for libmpdclient.
closes #378
2023-10-20 17:29:31 +02:00
Max Kellermann
2b10cf3c15
pcm/Normalizer: change license identifier to LGPL-2.1-only
...
"LGPL-2.1" doesn't exist, and the old copyright header did not specify
the "or later" clause, so I must assume it's 2.1 only.
2023-10-15 11:37:21 +02:00
gd
432675d4c2
Stickers: added support for stickers on playlists and some tag types
2023-10-15 11:25:16 +02:00
Max Kellermann
70ac638d93
tag/Mask: make everything constexpr
2023-10-15 11:03:56 +02:00
Max Kellermann
ccbacb369b
io/linux/ProcPath: new library
2023-10-15 10:55:32 +02:00
Max Kellermann
7c0b561a16
event/InotifyEvent: add method TryAddWatch()
2023-10-15 10:51:06 +02:00
Max Kellermann
db5f270f42
util/AllocatedString: fix string_view specialization in TotalSize()
2023-10-09 14:54:40 +02:00
Max Kellermann
f49d4ef4ad
tag/Mask: switch to 64 bit because have we 34 tags now and 32 bits are not enough
2023-10-08 10:02:50 +02:00
Max Kellermann
2859845567
Merge branch 'v0.23.x'
2023-10-08 10:02:19 +02:00
Max Kellermann
f3c37e484e
tag/Mask: add static_assert on the size of the mask
2023-10-08 10:01:00 +02:00
Max Kellermann
e521b58b01
io/PeekReader: fix offset/size mixup
...
Regression by commit 7ccc4ddf0d
2023-10-08 09:55:59 +02:00
Max Kellermann
34182990ef
fs/FileInfo: add fstat() wrapper
2023-10-07 12:49:07 +02:00
Max Kellermann
1ca5d6baa6
io/FileReader: do not copy the path
2023-10-07 12:48:03 +02:00
Max Kellermann
9365f68454
io/FileReader: use GetFileInfoByHandle()
2023-10-07 12:47:57 +02:00
Max Kellermann
7b5f107341
fs/FileInfo: add GetFileInformationByHandleEx() wrapper
2023-10-07 12:37:49 +02:00
Max Kellermann
e9ec03f769
PlaylistFile: use uint_least64_t
2023-10-07 12:29:14 +02:00
Max Kellermann
579a6ee299
fs/FileInfo: un-inline the constructor to reduce header dependencies
2023-10-07 12:28:31 +02:00
Max Kellermann
7d31659137
PlaylistFile: add missing include
2023-10-07 12:28:31 +02:00
Max Kellermann
f549c611ab
fs/FileInfo: make constructor explicit
2023-10-07 12:24:05 +02:00
Max Kellermann
51c0a03e94
fs/FileInfo: add constexpr
and noexcept
2023-10-07 12:22:54 +02:00
Max Kellermann
19c73680cf
io/FileReader: use uint_least64_t
2023-10-07 08:49:04 +02:00
Max Kellermann
a9ba9a5f92
io/Reader: add [[nodiscard]]
2023-10-07 08:45:59 +02:00
Max Kellermann
3032792563
io/Reader: add method ReadFull()
2023-10-07 08:45:52 +02:00
Max Kellermann
7ccc4ddf0d
io/Reader: use std::span
2023-10-07 08:44:42 +02:00
Max Kellermann
b9704715fb
io/FileOutputStream: pass dfd=-1 for absolute /proc/self/fd/N path
2023-10-07 08:42:35 +02:00
Max Kellermann
86e7dff2fc
util/TextFile: add missing cast
2023-10-07 08:39:24 +02:00