| @@ -569,7 +569,7 @@ bool CarlaEngine::init(const char* const clientName) | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->bufEvents.out == nullptr, "Invalid engine internal data (err #5)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->bufEvents.out == nullptr, "Invalid engine internal data (err #5)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(clientName != nullptr && clientName[0] != '\0', "Invalid client name"); | CARLA_SAFE_ASSERT_RETURN_ERR(clientName != nullptr && clientName[0] != '\0', "Invalid client name"); | ||||
| carla_debug("CarlaEngine::init(\"%s\")", clientName); | carla_debug("CarlaEngine::init(\"%s\")", clientName); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| pData->aboutToClose = false; | pData->aboutToClose = false; | ||||
| pData->curPluginCount = 0; | pData->curPluginCount = 0; | ||||
| @@ -634,7 +634,7 @@ bool CarlaEngine::close() | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextPluginId == pData->maxPluginNumber, "Invalid engine internal data (err #8)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextPluginId == pData->maxPluginNumber, "Invalid engine internal data (err #8)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #9)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #9)"); | ||||
| carla_debug("CarlaEngine::close()"); | carla_debug("CarlaEngine::close()"); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| pData->aboutToClose = true; | pData->aboutToClose = true; | ||||
| @@ -685,7 +685,7 @@ void CarlaEngine::idle() | |||||
| CARLA_ASSERT(pData->nextAction.opcode == kEnginePostActionNull); // TESTING, remove later | CARLA_ASSERT(pData->nextAction.opcode == kEnginePostActionNull); // TESTING, remove later | ||||
| CARLA_ASSERT(pData->nextPluginId == pData->maxPluginNumber); // TESTING, remove later | CARLA_ASSERT(pData->nextPluginId == pData->maxPluginNumber); // TESTING, remove later | ||||
| CARLA_ASSERT(pData->plugins != nullptr); // this one too maybe | CARLA_ASSERT(pData->plugins != nullptr); // this one too maybe | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| for (unsigned int i=0; i < pData->curPluginCount; ++i) | for (unsigned int i=0; i < pData->curPluginCount; ++i) | ||||
| { | { | ||||
| @@ -713,7 +713,7 @@ bool CarlaEngine::addPlugin(const BinaryType btype, const PluginType ptype, cons | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(ptype != PLUGIN_NONE, "Invalid plugin params (err #2)"); | CARLA_SAFE_ASSERT_RETURN_ERR(ptype != PLUGIN_NONE, "Invalid plugin params (err #2)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR((filename != nullptr && filename[0] != '\0') || (label != nullptr && label[0] != '\0'), "Invalid plugin params (err #3)"); | CARLA_SAFE_ASSERT_RETURN_ERR((filename != nullptr && filename[0] != '\0') || (label != nullptr && label[0] != '\0'), "Invalid plugin params (err #3)"); | ||||
| carla_debug("CarlaEngine::addPlugin(%i:%s, %i:%s, \"%s\", \"%s\", \"%s\", " P_INT64 ", %p)", btype, BinaryType2Str(btype), ptype, PluginType2Str(ptype), filename, name, label, uniqueId, extra); | carla_debug("CarlaEngine::addPlugin(%i:%s, %i:%s, \"%s\", \"%s\", \"%s\", " P_INT64 ", %p)", btype, BinaryType2Str(btype), ptype, PluginType2Str(ptype), filename, name, label, uniqueId, extra); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| unsigned int id; | unsigned int id; | ||||
| CarlaPlugin* oldPlugin = nullptr; | CarlaPlugin* oldPlugin = nullptr; | ||||
| @@ -970,7 +970,7 @@ bool CarlaEngine::removePlugin(const unsigned int id) | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #16)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #16)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(id < pData->curPluginCount, "Invalid plugin Id (err #1)"); | CARLA_SAFE_ASSERT_RETURN_ERR(id < pData->curPluginCount, "Invalid plugin Id (err #1)"); | ||||
| carla_debug("CarlaEngine::removePlugin(%i)", id); | carla_debug("CarlaEngine::removePlugin(%i)", id); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| CarlaPlugin* const plugin(pData->plugins[id].plugin); | CarlaPlugin* const plugin(pData->plugins[id].plugin); | ||||
| @@ -1002,7 +1002,7 @@ bool CarlaEngine::removeAllPlugins() | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextPluginId == pData->maxPluginNumber, "Invalid engine internal data (err #19)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextPluginId == pData->maxPluginNumber, "Invalid engine internal data (err #19)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #20)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #20)"); | ||||
| carla_debug("CarlaEngine::removeAllPlugins()"); | carla_debug("CarlaEngine::removeAllPlugins()"); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| if (pData->curPluginCount == 0) | if (pData->curPluginCount == 0) | ||||
| return true; | return true; | ||||
| @@ -1042,7 +1042,7 @@ const char* CarlaEngine::renamePlugin(const unsigned int id, const char* const n | |||||
| CARLA_SAFE_ASSERT_RETURN_ERRN(id < pData->curPluginCount, "Invalid plugin Id (err #2)"); | CARLA_SAFE_ASSERT_RETURN_ERRN(id < pData->curPluginCount, "Invalid plugin Id (err #2)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERRN(newName != nullptr && newName[0] != '\0', "Invalid plugin name"); | CARLA_SAFE_ASSERT_RETURN_ERRN(newName != nullptr && newName[0] != '\0', "Invalid plugin name"); | ||||
| carla_debug("CarlaEngine::renamePlugin(%i, \"%s\")", id, newName); | carla_debug("CarlaEngine::renamePlugin(%i, \"%s\")", id, newName); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| CarlaPlugin* const plugin(pData->plugins[id].plugin); | CarlaPlugin* const plugin(pData->plugins[id].plugin); | ||||
| @@ -1066,7 +1066,7 @@ bool CarlaEngine::clonePlugin(const unsigned int id) | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #27)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #27)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(id < pData->curPluginCount, "Invalid plugin Id (err #3)"); | CARLA_SAFE_ASSERT_RETURN_ERR(id < pData->curPluginCount, "Invalid plugin Id (err #3)"); | ||||
| carla_debug("CarlaEngine::clonePlugin(%i)", id); | carla_debug("CarlaEngine::clonePlugin(%i)", id); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| CarlaPlugin* const plugin(pData->plugins[id].plugin); | CarlaPlugin* const plugin(pData->plugins[id].plugin); | ||||
| @@ -1097,7 +1097,7 @@ bool CarlaEngine::replacePlugin(const unsigned int id) | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #31)"); | CARLA_SAFE_ASSERT_RETURN_ERR(pData->nextAction.opcode == kEnginePostActionNull, "Invalid engine internal data (err #31)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(id < pData->curPluginCount, "Invalid plugin Id (err #4)"); | CARLA_SAFE_ASSERT_RETURN_ERR(id < pData->curPluginCount, "Invalid plugin Id (err #4)"); | ||||
| carla_debug("CarlaEngine::replacePlugin(%i)", id); | carla_debug("CarlaEngine::replacePlugin(%i)", id); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| CarlaPlugin* const plugin(pData->plugins[id].plugin); | CarlaPlugin* const plugin(pData->plugins[id].plugin); | ||||
| @@ -1118,7 +1118,7 @@ bool CarlaEngine::switchPlugins(const unsigned int idA, const unsigned int idB) | |||||
| CARLA_SAFE_ASSERT_RETURN_ERR(idA < pData->curPluginCount, "Invalid plugin Id (err #5)"); | CARLA_SAFE_ASSERT_RETURN_ERR(idA < pData->curPluginCount, "Invalid plugin Id (err #5)"); | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(idB < pData->curPluginCount, "Invalid plugin Id (err #6)"); | CARLA_SAFE_ASSERT_RETURN_ERR(idB < pData->curPluginCount, "Invalid plugin Id (err #6)"); | ||||
| carla_debug("CarlaEngine::switchPlugins(%i)", idA, idB); | carla_debug("CarlaEngine::switchPlugins(%i)", idA, idB); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| CarlaPlugin* const pluginA(pData->plugins[idA].plugin); | CarlaPlugin* const pluginA(pData->plugins[idA].plugin); | ||||
| CarlaPlugin* const pluginB(pData->plugins[idB].plugin); | CarlaPlugin* const pluginB(pData->plugins[idB].plugin); | ||||
| @@ -1251,7 +1251,7 @@ bool CarlaEngine::loadFile(const char* const filename) | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(filename != nullptr && filename[0] != '\0', "Invalid filename (err #1)"); | CARLA_SAFE_ASSERT_RETURN_ERR(filename != nullptr && filename[0] != '\0', "Invalid filename (err #1)"); | ||||
| carla_debug("CarlaEngine::loadFile(\"%s\")", filename); | carla_debug("CarlaEngine::loadFile(\"%s\")", filename); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| QFileInfo fileInfo(filename); | QFileInfo fileInfo(filename); | ||||
| @@ -1315,7 +1315,7 @@ bool CarlaEngine::loadFile(const char* const filename) | |||||
| } | } | ||||
| if (extension == "3g2" || extension == "3gp" || extension == "aac" || extension == "ac3" || extension == "amr" || extension == "ape" || | if (extension == "3g2" || extension == "3gp" || extension == "aac" || extension == "ac3" || extension == "amr" || extension == "ape" || | ||||
| extension == "mp2" || extension == "mp3" || extension == "mpc" || extension == "wma") | |||||
| extension == "mp2" || extension == "mp3" || extension == "mpc" || extension == "wma") | |||||
| { | { | ||||
| #ifdef WANT_AUDIOFILE | #ifdef WANT_AUDIOFILE | ||||
| # ifdef HAVE_FFMPEG | # ifdef HAVE_FFMPEG | ||||
| @@ -1383,7 +1383,7 @@ bool CarlaEngine::loadProject(const char* const filename) | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(filename != nullptr && filename[0] != '\0', "Invalid filename (err #2)"); | CARLA_SAFE_ASSERT_RETURN_ERR(filename != nullptr && filename[0] != '\0', "Invalid filename (err #2)"); | ||||
| carla_debug("CarlaEngine::loadProject(\"%s\")", filename); | carla_debug("CarlaEngine::loadProject(\"%s\")", filename); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| QFile file(filename); | QFile file(filename); | ||||
| @@ -1482,7 +1482,7 @@ bool CarlaEngine::saveProject(const char* const filename) | |||||
| { | { | ||||
| CARLA_SAFE_ASSERT_RETURN_ERR(filename != nullptr && filename[0] != '\0', "Invalid filename (err #3)"); | CARLA_SAFE_ASSERT_RETURN_ERR(filename != nullptr && filename[0] != '\0', "Invalid filename (err #3)"); | ||||
| carla_debug("CarlaEngine::saveProject(\"%s\")", filename); | carla_debug("CarlaEngine::saveProject(\"%s\")", filename); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| QFile file(filename); | QFile file(filename); | ||||
| @@ -1632,7 +1632,7 @@ void CarlaEngine::callback(const EngineCallbackOpcode action, const unsigned int | |||||
| void CarlaEngine::setCallback(const EngineCallbackFunc func, void* const ptr) noexcept | void CarlaEngine::setCallback(const EngineCallbackFunc func, void* const ptr) noexcept | ||||
| { | { | ||||
| carla_debug("CarlaEngine::setCallback(%p, %p)", func, ptr); | carla_debug("CarlaEngine::setCallback(%p, %p)", func, ptr); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| pData->callback = func; | pData->callback = func; | ||||
| pData->callbackPtr = ptr; | pData->callbackPtr = ptr; | ||||
| @@ -1646,7 +1646,7 @@ const char* CarlaEngine::runFileCallback(const FileCallbackOpcode action, const | |||||
| CARLA_SAFE_ASSERT_RETURN(title != nullptr && title[0] != '\0', nullptr); | CARLA_SAFE_ASSERT_RETURN(title != nullptr && title[0] != '\0', nullptr); | ||||
| CARLA_SAFE_ASSERT_RETURN(filter != nullptr, nullptr); | CARLA_SAFE_ASSERT_RETURN(filter != nullptr, nullptr); | ||||
| carla_debug("CarlaEngine::runFileCallback(%i:%s, %s, \"%s\", \"%s\")", action, FileCallbackOpcode2Str(action), bool2str(isDir), title, filter); | carla_debug("CarlaEngine::runFileCallback(%i:%s, %s, \"%s\", \"%s\")", action, FileCallbackOpcode2Str(action), bool2str(isDir), title, filter); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| const char* ret = nullptr; | const char* ret = nullptr; | ||||
| @@ -1662,7 +1662,7 @@ const char* CarlaEngine::runFileCallback(const FileCallbackOpcode action, const | |||||
| void CarlaEngine::setFileCallback(const FileCallbackFunc func, void* const ptr) noexcept | void CarlaEngine::setFileCallback(const FileCallbackFunc func, void* const ptr) noexcept | ||||
| { | { | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| pData->fileCallback = func; | pData->fileCallback = func; | ||||
| pData->fileCallbackPtr = ptr; | pData->fileCallbackPtr = ptr; | ||||
| @@ -1677,7 +1677,7 @@ bool CarlaEngine::patchbayConnect(const int portA, const int portB) | |||||
| CARLA_SAFE_ASSERT_RETURN(pData->options.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK || pData->options.processMode == ENGINE_PROCESS_MODE_PATCHBAY, false); | CARLA_SAFE_ASSERT_RETURN(pData->options.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK || pData->options.processMode == ENGINE_PROCESS_MODE_PATCHBAY, false); | ||||
| CARLA_SAFE_ASSERT_RETURN(pData->bufAudio.isReady, false); | CARLA_SAFE_ASSERT_RETURN(pData->bufAudio.isReady, false); | ||||
| carla_debug("CarlaEngineRtAudio::patchbayConnect(%i, %i)", portA, portB); | carla_debug("CarlaEngineRtAudio::patchbayConnect(%i, %i)", portA, portB); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| if (pData->bufAudio.usePatchbay) | if (pData->bufAudio.usePatchbay) | ||||
| { | { | ||||
| @@ -1781,7 +1781,7 @@ bool CarlaEngine::patchbayDisconnect(const uint connectionId) | |||||
| CARLA_SAFE_ASSERT_RETURN(pData->options.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK || pData->options.processMode == ENGINE_PROCESS_MODE_PATCHBAY, false); | CARLA_SAFE_ASSERT_RETURN(pData->options.processMode == ENGINE_PROCESS_MODE_CONTINUOUS_RACK || pData->options.processMode == ENGINE_PROCESS_MODE_PATCHBAY, false); | ||||
| CARLA_SAFE_ASSERT_RETURN(pData->bufAudio.isReady, false); | CARLA_SAFE_ASSERT_RETURN(pData->bufAudio.isReady, false); | ||||
| carla_debug("CarlaEngineRtAudio::patchbayDisconnect(%i)", connectionId); | carla_debug("CarlaEngineRtAudio::patchbayDisconnect(%i)", connectionId); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| if (pData->bufAudio.usePatchbay) | if (pData->bufAudio.usePatchbay) | ||||
| { | { | ||||
| @@ -1897,7 +1897,7 @@ const char* CarlaEngine::getLastError() const noexcept | |||||
| void CarlaEngine::setLastError(const char* const error) const | void CarlaEngine::setLastError(const char* const error) const | ||||
| { | { | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| pData->lastError = error; | pData->lastError = error; | ||||
| } | } | ||||
| @@ -1915,7 +1915,7 @@ void CarlaEngine::setAboutToClose() noexcept | |||||
| void CarlaEngine::setOption(const EngineOption option, const int value, const char* const valueStr) | void CarlaEngine::setOption(const EngineOption option, const int value, const char* const valueStr) | ||||
| { | { | ||||
| carla_debug("CarlaEngine::setOption(%i:%s, %i, \"%s\")", option, EngineOption2Str(option), value, valueStr); | carla_debug("CarlaEngine::setOption(%i:%s, %i, \"%s\")", option, EngineOption2Str(option), value, valueStr); | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| if (isRunning() && (option == ENGINE_OPTION_PROCESS_MODE || option == ENGINE_OPTION_AUDIO_NUM_PERIODS || option == ENGINE_OPTION_AUDIO_DEVICE)) | if (isRunning() && (option == ENGINE_OPTION_PROCESS_MODE || option == ENGINE_OPTION_AUDIO_NUM_PERIODS || option == ENGINE_OPTION_AUDIO_DEVICE)) | ||||
| return carla_stderr("CarlaEngine::setOption(%i:%s, %i, \"%s\") - Cannot set this option while engine is running!", option, EngineOption2Str(option), value, valueStr); | return carla_stderr("CarlaEngine::setOption(%i:%s, %i, \"%s\") - Cannot set this option while engine is running!", option, EngineOption2Str(option), value, valueStr); | ||||
| @@ -2044,7 +2044,7 @@ const char* CarlaEngine::getOscServerPathUDP() const noexcept | |||||
| #ifdef BUILD_BRIDGE | #ifdef BUILD_BRIDGE | ||||
| void CarlaEngine::setOscBridgeData(const CarlaOscData* const oscData) const noexcept | void CarlaEngine::setOscBridgeData(const CarlaOscData* const oscData) const noexcept | ||||
| { | { | ||||
| CARLA_ENGINE_THREAD_SAFE_SECTION | |||||
| CARLA_ENGINE_THREAD_SAFE_SECTION; | |||||
| pData->oscData = oscData; | pData->oscData = oscData; | ||||
| } | } | ||||