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 <cstdio>
|
||||||
#include <memory>
|
#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
|
std::string
|
||||||
HResultCategory::message(int Errcode) const
|
HResultCategory::message(int Errcode) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,42 +25,11 @@
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
#include <system_error>
|
#include <system_error>
|
||||||
|
|
||||||
#include <audiopolicy.h>
|
#include <windef.h>
|
||||||
|
|
||||||
constexpr std::string_view HRESULTToString(HRESULT result) {
|
gcc_const
|
||||||
using namespace std::literals;
|
std::string_view
|
||||||
switch (result) {
|
HRESULTToString(HRESULT result) noexcept;
|
||||||
#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();
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline const std::error_category &hresult_category() noexcept;
|
static inline const std::error_category &hresult_category() noexcept;
|
||||||
class HResultCategory : public std::error_category {
|
class HResultCategory : public std::error_category {
|
||||||
|
|
Loading…
Reference in New Issue