#ifndef UTILS_SOFA_SUPPORT_H #define UTILS_SOFA_SUPPORT_H #include #include #include #include "mysofa.h" struct MySofaDeleter { void operator()(MYSOFA_HRTF *sofa) { mysofa_free(sofa); } }; using MySofaHrtfPtr = std::unique_ptr; // Per-field measurement info. struct SofaField { using uint = unsigned int; double mDistance{0.0}; uint mEvCount{0u}; uint mEvStart{0u}; std::vector mAzCounts; }; const char *SofaErrorStr(int err); std::vector GetCompatibleLayout(const size_t m, const float *xyzs); #endif /* UTILS_SOFA_SUPPORT_H */