1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 06:17:35 +00:00

LibAudio: Add Error conversion constructor for LoaderError

This will become necessary shortly when we quickly want to promote an
AK::Error to an Audio::LoaderError.
This commit is contained in:
kleines Filmröllchen 2022-01-14 01:14:23 +01:00 committed by Ali Mohammad Pur
parent d786142eca
commit 9702f2010f

View file

@ -6,7 +6,9 @@
#pragma once #pragma once
#include <AK/Error.h>
#include <AK/FlyString.h> #include <AK/FlyString.h>
#include <errno.h>
namespace Audio { namespace Audio {
@ -47,6 +49,18 @@ struct LoaderError {
LoaderError(LoaderError&) = default; LoaderError(LoaderError&) = default;
LoaderError(LoaderError&&) = default; LoaderError(LoaderError&&) = default;
LoaderError(Error&& error)
{
if (error.is_errno()) {
auto code = error.code();
description = String::formatted("{} ({})", strerror(code), code);
if (code == EBADF || code == EBUSY || code == EEXIST || code == EIO || code == EISDIR || code == ENOENT || code == ENOMEM || code == EPIPE)
category = Category::IO;
} else {
description = error.string_literal();
}
}
}; };
} }