diff --git a/src/SuperColliderEngine.cpp b/src/SuperColliderEngine.cpp index c6ba1eb..3324b7d 100644 --- a/src/SuperColliderEngine.cpp +++ b/src/SuperColliderEngine.cpp @@ -35,7 +35,7 @@ public: ~SC_VcvPrototypeClient(); // These will invoke the interpreter - void interpret(const std::string& text) noexcept; + void interpret(const char *) noexcept; void evaluateProcessBlock(ProcessBlock* block) noexcept; int getFrameDivider() noexcept { return 1; } // getResultAsInt("^~vcv_frameDivider"); } int getBufferSize() noexcept { return 256; } // getResultAsInt("^~vcv_bufferSize"); } @@ -64,7 +64,7 @@ public: if (!_clientThread.joinable()) { _clientThread = std::thread([this, script]() { _client.reset(new SC_VcvPrototypeClient(this)); - _client->interpret(script); + _client->interpret(script.c_str()); setFrameDivider(_client->getFrameDivider()); setBufferSize(_client->getBufferSize()); finishClientLoading(); @@ -130,8 +130,8 @@ SC_VcvPrototypeClient::~SC_VcvPrototypeClient() { shutdownRuntime(); } -void SC_VcvPrototypeClient::interpret(const std::string& text) noexcept { - setCmdLine(text.c_str()); +void SC_VcvPrototypeClient::interpret(const char* text) noexcept { + setCmdLine(text); interpretCmdLine(); } @@ -149,7 +149,8 @@ void SC_VcvPrototypeClient::evaluateProcessBlock(ProcessBlock* block) noexcept { // TIMING TODO test code auto start = std::chrono::high_resolution_clock::now(); - interpret(builder.str()); + auto&& string = builder.str(); + interpret(string.c_str()); auto end = std::chrono::high_resolution_clock::now(); auto ticks = (end - start).count(); if (gmax < ticks)