diff --git a/src/SuperColliderEngine.cpp b/src/SuperColliderEngine.cpp index 58c9627..f417007 100644 --- a/src/SuperColliderEngine.cpp +++ b/src/SuperColliderEngine.cpp @@ -62,6 +62,11 @@ private: // converts top of stack back to ProcessBlock data void readScProcessBlockResult(ProcessBlock* block) noexcept; + void fail(const std::string& msg) noexcept { + _engine->display(msg); + _ok = false; + } + SuperColliderEngine* _engine; bool _ok = true; }; @@ -108,9 +113,6 @@ private: std::atomic_bool _clientRunning{false}; // set to true when client is ready to process data }; -// TODO -#define FAIL(_msg_) do { _engine->display(_msg_); _ok = false; } while (0) - SC_VcvPrototypeClient::SC_VcvPrototypeClient(SuperColliderEngine* engine) : SC_LanguageClient("SC VCV-Prototype client") , _engine(engine) @@ -121,13 +123,13 @@ SC_VcvPrototypeClient::SC_VcvPrototypeClient(SuperColliderEngine* engine) Path sc_yaml_path = rack::asset::plugin(pluginInstance, "dep/supercollider/sclang_vcv_config.yml"); if (!SC_LanguageConfig::defaultLibraryConfig(/* isStandalone */ true)) - FAIL("Failed setting default library config"); + fail("Failed setting default library config"); if (!gLanguageConfig->addIncludedDirectory(sc_lib_root)) - FAIL("Failed to add main include directory"); + fail("Failed to add main include directory"); if (!gLanguageConfig->addIncludedDirectory(sc_ext_root)) - FAIL("Failed to add extensions include directory"); + fail("Failed to add extensions include directory"); if (!SC_LanguageConfig::writeLibraryConfigYAML(sc_yaml_path)) - FAIL("Failed to write library config YAML file"); + fail("Failed to write library config YAML file"); SC_LanguageConfig::setConfigPath(sc_yaml_path); @@ -135,9 +137,8 @@ SC_VcvPrototypeClient::SC_VcvPrototypeClient(SuperColliderEngine* engine) initRuntime(); compileLibrary(/* isStandalone */ true); - // TODO better logging here? if (!isLibraryCompiled()) - FAIL("Error while compiling class library"); + fail("Error while compiling class library"); } SC_VcvPrototypeClient::~SC_VcvPrototypeClient() { @@ -232,7 +233,7 @@ bool SC_VcvPrototypeClient::isVcvPrototypeProcessBlock(const PyrSlot* slot) cons void SC_VcvPrototypeClient::readScProcessBlockResult(ProcessBlock* block) noexcept { auto* resultSlot = &scGlobals()->result; if (!isVcvPrototypeProcessBlock(resultSlot)) { - FAIL("Result of ~vcv_process must be an instance of VcvPrototypeProcessBlock"); + fail("Result of ~vcv_process must be an instance of VcvPrototypeProcessBlock"); return; } @@ -338,12 +339,11 @@ int SC_VcvPrototypeClient::getResultAsInt(const char* text) noexcept { if (intResult > 0) { return intResult; } else { - // TODO better formatting - FAIL(std::string("Result of '") + text + "' should be > 0"); + fail(std::string("Result of '") + text + "' should be > 0"); return -1; } } else { - FAIL(std::string("Result of '") + text + "' should be Integer"); + fail(std::string("Result of '") + text + "' should be Integer"); return -1; } }