diff --git a/src/common/logging/vst3.cpp b/src/common/logging/vst3.cpp index 299bf473..4c51ce5c 100644 --- a/src/common/logging/vst3.cpp +++ b/src/common/logging/vst3.cpp @@ -63,9 +63,7 @@ void Vst3Logger::log_response( << ">"; }, [&](const UniversalTResult& code) { - // TODO: Add a `UniversalTResult::string()` for - // the human readable representation - message << code.native(); + message << code.string(); }}, result); }); diff --git a/src/common/serialization/vst3/base.cpp b/src/common/serialization/vst3/base.cpp index 218ce166..24ef9618 100644 --- a/src/common/serialization/vst3/base.cpp +++ b/src/common/serialization/vst3/base.cpp @@ -55,6 +55,39 @@ tresult UniversalTResult::native() const { } } +std::string UniversalTResult::string() const { + static_assert(Steinberg::kResultOk == Steinberg::kResultTrue); + switch (universal_result) { + case Value::kNoInterface: + return "kNoInterface"; + break; + case Value::kResultOk: + return "kResultOk"; + break; + case Value::kResultFalse: + return "kResultFalse"; + break; + case Value::kInvalidArgument: + return "kInvalidArgument"; + break; + case Value::kNotImplemented: + return "kNotImplemented"; + break; + case Value::kInternalError: + return "kInternalError"; + break; + case Value::kNotInitialized: + return "kNotInitialized"; + break; + case Value::kOutOfMemory: + return "kOutOfMemory"; + break; + default: + return ""; + break; + } +} + UniversalTResult::Value UniversalTResult::to_universal_result( tresult native_result) { static_assert(Steinberg::kResultOk == Steinberg::kResultTrue); diff --git a/src/common/serialization/vst3/base.h b/src/common/serialization/vst3/base.h index 4221da61..f1e4a5fc 100644 --- a/src/common/serialization/vst3/base.h +++ b/src/common/serialization/vst3/base.h @@ -17,6 +17,7 @@ #pragma once #include +#include #include #include @@ -68,6 +69,11 @@ class UniversalTResult { */ tresult native() const; + /** + * Get the original name for the result, e.g. `kResultOk`. + */ + std::string string() const; + template void serialize(S& s) { s.value4b(universal_result);