win32/HResult: un-inline HRESULTToString() to reduce header dependencies
This commit is contained in:
parent
c64a3b5dbb
commit
a8f05a7efc
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue