input/InputStream: pass std::span<std::byte> to Read()

This commit is contained in:
Max Kellermann
2024-05-13 10:47:57 +02:00
parent f28d10d934
commit 34f7b38f39
66 changed files with 248 additions and 274 deletions

View File

@@ -197,7 +197,7 @@ read_stream_art(Response &r, const std::string_view art_directory,
if (buffer_size > 0) {
std::unique_lock<Mutex> lock(is->mutex);
is->Seek(lock, offset);
read_size = is->Read(lock, buffer.get(), buffer_size);
read_size = is->Read(lock, {buffer.get(), buffer_size});
}
r.Fmt(FMT_STRING("size: {}\n"), art_file_size);

View File

@@ -70,7 +70,7 @@ private:
/* virtual methods from class DecoderClient */
InputStreamPtr OpenUri(const char *uri) override;
size_t Read(InputStream &is,
void *buffer, size_t length) noexcept override;
std::span<std::byte> dest) noexcept override;
/* virtual methods from class InputStreamHandler */
void OnInputStreamReady() noexcept override {
@@ -274,12 +274,12 @@ GetChromaprintCommand::OpenUri(const char *uri2)
size_t
GetChromaprintCommand::Read(InputStream &is,
void *buffer, size_t length) noexcept
std::span<std::byte> dest) noexcept
{
/* overriding ChromaprintDecoderClient's implementation to
make it cancellable */
if (length == 0)
if (dest.empty())
return 0;
std::unique_lock<Mutex> lock(mutex);
@@ -295,7 +295,7 @@ GetChromaprintCommand::Read(InputStream &is,
}
try {
return is.Read(lock, buffer, length);
return is.Read(lock, dest);
} catch (...) {
ChromaprintDecoderClient::error = std::current_exception();
return 0;