win32/HResult: un-inline HRESULTToString() to reduce header dependencies

This commit is contained in:
Max Kellermann 2021-05-19 17:43:43 +02:00
parent c64a3b5dbb
commit a8f05a7efc
2 changed files with 43 additions and 35 deletions

View File

@ -25,6 +25,45 @@
#include <cstdio>
#include <memory>
#include <audiopolicy.h>
std::string_view
HRESULTToString(HRESULT result) noexcept
{
using namespace std::literals;
switch (result) {
#define C(x) \
case x: \
return #x##sv
C(AUDCLNT_E_ALREADY_INITIALIZED);
C(AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL);
C(AUDCLNT_E_BUFFER_ERROR);
C(AUDCLNT_E_BUFFER_OPERATION_PENDING);
C(AUDCLNT_E_BUFFER_SIZE_ERROR);
C(AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED);
C(AUDCLNT_E_BUFFER_TOO_LARGE);
C(AUDCLNT_E_CPUUSAGE_EXCEEDED);
C(AUDCLNT_E_DEVICE_INVALIDATED);
C(AUDCLNT_E_DEVICE_IN_USE);
C(AUDCLNT_E_ENDPOINT_CREATE_FAILED);
C(AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED);
C(AUDCLNT_E_INVALID_DEVICE_PERIOD);
C(AUDCLNT_E_OUT_OF_ORDER);
C(AUDCLNT_E_SERVICE_NOT_RUNNING);
C(AUDCLNT_E_UNSUPPORTED_FORMAT);
C(AUDCLNT_E_WRONG_ENDPOINT_TYPE);
C(AUDCLNT_E_NOT_INITIALIZED);
C(AUDCLNT_E_NOT_STOPPED);
C(CO_E_NOTINITIALIZED);
C(E_INVALIDARG);
C(E_OUTOFMEMORY);
C(E_POINTER);
C(NO_ERROR);
#undef C
}
return std::string_view();
}
std::string
HResultCategory::message(int Errcode) const
{

View File

@ -25,42 +25,11 @@
#include <string_view>
#include <system_error>
#include <audiopolicy.h>
#include <windef.h>
constexpr std::string_view HRESULTToString(HRESULT result) {
using namespace std::literals;
switch (result) {
#define C(x) \
case x: \
return #x##sv
C(AUDCLNT_E_ALREADY_INITIALIZED);
C(AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL);
C(AUDCLNT_E_BUFFER_ERROR);
C(AUDCLNT_E_BUFFER_OPERATION_PENDING);
C(AUDCLNT_E_BUFFER_SIZE_ERROR);
C(AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED);
C(AUDCLNT_E_BUFFER_TOO_LARGE);
C(AUDCLNT_E_CPUUSAGE_EXCEEDED);
C(AUDCLNT_E_DEVICE_INVALIDATED);
C(AUDCLNT_E_DEVICE_IN_USE);
C(AUDCLNT_E_ENDPOINT_CREATE_FAILED);
C(AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED);
C(AUDCLNT_E_INVALID_DEVICE_PERIOD);
C(AUDCLNT_E_OUT_OF_ORDER);
C(AUDCLNT_E_SERVICE_NOT_RUNNING);
C(AUDCLNT_E_UNSUPPORTED_FORMAT);
C(AUDCLNT_E_WRONG_ENDPOINT_TYPE);
C(AUDCLNT_E_NOT_INITIALIZED);
C(AUDCLNT_E_NOT_STOPPED);
C(CO_E_NOTINITIALIZED);
C(E_INVALIDARG);
C(E_OUTOFMEMORY);
C(E_POINTER);
C(NO_ERROR);
#undef C
}
return std::string_view();
}
gcc_const
std::string_view
HRESULTToString(HRESULT result) noexcept;
static inline const std::error_category &hresult_category() noexcept;
class HResultCategory : public std::error_category {