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
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
77d74b404e
Permission: add option "host_permissions"
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1115
2021-10-14 14:44:18 +02:00
Max Kellermann
f510564d9d
more [[gnu::...]] attributes
2021-10-13 12:07:05 +02:00
Max Kellermann
b29a43b4d7
decoder/mad, ...: more libfmt logging
2021-06-25 20:52:08 +02:00
Max Kellermann
f60a42e0b6
Log, client/Response: adapt to libfmt 8.0.0 API changes
2021-06-25 20:29:25 +02:00
Max Kellermann
6f539cfcd6
Partition, ...: use libfmt for logging
2021-06-24 21:40:11 +02:00
Max Kellermann
78b0ff83e8
client/Response: include cleanup
2021-05-27 15:59:06 +02:00
Max Kellermann
23613355f3
client/Response: remove unused method FormatV()
2021-05-27 15:16:35 +02:00
Max Kellermann
0d97eba7a5
client/Response: refactor FormatError() to use libfmt
2021-05-27 15:15:47 +02:00
Max Kellermann
18efda719e
client/Response: remove unused method Format()
2021-05-27 15:14:54 +02:00
Max Kellermann
42239a30eb
client/Response: use Fmt() in FormatError()
2021-05-27 15:05:42 +02:00
Max Kellermann
0440c41cba
client/Response: add method Fmt() based on libfmt
2021-05-25 16:01:56 +02:00
Max Kellermann
96707c0426
Merge tag 'v0.22.7'
...
release v0.22.7
2021-05-19 18:43:19 +02:00
Max Kellermann
6de4064cca
client/Response, command/file: use %lu instead of %zu on Windows
...
Fixes -Wformat warnings.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1150
2021-05-19 18:06:40 +02:00
Max Kellermann
b2cec7a0a3
Merge branch 'v0.22.x'
2021-05-19 08:09:05 +02:00
Max Kellermann
dbb18a401b
command/file: cache the last "albumart" file
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1156
2021-05-18 17:04:09 +02:00
Rosen Penev
44378b7dbe
use structured binding declarations
...
Shorter.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2021-03-04 20:28:02 +01:00
Max Kellermann
d4bbb8c851
Merge branch 'struc' of git://github.com/neheb/MPD
2021-03-04 17:50:53 +01:00
Max Kellermann
def962b6cb
event/{Coarse,Fine,Far}TimerEvent: aliases for TimerEvent
...
Preparing for a variant of TimerEvent with coarse 1-second
granularity, but cheaper (with a timer wheel).
2021-02-05 18:16:05 +01:00
Max Kellermann
8279cafd6d
Merge tag 'v0.22.4'
...
release v0.22.4
2021-01-21 17:42:26 +01:00
Max Kellermann
995aafe9cc
protocol: add command "binarylimit"
...
Increasing the protocol version to 0.22.4 to allow clients to detect
this feature.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1038
2021-01-21 17:17:10 +01:00
Max Kellermann
2a8c420cff
client/Response: add printf
attribute
2021-01-20 20:43:16 +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
774b4313f2
event/DeferEvent: split the thread-safe version into new class InjectEvent
2020-12-01 17:14:24 +01:00
Rosen Penev
0fd2c74a66
use structured binding declarations
...
Shorter.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-10-28 15:41:31 -07:00
Max Kellermann
eeb96eb367
event/TimerEvent: add type alias for std::chrono::steady_clock::duration
2020-10-08 20:48:50 +02:00
Rosen Penev
e4dad42ca1
use std chr functions
...
The ones in std have overloads for const char/char.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-05-30 13:36:53 +02:00
Max Kellermann
e0edf0b206
meson.build: move VERSION and others to Version.h
2020-05-05 15:12:11 +02:00
Rosen Penev
2db8bcc353
replace stddef.h with cstddef
...
The former is deprecated with C++14. The standard says both are the same:
The contents and meaning of the header<cstddef>are the same as the C
standard library header<stddef.h>,except that it does not declare the type
wchar_t, that it also declares the type byte and its associated
operations (21.2.5), and as noted in 21.2.3 and 21.2.4.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-03-12 19:04:38 -07:00
Rosen Penev
c846ee0d1b
replace stdarg.h with cstdarg
...
The former was deprecated in C++14. The Standard says they are the same:
The contents of the header<cstdarg>are the same as the C standard library
header<stdarg.h>, with the following changes: The restrictions that ISO C
places on the second parameter to the va_start macro in header<stdarg.h>
are different in this International Standard. The parameter parmN is the
rightmost parameter in the variable parameter list of the function
definition (the one just before the...).219If the parameter parmN is a
pack expansion (17.5.3) or an entity resulting from a lambda capture
(8.1.5), the program is ill-formed, no diagnostic required. If the
parameter parmN is of a reference type, or of a type that is not
compatible with the type that results when passing an argument for which
there is no parameter, the behavior is undefined.
Also changed va_list to the std:: namespace version, which is the same.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-03-12 19:03:12 -07:00
Rosen Penev
ab9f5d2067
replace assert.h with cassert
...
The former was deprecated with C++14.
According to the C++11 and C++17 standards, both files are identical.
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-03-12 15:25:38 -07:00
Max Kellermann
2229e86673
client/Expire: cancel the BackgroundCommand before deleting it
...
Fixes assertion failure.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/774
2020-03-12 20:32:08 +01:00
Max Kellermann
f24c274f5c
client/BackgroundCommand: fix typo in comment
2020-03-12 20:32:07 +01:00
Rosen Penev
ac50bb5d2b
[clang-tidy] remove needless std::move
...
Found with performance-move-const-arg
Signed-off-by: Rosen Penev <rosenp@gmail.com >
2020-02-20 16:47:34 +01:00
Max Kellermann
72ec641f0d
*: use auto
2020-02-01 14:02:43 +01:00
Max Kellermann
49309b419f
Partition: add a local idle_monitor
...
Make idle events per-partition, but leave Instance::EmitIdle() and its
underlying idle_monitor which broadcasts idle events to all
partitions.
2020-01-20 13:33:01 +01:00
Max Kellermann
56eaf000a4
Partition: add client list
...
For efficient traversal within one partition, e.g. for distributing
partition-local idle events.
2020-01-20 13:16:13 +01:00
Max Kellermann
438a6d7595
client/Client: make several getter methods const
2020-01-20 12:47:57 +01:00
Max Kellermann
ac126ede22
client/Client: emit idle flags in SetPartition()
2020-01-18 22:21:27 +01:00
Max Kellermann
2817bf9e95
copyright year 2020
2020-01-18 19:23:49 +01:00
Max Kellermann
c9081a206a
client/New: fix assertion failure in Close()
...
Caused by a revert accident in commit
f2cdbeace6
Closes https://github.com/MusicPlayerDaemon/MPD/issues/631
2019-08-22 14:43:53 +02:00
Max Kellermann
f2cdbeace6
Revert "Client: eliminate SetExpired(), call Close() directly"
...
This reverts commit 58d7804d66
. It
caused a use-after-free bug when Client::OnSocketError() was called
due to a failed write, e.g. if the output buffer was full.
2019-08-22 09:52:19 +02:00
Max Kellermann
4f61cd0b93
client/Response: add constant MAX_BINARY_SIZE
...
Use the same chunk size for all binary commands.
2019-08-12 20:23:46 +02:00
Max Kellermann
989790e7f1
client/Response: add method WriteBinary()
...
Move code from read_stream_art().
2019-08-12 14:17:35 +02:00
Max Kellermann
d663f81420
include cleanups (powered by iwyu)
2019-07-05 09:59:58 +02:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
0b4e7b3317
client/List: use using
instead of typedef
2019-05-29 21:36:27 +02:00