Signed-off-by: falkTX <falktx@falktx.com>pull/1807/head
| @@ -413,79 +413,95 @@ CARLA_PLUGIN_EXPORT void carla_juce_cleanup(void); | |||
| /* -------------------------------------------------------------------------------------------------------------------- | |||
| * pipes */ | |||
| /*! | |||
| * TODO. | |||
| */ | |||
| typedef void* CarlaPipeClientHandle; | |||
| /*! | |||
| * TODO. | |||
| * Callback for when a message has been received (in the context of carla_pipe_client_idle()). | |||
| * If extra data is required, use any of the carla_pipe_client_readlineblock* functions. | |||
| */ | |||
| typedef void (*CarlaPipeCallbackFunc)(void* ptr, const char* msg); | |||
| /*! | |||
| * TODO. | |||
| * Create and connect to pipes as used by a server. | |||
| * @a argv must match the arguments set the by server. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT CarlaPipeClientHandle carla_pipe_client_new(const char* argv[], CarlaPipeCallbackFunc callbackFunc, void* callbackPtr); | |||
| CARLA_PLUGIN_EXPORT CarlaPipeClientHandle carla_pipe_client_new(const char* argv[], | |||
| CarlaPipeCallbackFunc callbackFunc, | |||
| void* callbackPtr); | |||
| /*! | |||
| * TODO. | |||
| * Check the pipe for new messages and send them to the callback function. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT void carla_pipe_client_idle(CarlaPipeClientHandle handle); | |||
| /*! | |||
| * TODO. | |||
| * Check if the pipe is running. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_is_running(CarlaPipeClientHandle handle); | |||
| /*! | |||
| * TODO. | |||
| * Lock the pipe write mutex. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT void carla_pipe_client_lock(CarlaPipeClientHandle handle); | |||
| /*! | |||
| * TODO. | |||
| * Unlock the pipe write mutex. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT void carla_pipe_client_unlock(CarlaPipeClientHandle handle); | |||
| /*! | |||
| * TODO. | |||
| * Read the next line as a string. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT const char* carla_pipe_client_readlineblock(CarlaPipeClientHandle handle, uint timeout); | |||
| /*! | |||
| * Extras. | |||
| * TODO. | |||
| * Read the next line as a boolean. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_readlineblock_bool(CarlaPipeClientHandle handle, uint timeout); | |||
| /*! | |||
| * Read the next line as an integer. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT int carla_pipe_client_readlineblock_int(CarlaPipeClientHandle handle, uint timeout); | |||
| /*! | |||
| * Read the next line as a floating point number (double precision). | |||
| */ | |||
| CARLA_PLUGIN_EXPORT double carla_pipe_client_readlineblock_float(CarlaPipeClientHandle handle, uint timeout); | |||
| /*! | |||
| * TODO. | |||
| * Write a valid message. | |||
| * A valid message has only one '\n' character and it's at the end. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_write_msg(CarlaPipeClientHandle handle, const char* msg); | |||
| /*! | |||
| * TODO. | |||
| * Write and fix a message. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_write_and_fix_msg(CarlaPipeClientHandle handle, const char* msg); | |||
| /*! | |||
| * TODO. | |||
| * Sync all messages currently in cache. | |||
| * This call will forcely write any messages in cache to any relevant IO. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_flush(CarlaPipeClientHandle handle); | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_sync(CarlaPipeClientHandle handle); | |||
| /*! | |||
| * TODO. | |||
| * Convenience call for doing both sync and unlock in one-go. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_flush_and_unlock(CarlaPipeClientHandle handle); | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_sync_and_unlock(CarlaPipeClientHandle handle); | |||
| /*! | |||
| * TODO. | |||
| * Destroy a previously created pipes instance. | |||
| */ | |||
| CARLA_PLUGIN_EXPORT void carla_pipe_client_destroy(CarlaPipeClientHandle handle); | |||
| /* DEPRECATED use carla_pipe_client_sync */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_flush(CarlaPipeClientHandle handle); | |||
| /* DEPRECATED use carla_pipe_client_sync_and_unlock */ | |||
| CARLA_PLUGIN_EXPORT bool carla_pipe_client_flush_and_unlock(CarlaPipeClientHandle handle); | |||
| /* -------------------------------------------------------------------------------------------------------------------- | |||
| * system stuff */ | |||
| @@ -432,7 +432,7 @@ protected: | |||
| std::snprintf(tmpBuf, STR_MAX, "%i\n", newBufferSize); | |||
| if (fUiServer.writeMessage(tmpBuf)) | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| } | |||
| #endif | |||
| @@ -461,7 +461,7 @@ protected: | |||
| } | |||
| if (fUiServer.writeMessage(tmpBuf)) | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| } | |||
| #endif | |||
| @@ -550,7 +550,7 @@ protected: | |||
| pluginId, plugin->getMidiInCount(), plugin->getMidiOutCount()); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| void uiServerSendPluginParameters(const CarlaPluginPtr& plugin) | |||
| @@ -571,7 +571,7 @@ protected: | |||
| std::snprintf(tmpBuf, STR_MAX, "%.12g\n", static_cast<double>(plugin->getInternalParameterValue(i))); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| uint32_t ins, outs, count; | |||
| @@ -640,7 +640,7 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| } | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| void uiServerSendPluginPrograms(const CarlaPluginPtr& plugin) | |||
| @@ -668,7 +668,7 @@ protected: | |||
| } | |||
| } | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| count = plugin->getMidiProgramCount(); | |||
| std::snprintf(tmpBuf, STR_MAX, "MIDI_PROGRAM_COUNT_%i:%i:%i\n", | |||
| @@ -688,7 +688,7 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeAndFixMessage(mpData.name),); | |||
| } | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| void uiServerSendPluginProperties(const CarlaPluginPtr& plugin) | |||
| @@ -719,7 +719,7 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeAndFixMessage(customData.value),); | |||
| } | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| void uiServerCallback(const EngineCallbackOpcode action, const uint pluginId, | |||
| @@ -829,7 +829,7 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeEmptyMessage(),); | |||
| } | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| void uiServerInfo() | |||
| @@ -863,7 +863,7 @@ protected: | |||
| } | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| void uiServerOptions() | |||
| @@ -885,66 +885,66 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| std::snprintf(tmpBuf, STR_MAX, "%i\n", options.processMode); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_TRANSPORT_MODE); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| std::snprintf(tmpBuf, STR_MAX, "%i\n", options.transportMode); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_FORCE_STEREO); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(options.forceStereo ? "true\n" : "false\n"),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_PREFER_PLUGIN_BRIDGES); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(options.preferPluginBridges ? "true\n" : "false\n"),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_PREFER_UI_BRIDGES); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(options.preferUiBridges ? "true\n" : "false\n"),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_UIS_ALWAYS_ON_TOP); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(options.uisAlwaysOnTop ? "true\n" : "false\n"),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_MAX_PARAMETERS); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| std::snprintf(tmpBuf, STR_MAX, "%i\n", options.maxParameters); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_UI_BRIDGES_TIMEOUT); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(optionsForcedStr, optionsForcedStrSize),); | |||
| std::snprintf(tmpBuf, STR_MAX, "%i\n", options.uiBridgesTimeout); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_PATH_BINARIES); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage("true\n", 5),); | |||
| std::snprintf(tmpBuf, STR_MAX, "%s\n", options.binaryDir); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| std::snprintf(tmpBuf, STR_MAX, "ENGINE_OPTION_%i\n", ENGINE_OPTION_PATH_RESOURCES); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage("true\n", 5),); | |||
| std::snprintf(tmpBuf, STR_MAX, "%s\n", options.resourceDir); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| #endif | |||
| @@ -1451,7 +1451,7 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage("runtime-info\n"),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| if (const char* const projFolder = getCurrentProjectFolder()) | |||
| { | |||
| @@ -1461,7 +1461,7 @@ protected: | |||
| fLastProjectFolder = projFolder; | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage("project-folder\n"),); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeAndFixMessage(projFolder),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| } | |||
| @@ -1488,7 +1488,7 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage("0.0\n"),); | |||
| } | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| // ------------------------------------------------------------------------------------------------------------ | |||
| // send peaks and param outputs for all plugins | |||
| @@ -1507,7 +1507,7 @@ protected: | |||
| static_cast<double>(plugData.peaks[3])); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| for (uint32_t j=0, count=plugin->getParameterCount(); j < count; ++j) | |||
| { | |||
| @@ -1519,7 +1519,7 @@ protected: | |||
| std::snprintf(tmpBuf, STR_MAX, "%.12g\n", static_cast<double>(plugin->getParameterValue(j))); | |||
| CARLA_SAFE_ASSERT_RETURN(fUiServer.writeMessage(tmpBuf),); | |||
| fUiServer.flushMessages(); | |||
| fUiServer.syncMessages(); | |||
| } | |||
| } | |||
| } | |||
| @@ -2398,7 +2398,7 @@ bool CarlaEngineNativeUI::msgReceived(const char* const msg) noexcept | |||
| const CarlaMutexLocker cml(getPipeLock()); | |||
| if (writeMessage("error\n", 6) && writeAndFixMessage(fEngine->getLastError())) | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| return true; | |||
| @@ -584,7 +584,7 @@ public: | |||
| if (! writeAndFixMessage(title)) | |||
| return; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| protected: | |||
| @@ -1946,7 +1946,7 @@ public: | |||
| if (! fPipeServer.writeMessage("show\n", 5)) | |||
| return; | |||
| fPipeServer.flushMessages(); | |||
| fPipeServer.syncMessages(); | |||
| } | |||
| #ifndef BUILD_BRIDGE | |||
| @@ -182,19 +182,19 @@ bool carla_pipe_client_write_and_fix_msg(CarlaPipeClientHandle handle, const cha | |||
| return ((ExposedCarlaPipeClient*)handle)->writeAndFixMessage(msg); | |||
| } | |||
| bool carla_pipe_client_flush(CarlaPipeClientHandle handle) | |||
| bool carla_pipe_client_sync(CarlaPipeClientHandle handle) | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(handle != nullptr, false); | |||
| return ((ExposedCarlaPipeClient*)handle)->flushMessages(); | |||
| return ((ExposedCarlaPipeClient*)handle)->syncMessages(); | |||
| } | |||
| bool carla_pipe_client_flush_and_unlock(CarlaPipeClientHandle handle) | |||
| bool carla_pipe_client_sync_and_unlock(CarlaPipeClientHandle handle) | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(handle != nullptr, false); | |||
| ExposedCarlaPipeClient* const pipe = (ExposedCarlaPipeClient*)handle; | |||
| const bool ret = pipe->flushMessages(); | |||
| const bool ret = pipe->syncMessages(); | |||
| pipe->unlockPipe(); | |||
| return ret; | |||
| } | |||
| @@ -211,6 +211,18 @@ void carla_pipe_client_destroy(CarlaPipeClientHandle handle) | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| bool carla_pipe_client_flush(CarlaPipeClientHandle handle) | |||
| { | |||
| return carla_pipe_client_sync(handle); | |||
| } | |||
| bool carla_pipe_client_flush_and_unlock(CarlaPipeClientHandle handle) | |||
| { | |||
| return carla_pipe_client_sync_and_unlock(handle); | |||
| } | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| #ifndef CARLA_PLUGIN_BUILD | |||
| # include "CarlaPipeUtils.cpp" | |||
| #endif | |||
| @@ -139,7 +139,7 @@ protected: | |||
| if (! writeAndFixMessage(uiName)) | |||
| return; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| bool uiMIDIEvent(const uint8_t size, const uint8_t data[]) override | |||
| @@ -353,7 +353,7 @@ protected: | |||
| CARLA_SAFE_ASSERT_RETURN(writeMessage(strBuf),); | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| } | |||
| #endif | |||
| @@ -959,7 +959,7 @@ bool CarlaPipeCommon::writeEmptyMessage() const noexcept | |||
| return _writeMsgBuffer("\n", 1); | |||
| } | |||
| bool CarlaPipeCommon::flushMessages() const noexcept | |||
| bool CarlaPipeCommon::syncMessages() const noexcept | |||
| { | |||
| CARLA_SAFE_ASSERT_RETURN(pData->pipeSend != INVALID_PIPE_VALUE, false); | |||
| @@ -991,7 +991,7 @@ bool CarlaPipeCommon::writeErrorMessage(const char* const error) const noexcept | |||
| if (! writeAndFixMessage(error)) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1021,7 +1021,7 @@ bool CarlaPipeCommon::writeControlMessage(const uint32_t index, const float valu | |||
| if (! _writeMsgBuffer(tmpBuf, std::strlen(tmpBuf))) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1039,7 +1039,7 @@ bool CarlaPipeCommon::writeConfigureMessage(const char* const key, const char* c | |||
| if (! writeAndFixMessage(value)) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1057,7 +1057,7 @@ bool CarlaPipeCommon::writeProgramMessage(const uint32_t index) const noexcept | |||
| if (! _writeMsgBuffer(tmpBuf, std::strlen(tmpBuf))) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1083,7 +1083,7 @@ bool CarlaPipeCommon::writeProgramMessage(const uint8_t channel, const uint32_t | |||
| if (! _writeMsgBuffer(tmpBuf, std::strlen(tmpBuf))) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1105,7 +1105,7 @@ bool CarlaPipeCommon::writeMidiProgramMessage(const uint32_t bank, const uint32_ | |||
| if (! _writeMsgBuffer(tmpBuf, std::strlen(tmpBuf))) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1123,7 +1123,7 @@ bool CarlaPipeCommon::writeReloadProgramsMessage(const int32_t index) const noex | |||
| if (! _writeMsgBuffer(tmpBuf, std::strlen(tmpBuf))) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1157,7 +1157,7 @@ bool CarlaPipeCommon::writeMidiNoteMessage(const bool onOff, const uint8_t chann | |||
| if (! _writeMsgBuffer(tmpBuf, std::strlen(tmpBuf))) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1191,7 +1191,7 @@ bool CarlaPipeCommon::writeLv2AtomMessage(const uint32_t index, const LV2_Atom* | |||
| if (! writeAndFixMessage(base64atom.buffer())) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1220,7 +1220,7 @@ bool CarlaPipeCommon::writeLv2ParameterMessage(const char* const uri, const floa | |||
| if (! _writeMsgBuffer(tmpBuf, std::strlen(tmpBuf))) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1248,7 +1248,7 @@ bool CarlaPipeCommon::writeLv2UridMessage(const uint32_t urid, const char* const | |||
| if (! writeAndFixMessage(uri)) | |||
| return false; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1778,7 +1778,7 @@ void CarlaPipeServer::stopPipeServer(const uint32_t timeOutMilliseconds) noexcep | |||
| if (pData->pipeSend != INVALID_PIPE_VALUE && ! pData->pipeClosed) | |||
| { | |||
| if (_writeMsgBuffer("__carla-quit__\n", 15)) | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| waitForProcessToStopOrKillIt(pData->processInfo.hProcess, timeOutMilliseconds); | |||
| @@ -1796,7 +1796,7 @@ void CarlaPipeServer::stopPipeServer(const uint32_t timeOutMilliseconds) noexcep | |||
| if (pData->pipeSend != INVALID_PIPE_VALUE && ! pData->pipeClosed) | |||
| { | |||
| if (_writeMsgBuffer("__carla-quit__\n", 15)) | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| waitForChildToStopOrKillIt(pData->pid, timeOutMilliseconds); | |||
| @@ -1847,7 +1847,7 @@ void CarlaPipeServer::writeShowMessage() const noexcept | |||
| if (! _writeMsgBuffer("show\n", 5)) | |||
| return; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| void CarlaPipeServer::writeFocusMessage() const noexcept | |||
| @@ -1857,7 +1857,7 @@ void CarlaPipeServer::writeFocusMessage() const noexcept | |||
| if (! _writeMsgBuffer("focus\n", 6)) | |||
| return; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| void CarlaPipeServer::writeHideMessage() const noexcept | |||
| @@ -1867,7 +1867,7 @@ void CarlaPipeServer::writeHideMessage() const noexcept | |||
| if (! _writeMsgBuffer("show\n", 5)) | |||
| return; | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| // ----------------------------------------------------------------------- | |||
| @@ -1937,7 +1937,7 @@ bool CarlaPipeClient::initPipeClient(const char* argv[]) noexcept | |||
| pData->clientClosingDown = false; | |||
| if (writeMessage("\n", 1)) | |||
| flushMessages(); | |||
| syncMessages(); | |||
| return true; | |||
| } | |||
| @@ -1977,7 +1977,7 @@ void CarlaPipeClient::writeExitingMessageAndWait() noexcept | |||
| const CarlaMutexLocker cml(pData->writeLock); | |||
| if (_writeMsgBuffer("exiting\n", 8)) | |||
| flushMessages(); | |||
| syncMessages(); | |||
| } | |||
| // NOTE: no more messages are handled after this point | |||
| @@ -175,9 +175,10 @@ public: | |||
| bool writeEmptyMessage() const noexcept; | |||
| /*! | |||
| * Flush all messages currently in cache. | |||
| * Sync all messages currently in cache. | |||
| * This call will forcely write any messages in cache to any relevant IO. | |||
| */ | |||
| bool flushMessages() const noexcept; | |||
| bool syncMessages() const noexcept; | |||
| // ------------------------------------------------------------------- | |||
| // write prepared messages, no lock or flush needed (done internally) | |||