Max Kellermann
323517753d
lib/fmt/meson.build: remove obsolete clang 14 workaround
...
Android NDK r27 has clang 18 and I don't feel like supporting clang 14.
2024-07-29 22:11:20 +02:00
Max Kellermann
5726d9f06a
mixer/Memento: include cleanup
2024-07-29 17:04:53 +02:00
Max Kellermann
0992fab1c8
filter/ReplayGain: include cleanup
2024-07-29 17:04:30 +02:00
Max Kellermann
b546ddc54c
client/Idle: include cleanup
2024-07-29 17:03:59 +02:00
Max Kellermann
d45b7cc972
IdleFlags: move to procool/
2024-07-29 17:02:33 +02:00
Max Kellermann
12eaaef210
output/Thread: allow Delay() to return duration::max()
...
Eliminate the periodic wakeups while paused in some output plugins.
2024-07-29 16:52:36 +02:00
Max Kellermann
0a035f3ce0
output/alsa: add option "close_on_pause"
...
This allows keeping the ALSA PCM open even if playback is paused. As
a side effect, this allows using the "always_on" option with ALSA
outputs, because "always_on" pauses the output.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1623
2024-07-29 16:31:09 +02:00
Max Kellermann
9c8f4aaf99
lib/alsa/meson.build: require libasound 1.2 or later
...
This allows us to drop the 1.1.4 snd_pcm_drain() bug workaround (added
by commit f85d4d28d1
).
2024-07-29 15:42:46 +02:00
Max Kellermann
3bef4f839a
output/alsa: fix coding style
2024-07-29 15:40:52 +02:00
Max Kellermann
1dfda3a5e1
output/alsa: reorder fields to improve packing
2024-07-29 15:38:02 +02:00
Max Kellermann
9d9c4045e2
output/alsa: move redundant code to UnregisterSockets()
2024-07-29 15:28:58 +02:00
Max Kellermann
d466deedad
output/alsa: fix lambda indent
2024-07-29 15:28:27 +02:00
Max Kellermann
bbbbf5f4bd
event/MultiSocketMonitor: reschedule epoll/EPERM workaround forever
...
Fixes a regression by commit 3558317dc9
which caused the ALSA null
plugin to cease to work because the workaround timer was never rescheduled.
2024-07-25 20:16:53 +02:00
Max Kellermann
f030b22bec
player/thread: wait for the first chunk in CheckCrossFade()
...
This fixes MixRamp problems which occur because CheckCrossFade() is
called before the decoder has parsed MixRamp tags after
DecoderClient::Ready().
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2084
2024-07-25 20:07:52 +02:00
Max Kellermann
a693052f2c
Merge branch 'feat/showmovement' of https://github.com/mayanez/MPD
2024-07-25 14:01:19 +02:00
Miguel A. Arroyo
e3809bd4f0
feat: Add ShowMovement Tag
...
This commit adds the `SHOWMOVEMENT` [tag](https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html#show-work-movement-4 ). Historically, this tag originates from iTunes' MP4, but has since become widely used. It is created by Picard's Classical music [plugins](https://picard-docs.musicbrainz.org/en/variables/variables_classical.html ) (such as "Classical Extras" or "Work & Movement").
The reasoning behind this tag is to display Work & Movement titles without redundant information and in a more uniform way. Moreover, it additionally serves as an implicit marker denoting classical music tracks (genre tags aren't sufficient).
If the client so chooses to support this tag, they can display `Work` and `Movement` instead of the track title allowing for cleaner display. Other clients can continue to display the `%title%` as before without any fuss.
2024-07-23 21:09:31 -07:00
Max Kellermann
41cc695848
Instance: fix io/rtio thread mixup
...
Fixes regression by commit 43d633f560
2024-07-23 15:12:30 +02:00
Max Kellermann
3558317dc9
event/MultiSocketMonitor: remove force-refresh on every iteration
...
libasound guarantees that the file descriptors never change for a
"prepared" PCM device, thus we can omit this defensive kludge.
2024-07-23 15:08:55 +02:00
Max Kellermann
18cb34825d
input/alsa: use libfmt instead of std::string concatenation
2024-07-23 15:04:49 +02:00
Max Kellermann
4c4a3c8664
event/TimerList: use FineTimerEvent::GetDue()
...
Avoid accessing the private field from an inner class of the friend
class, because some compilers apparently don't like it (Apple clang).
2024-07-23 13:38:05 +02:00
Max Kellermann
d24e7763f6
net/AddressInfo: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:05:19 +02:00
Max Kellermann
49ad4e9f3c
io/FileDescriptor: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:05:02 +02:00
Max Kellermann
ea96b321dc
net/SocketAdddress: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:04:48 +02:00
Max Kellermann
bc758cece0
util/StringPointer: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:04:37 +02:00
Max Kellermann
0e4885c1fa
util/IterableSplitString: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:04:30 +02:00
Max Kellermann
9944c97203
util/AllocatedString: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:04:20 +02:00
Max Kellermann
58a5550439
util/AllocatedArray: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:04:10 +02:00
Max Kellermann
8e42467bd2
decoder/mpg123: relax mpg123_length() check in Scan()
...
Do not fail the Scan() function completely if libmpg123 cannot
determine the duration.
2024-07-12 16:11:08 +02:00
Max Kellermann
e00e7802c8
decoder/mpg123: report unknown duration if mpg123_length()<0
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2058
2024-07-12 16:09:35 +02:00
Max Kellermann
55d0bbade2
decoder/mpg123: move code to GetDuration()
2024-07-12 16:08:11 +02:00
Max Kellermann
de9f0dc910
playlist/Plugin: convert _init() and _finish() to methods
2024-07-12 16:00:42 +02:00
Max Kellermann
cf5970a6e1
output/Registry: replace output_plugins_for_each() with a container class
2024-07-12 15:55:01 +02:00
Max Kellermann
29747a213f
playlist/Registry: replace playlist_plugins_for_each() with a container class
2024-07-12 15:52:05 +02:00
Max Kellermann
c64b4838dc
encoder/List: replace encoder_plugins_for_each() with a container class
2024-07-12 14:59:18 +02:00
Max Kellermann
040c4a8560
archive/ArchiveList: replace archive_plugins_for_each() with a container class
2024-07-12 09:58:19 +02:00
Max Kellermann
90dfa437e0
lib/alsa/NonBlock: use a persistent pollfd array
...
This implements the semantic API change introduced by commit
cd04da2bcf
2024-07-11 21:47:15 +02:00
Max Kellermann
4486b2eded
lib/alsa/NonBlock: add common base class
2024-07-11 21:38:45 +02:00
Max Kellermann
3db8a4f41b
lib/alsa/NonBlock: embed in "namespace Alsa"
2024-07-11 21:33:03 +02:00
Max Kellermann
9704cf3dcb
lib/alsa/NonBlock: fix lambda indent
2024-07-11 21:12:18 +02:00
Max Kellermann
9aa6b03ba8
event/MultiSocketMonitor: pass std::span to ReplaceSocketList()
2024-07-11 21:09:27 +02:00
Max Kellermann
45f92f0ef0
event/MultiSocketMonitor: fix lambda indent
2024-07-11 21:06:33 +02:00
Max Kellermann
23a3278b4e
event/MultiSocketMonitor: make ctor protected and explicit
2024-07-11 21:05:11 +02:00
Max Kellermann
951f916440
mixer/alsa: add `noexcept`
2024-07-11 21:03:41 +02:00
Max Kellermann
fb87e19bae
input/Registry: replace the input_plugins_for_each macros with a container class
2024-07-11 20:52:44 +02:00
Max Kellermann
49edb16de0
decoder/Thread: add enum DecodeResult, log better diagnostics
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2076
2024-07-11 16:47:43 +02:00
Max Kellermann
8671896e4c
decoder/Thread: throw StopDecoder if command==STOP in decoder_run_stream()
...
Everybody else is doing that, so let's do the same and not pretend
playback was successful.
2024-07-11 16:28:57 +02:00
Max Kellermann
c2470ebd9c
decoder/List: eliminate decoder_plugins_try()
...
Migrate callers to GetEnabledDecoderPlugins(). By not using lambdas,
we can switch to enums as return value for better diagnostics.
2024-07-11 16:15:38 +02:00
Max Kellermann
a27fb71c4c
decoder/List: add iterable container for decoder plugins
2024-07-11 15:30:31 +02:00
Max Kellermann
f6a687dc2b
util/FilteredContainer: new class
2024-07-11 15:30:30 +02:00
Max Kellermann
9210705598
util/TerminatedArray: new class
2024-07-11 15:30:30 +02:00
Max Kellermann
3d995bba5f
util/DereferenceIterator: add class DereferenceContainerAdapter
2024-07-11 14:55:35 +02:00
Max Kellermann
c77f5095d6
util/DereferenceIterator: allow comparing with sentinel end iterators
2024-07-11 14:55:35 +02:00
Max Kellermann
3701378449
util/DereferenceIterator: fix operator- and operator+ return types
2024-07-11 14:29:10 +02:00
Max Kellermann
cb9f3c1a5b
util/DereferenceIterator: optimize and simplify increment/decrement operators
2024-07-11 14:27:23 +02:00
Max Kellermann
fe66cde616
util/DereferenceIterator: add `constexpr`
2024-07-10 20:13:24 +02:00
Max Kellermann
0cc9ef0aee
util/DereferenceIterator: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-10 20:13:19 +02:00
Max Kellermann
68a424d9e1
util/DereferenceIterator: add missing `const`
2024-07-10 20:11:55 +02:00
Max Kellermann
13576b8a2e
lib/curl/Easy: use pass std::chrono::duration to SetTimeout()
2024-07-10 16:58:16 +02:00
Max Kellermann
7c21d57953
config/Block: add method GetDuration()
2024-07-10 16:58:16 +02:00
Max Kellermann
1e9e182a32
config/Data: merge the two duration parser methods, pass minimum value
2024-07-10 16:49:18 +02:00
Max Kellermann
3733bc57b7
config/{Block,Data,Param}: add concept checks to With()
2024-07-10 16:38:08 +02:00
Max Kellermann
a196d1ddf2
decoder/Thread, ...: quote log strings
2024-07-10 15:40:04 +02:00
Max Kellermann
8861279add
Merge branch 'explicit_case_sensitivity' of https://github.com/geneticdrift/MPD
2024-07-10 15:33:47 +02:00
gd
d2382e8de9
ParseStringFilter: when failed to parse the operator, indicate the unknown operator in the error message
2024-07-09 17:25:45 +03:00
gd
c39d8e5813
Added explicitly case sensitive/insensitive filter operators.
...
The default case sensitivity is hard coded for each command.
These operators allow to override the this default case sensitivity.
2024-07-09 17:25:45 +03:00
Max Kellermann
bd59c889f3
util/StringVerify: new library
2024-07-08 16:02:40 +02:00
Max Kellermann
553c2e9e2b
output/Command: trigger IDLE_OUTPUT only for the current partition
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1622
2024-07-08 15:54:14 +02:00
Max Kellermann
3229da48e3
tag/Mask: pass 64 bit integer to constructor, prevent truncation
...
Commit f49d4ef4ad
changed the bit mask size to 64 bit, but I forgot
to change the constructor as well.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2057
2024-07-08 15:34:27 +02:00
Max Kellermann
e380ae90eb
Log: add missing include for std::back_inserter()
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2071
2024-07-07 10:10:27 +02:00
Max Kellermann
8790f2469c
lib/fmt/SocketAddressFormatter: switch to the new net/FormatAddress library
2024-07-05 18:39:10 +02:00
Max Kellermann
d3ef4ab234
net/FormatAddress: new library to replace ToString.cxx
...
This library writes to a caller-specified buffer instead of
allocating a std::string which can be faster by avoiding heap
allocations.
2024-07-05 18:38:17 +02:00
Max Kellermann
28c030c0f0
lib/fmt/SocketAddressFormatter: add `const` for fmt 11 support
...
See d70729215f
2024-07-05 18:21:38 +02:00
Max Kellermann
175103e8d4
lib/fmt/ExceptionFormatter: un-inline to reduce header dependencies
2024-07-05 18:20:31 +02:00
Max Kellermann
3f638eeed6
lib/fmt/SocketAddressFormatter: un-inline to reduce header dependencies
2024-07-05 18:20:31 +02:00
Max Kellermann
df2be0a75f
Log: add missing include for GetFullMessage()
2024-07-05 18:20:31 +02:00
Max Kellermann
044280c538
meson.build: require Meson 1.0
...
Debian Bookworm (the current stable) has 1.0.1 and Ubuntu LTS 24.04
has 1.3.2. It's acceptable to require at least version 1.0 now.
2024-07-05 17:23:52 +02:00
Max Kellermann
3648475f87
Merge branch 'libfmt' of https://github.com/heitbaum/MPD
2024-07-05 16:47:04 +02:00
Rudi Heitbaum
1402869715
lib/fmt: support build with libfmt-11.0.0
...
Upstream libfmt commit fmtlib/fmt@d707292
now requires the format function to be const.
Adjust the function prototype so it is const and can compile.
Signed-off-by: Rudi Heitbaum <rudi@heitbaum.com>
2024-07-05 14:33:07 +00:00
Max Kellermann
ffa917e9b5
Merge branch 'stickernames_cmd' of https://github.com/jcorporation/MPD
2024-07-05 16:26:58 +02:00
Max Kellermann
ac1265b9cc
output/alsa: set up the ALSA channel map
...
This is necessary for proper multi-channel support because many ALSA
drivers do not use the channel maps from surround*.conf.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2063
2024-06-27 21:52:38 +02:00
Max Kellermann
2ce8310448
time/Convert: forward-declare struct tm
2024-06-25 20:33:13 +02:00
Max Kellermann
a739eefb01
lib/zlib/Error: derive from std::system_error
2024-06-25 20:32:33 +02:00
Max Kellermann
432bfa15f4
net/SocketError: move check to IsSocketError()
2024-06-25 20:29:27 +02:00
Max Kellermann
7b938b4d14
util/Exception: sanitize message strings
...
This should prevent leaking unsanitized strings from libraries.
2024-06-25 20:29:07 +02:00
Max Kellermann
abb23ba894
event/EpollEvents: add mapping for EPOLLPRI
2024-06-25 20:28:34 +02:00
Max Kellermann
381215fd73
*: use std::scoped_lock with implicit template parameter
2024-05-23 20:54:49 +02:00
Max Kellermann
4fc3230fe6
event/Loop: use std::scoped_lock with implicit template parameter
2024-05-23 20:44:12 +02:00
Max Kellermann
64bdaa46fb
lib/curl/Init: use std::scoped_lock with implicit template parameter
2024-05-23 20:44:12 +02:00
Max Kellermann
6e16eaebba
lib/fmt/SystemError: include <array> only on Windows
2024-05-23 20:31:56 +02:00
Max Kellermann
a67f7f88e4
util/MimeType: add missing include
2024-05-23 20:31:10 +02:00
Max Kellermann
ec8f467585
util/Intrusive*: add IWYU pragmas
2024-05-23 20:30:50 +02:00
Max Kellermann
9e3a66d5bf
util/djb_hash: make inline and constexpr
...
Allows calculating hashes at compile time.
2024-05-23 20:30:17 +02:00
Max Kellermann
c7409d1e04
util/AllocatedString: add missing include
2024-05-23 20:22:44 +02:00
Max Kellermann
b64d01677b
storage/nfs: optimize OpenFile()
2024-05-17 13:39:42 +02:00
Max Kellermann
9e8128ecb5
lib/nfs/FileReader: convert `path` to std::string
2024-05-17 12:54:08 +02:00
Max Kellermann
131dcce0a1
playlist/Mapper: use Storage::OpenFile()
2024-05-17 12:54:08 +02:00
Max Kellermann
6dfdd8c1c2
db/update/Walk: use Storage::OpenFile()
2024-05-17 12:54:08 +02:00
Max Kellermann
1b6c279850
db/update/Paylist: use Storage::OpenFile()
2024-05-17 12:54:08 +02:00
Max Kellermann
81c778a529
SongUpdate: use Storage::OpenFile()
2024-05-17 12:54:08 +02:00
Max Kellermann
f578a1cb2b
storage/Interface: add virtual method OpenFile()
...
This should replace most InputStream::Open() calls because it is a
chance to reuse existing resources (e.g. the NFS connection). No such
optimization is implemented, currently (and the method is not yet used
by anybody).
2024-05-17 12:54:08 +02:00
Max Kellermann
2576e66a55
input/nfs: cancel the pending read operation on seek
2024-05-17 12:54:08 +02:00
Max Kellermann
58e3b830e9
lib/nfs/FileReader: clear the read_buffer in CancelRead()
...
Fixes assertion failure with libnfs 6.
2024-05-17 12:53:35 +02:00
Max Kellermann
1d35031024
lib/nfs/Connection: merge CancelAndClose() into Cancel()
2024-05-17 12:53:30 +02:00
Max Kellermann
96b61755da
lib/nfs/FileReader: fix doc typo
2024-05-15 21:31:30 +02:00
Max Kellermann
9f174c56ce
playlist/Mapper: postpone the stored playlist error
...
Fixes another regression by commit
f53cd44c7a
- an exception thrown by
playlist_open_in_playlist_dir() would skip over
playlist_open_in_storage().
2024-05-15 21:08:46 +02:00
Max Kellermann
c8be9662bb
playlist/Print: add missing exception handler
...
This went missing in commit f53cd44c7a
2024-05-15 20:53:55 +02:00
Max Kellermann
f53cd44c7a
playlist/{Stream,Mapper,Any}: propagate exceptions, do not catch&log them
...
Let the caller handle all the exceptions.
2024-05-15 20:19:57 +02:00
Max Kellermann
9303764a83
playlist/Print: throw PlaylistError::NoSuchList instead of returning false
2024-05-15 20:19:09 +02:00
Max Kellermann
a5456a89dc
playlist/Length: throw PlaylistError::NoSuchList instead of returning false
2024-05-15 20:15:16 +02:00
Max Kellermann
c974fc664c
playlist/Plugin: add `noexcept`
2024-05-15 20:02:12 +02:00
Max Kellermann
eceead671e
playlist/Stream: add API documentation
2024-05-15 19:59:57 +02:00
Max Kellermann
4e7b554605
TagAny, playlist/Mapper: use `if` with initializer
2024-05-15 15:02:59 +02:00
Max Kellermann
a701da6386
db/update/InotifyUpdate: use OpenLocalInputStream()
2024-05-15 14:48:32 +02:00
Max Kellermann
1f47fe47c7
input/Open: move code to WaitReady()
2024-05-15 14:39:40 +02:00
Max Kellermann
31e583e9f8
lib/nfs: initial support for libnfs API 2
...
Commit
5e8f7ce273
introduced the libnfs API version 2 which may eventually become libnfs
version 6.
This version detection depends on my pull request
https://github.com/sahlberg/libnfs/pull/468
2024-05-15 06:01:42 +02:00
Max Kellermann
0ac24e5a24
lib/nfs/FileReader: move code to ReadCallback()
2024-05-15 06:00:37 +02:00
Max Kellermann
98f53b6d3d
lib/nfs/Connection: add DisposablePointer parameter to CancelAndClose()
...
Just in case somebody needs to free a buffer after the NFS
cancellation has completed.
2024-05-15 06:00:35 +02:00
Max Kellermann
f5092cb73d
util/DisposablePointer: new class
2024-05-15 05:58:23 +02:00
Max Kellermann
48d3bd1cca
lib/nfs/Connection: add API documentation
2024-05-14 19:57:50 +02:00
Max Kellermann
5cffd4f673
lib/nfs/Connection: remove EnableCloseOnExec() call
...
SOCK_CLOEXEC has been added to libnfs version 2, and since we require
at least version 4, we can safely remove this call.
2024-05-14 19:51:52 +02:00
Max Kellermann
416f65fe01
util/RoundPowerOfTwo: new library
2024-05-13 20:25:57 +02:00
Max Kellermann
64c291ba78
lib/nfs/Connection: suppress bogus clang warning
...
We do need to capture "this" because we use "this->active_leases", but
clang 18 is too dumb to understand this.
2024-05-13 18:30:05 +02:00
Max Kellermann
dcde2a0bae
lib/nfs/Connection: fix -Wunused-lambda-capture
2024-05-13 18:27:38 +02:00
Max Kellermann
f0ac0c19b7
lib/nfs/Connection: remove obsolete debug field "in_destroy"
...
This is obsolete because PrepareDestroyContext() no longer calls
nfs_destroy_context().
2024-05-13 16:53:18 +02:00
Max Kellermann
ba1b8533a5
lib/nfs/Connection: fix assertion failure on mount timeout
...
When nfs_destroy_context() is called while nfs_mount_async() is in
progress, libnfs invokes MountCallback(-EINTR) (but only if a NFS RPC
call is in progress; if the TCP connect is in progress, that callback
is not invoked).
If the mount operation had timed out, OnMountTimeout() set
mount_state=FINISHED, which triggered an assertion failure in
MountCallback(); this commit adds a check on whether the mount has
timed out and ignores the MountCallback.
2024-05-13 16:51:44 +02:00
Max Kellermann
84e8927b1b
lib/nfs/FileReader: remove obsolete stat64 cast
...
Obsoleted (and broken) by commit 9947d3e67f
2024-05-13 12:33:03 +02:00
Max Kellermann
556300d59a
input/InputStream: add [[nodiscard]]
2024-05-13 12:29:16 +02:00
Max Kellermann
34f7b38f39
input/InputStream: pass std::span<std::byte> to Read()
2024-05-13 12:28:40 +02:00
Max Kellermann
f28d10d934
decoder/dsdiff: convert pointers to references
2024-05-13 11:34:05 +02:00
Max Kellermann
6d5dab38dd
input/async: pass std::string_view to constructor
2024-05-13 10:18:18 +02:00
jcorporation
f8271fec12
command_available return stickernames only if stickerdb is enabled
2024-05-12 21:23:29 +02:00
Max Kellermann
4800f1d8f2
storage/Interface: add [[nodiscard]]
2024-05-10 19:08:57 +02:00
Max Kellermann
227ab998bc
lib/nfs/Connection: pass status and data to the NfsClientError ctor
...
This way, we avoid calling the FormatNfsClientError() which crashes
when nfs_get_error() returns nullptr; that can happen on RPC errors:
then, libnfs's check_nfs4_error() doesn't call nfs_set_error().
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2040
2024-05-10 16:36:29 +02:00
Max Kellermann
9384bff6f9
lib/nfs/Manager: add method MakeConnection()
...
This uses the libnfs function nfs_parse_url_dir() which means MPD
gains support for the libnfs arguments like "version".
Closes https://github.com/MusicPlayerDaemon/MPD/issues/2039
2024-05-07 21:22:43 +02:00
Max Kellermann
9947d3e67f
lib/nfs/Connection: use nfs_fstat64_async()
...
This is 64-bit-safe and anyway, nfs_fstat_async() doesn't work with
NFSv4.
2024-05-07 21:22:40 +02:00
Max Kellermann
67f01fbdb6
db/plugins/simple/Song: pass StorageFileInfo to UpdateFile()
...
Eliminates a redundant GetInfo() call.
2024-05-07 21:22:39 +02:00
Max Kellermann
164b5b0cf3
db/Song, SongUpdate: remove unnecessary c_str() calls
...
Just case implicitly to std::string_view, which is both simpler and
safer.
2024-05-07 21:13:38 +02:00
Max Kellermann
56bb1dddd7
lib/nfs/Connection: simplify error handling in OnSocketReady()
2024-05-06 18:35:58 +02:00
Max Kellermann
e6b1cf540b
lib/nfs/Connection: remove unnecessary initializers from MountInternal()
2024-05-06 18:24:36 +02:00
Max Kellermann
d61c83ace8
lib/nfs/Connection: create the nfs_context in the constructor
...
Another lifetime simplification.
2024-05-06 18:22:23 +02:00
Max Kellermann
4139024b3d
lib/nfs/Connection: return from OnSocketReady() after error
2024-05-06 18:20:42 +02:00
Max Kellermann
48fe8666c9
lib/nfs/Connection: call nfs_destroy_context() only in the destructor
...
This simplifies the lifetime of the nfs_context object.
2024-05-06 18:16:11 +02:00
Max Kellermann
90a44a0c07
lib/nfs/Connection: replace flag "mount_finished" with enum
2024-05-06 18:16:11 +02:00
Max Kellermann
e013c19223
storage/nfs: remove unused method EnsureConnected()
2024-05-06 18:16:11 +02:00
Max Kellermann
4684d05fa6
player/Thread: reset the `decoder_starting` flag in StopDecoder()
...
Fixes crash bug (assertion failure) if a new "play" command is handled
while the player thread waits for decoder startup.
2024-05-06 17:38:58 +02:00
Max Kellermann
1c3a1c842d
lib/nfs/Lease: use InstrusiveList instead of std::list
2024-05-06 17:22:36 +02:00
Max Kellermann
f5127686fe
lib/nfs/Connection: pass std::exception_ptr by value
2024-05-06 17:03:21 +02:00
Max Kellermann
2b0275a1c8
lib/nfs/Connection: pass `server` and `export_name` as std::string_view
2024-05-06 17:01:15 +02:00
Max Kellermann
028693c380
lib/nfs/Manager: forward-declare class ManagedConnection
2024-05-06 16:58:41 +02:00
Max Kellermann
63920be17e
lib/nfs/Connection: make `server` and `export_name` const
2024-05-06 16:55:57 +02:00