diff --git a/source/backend/Makefile.mk b/source/backend/Makefile.mk index 5a5b731b9..c7aaea2f6 100644 --- a/source/backend/Makefile.mk +++ b/source/backend/Makefile.mk @@ -81,6 +81,7 @@ LINKED_LIST_HPP = ../../utils/LinkedList.hpp $(CARLA_UTILS_HPP) RT_LINKED_LIST_HPP = ../../utils/RtLinkedList.hpp $(LINKED_LIST_HPP) CARLA_BACKEND_UTILS_HPP = ../../utils/CarlaBackendUtils.hpp $(CARLA_BACKEND_H) $(CARLA_HOST_H) $(CARLA_STRING_HPP) +CARLA_EXTERNAL_UI_HPP = ../../utils/CarlaExternalUI.hpp $(CARLA_PIPE_UTILS_HPP) CARLA_BRIDGE_UTILS_HPP = ../../utils/CarlaBridgeUtils.hpp $(CARLA_BACKEND_H) $(CARLA_RING_BUFFER_HPP) CARLA_ENGINE_UTILS_HPP = ../../utils/CarlaEngineUtils.hpp $(CARLA_ENGINE_HPP) $(CARLA_UTILS_HPP) CARLA_LIB_COUNTER_HPP = ../../utils/CarlaLibCounter.hpp $(CARLA_LIB_UTILS_HPP) $(CARLA_MUTEX_HPP) $(LINKED_LIST_HPP) @@ -95,10 +96,11 @@ CARLA_DSSI_UTILS_HPP = ../../utils/CarlaDssiUtils.hpp $(CARLA_LADSPA_UTILS_HP CARLA_LV2_UTILS_HPP = ../../utils/CarlaLv2Utils.hpp $(CARLA_UTILS_HPP) CARLA_VST_UTILS_HPP = ../../utils/CarlaVstUtils.hpp $(CARLA_UTILS_HPP) -CARLA_NATIVE_H = ../../modules/CarlaNative.h -CARLA_NATIVE_HPP = ../../modules/CarlaNative.hpp $(CARLA_NATIVE_H) $(CARLA_MIDI_H) $(CARLA_JUCE_UTILS_HPP) -JACK_BRIDGE_HPP = ../../modules/jackbridge/JackBridge.hpp $(CARLA_DEFINES_H) -RTAUDIO_HPP = ../../modules/rtaudio/RtAudio.h -RTMIDI_HPP = ../../modules/rtmidi/RtMidi.h $(CARLA_DEFINES_H) +CARLA_NATIVE_H = ../../modules/CarlaNative.h +CARLA_NATIVE_HPP = ../../modules/CarlaNative.hpp $(CARLA_NATIVE_H) $(CARLA_MIDI_H) $(CARLA_JUCE_UTILS_HPP) +CARLA_NATIVE_EXT_UI_HPP = ../../modules/CarlaNativeExtUI.hpp $(CARLA_NATIVE_HPP) $(CARLA_EXTERNAL_UI_HPP) +JACK_BRIDGE_HPP = ../../modules/jackbridge/JackBridge.hpp $(CARLA_DEFINES_H) +RTAUDIO_HPP = ../../modules/rtaudio/RtAudio.h +RTMIDI_HPP = ../../modules/rtmidi/RtMidi.h $(CARLA_DEFINES_H) # ---------------------------------------------------------------------------------------------------------------------------- diff --git a/source/backend/engine/CarlaEngineNative.cpp b/source/backend/engine/CarlaEngineNative.cpp index 4d9a71cff..eeb236b84 100644 --- a/source/backend/engine/CarlaEngineNative.cpp +++ b/source/backend/engine/CarlaEngineNative.cpp @@ -1249,6 +1249,7 @@ protected: break; case CarlaExternalUI::UiHide: pHost->ui_closed(pHost->handle); + fUiServer.stop(); break; } } diff --git a/source/backend/engine/Makefile b/source/backend/engine/Makefile index 49a344cba..bba01424f 100644 --- a/source/backend/engine/Makefile +++ b/source/backend/engine/Makefile @@ -87,10 +87,10 @@ CarlaEngineRtAudio.cpp.o: CarlaEngineRtAudio.cpp $(CARLA_ENGINE_INTERNAL_HPP) $( CarlaEngineJuce.cpp.o: CarlaEngineJuce.cpp $(CARLA_ENGINE_INTERNAL_HPP) $(CARLA_BACKEND_UTILS_HPP) $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ -CarlaEngineNative.cpp.o: CarlaEngineNative.cpp $(CARLA_ENGINE_INTERNAL_HPP) $(CARLA_PLUGIN_HPP) $(CARLA_BACKEND_UTILS_HPP) $(CARLA_MATH_UTILS_HPP) $(CARLA_PIPE_UTILS_HPP) $(CARLA_STATE_UTILS_HPP) $(CARLA_NATIVE_HPP) $(CARLA_STATE_UTILS_CPP) +CarlaEngineNative.cpp.o: CarlaEngineNative.cpp $(CARLA_ENGINE_INTERNAL_HPP) $(CARLA_PLUGIN_HPP) $(CARLA_BACKEND_UTILS_HPP) $(CARLA_MATH_UTILS_HPP) $(CARLA_STATE_UTILS_HPP) $(CARLA_EXTERNAL_UI_HPP) $(CARLA_NATIVE_HPP) $(CXX) $< $(BUILD_CXX_FLAGS) $(QTCORE_FLAGS) $(QTXML_FLAGS) -c -o $@ -CarlaEngineNative.cpp.exp.o: CarlaEngineNative.cpp $(CARLA_ENGINE_INTERNAL_HPP) $(CARLA_PLUGIN_HPP) $(CARLA_BACKEND_UTILS_HPP) $(CARLA_MATH_UTILS_HPP) $(CARLA_PIPE_UTILS_HPP) $(CARLA_STATE_UTILS_HPP) $(CARLA_NATIVE_HPP) $(CARLA_STATE_UTILS_CPP) +CarlaEngineNative.cpp.exp.o: CarlaEngineNative.cpp $(CARLA_ENGINE_INTERNAL_HPP) $(CARLA_PLUGIN_HPP) $(CARLA_BACKEND_UTILS_HPP) $(CARLA_MATH_UTILS_HPP) $(CARLA_STATE_UTILS_HPP) $(CARLA_EXTERNAL_UI_HPP) $(CARLA_NATIVE_HPP) $(CXX) $< $(BUILD_CXX_FLAGS) $(QTCORE_FLAGS) $(QTXML_FLAGS) -DCARLA_PLUGIN_EXPORT -c -o $@ # ---------------------------------------------------------------------------------------------------------------------------- diff --git a/source/modules/CarlaNativeExtUI.hpp b/source/modules/CarlaNativeExtUI.hpp index 2b30dd9b5..ac032e58d 100644 --- a/source/modules/CarlaNativeExtUI.hpp +++ b/source/modules/CarlaNativeExtUI.hpp @@ -83,6 +83,7 @@ protected: break; case CarlaExternalUI::UiHide: uiClosed(); + stop(); break; } } diff --git a/source/utils/CarlaPipeUtils.hpp b/source/utils/CarlaPipeUtils.hpp index 4a8415fa5..af97b0552 100644 --- a/source/utils/CarlaPipeUtils.hpp +++ b/source/utils/CarlaPipeUtils.hpp @@ -616,6 +616,9 @@ private: if (ret == -1) { + if (errno == ECHILD) + return true; + carla_stderr2("waitpid(%i) failed: %s", int(pid), std::strerror(errno)); return false; }