diff --git a/source/backend/engine/CarlaEngineJack.cpp b/source/backend/engine/CarlaEngineJack.cpp index 88d44c232..a1f4b8e09 100644 --- a/source/backend/engine/CarlaEngineJack.cpp +++ b/source/backend/engine/CarlaEngineJack.cpp @@ -2979,7 +2979,6 @@ int jack_initialize(jack_client_t* const client, const char* const load_init) #ifdef CARLA_OS_UNIX sThreadSafeFFTW.init(); #endif - return 0; } else diff --git a/source/frontend/carla_host.py b/source/frontend/carla_host.py index a684b50e4..3c38e33fd 100644 --- a/source/frontend/carla_host.py +++ b/source/frontend/carla_host.py @@ -1506,10 +1506,13 @@ class HostWindow(QMainWindow): if pluginId == MAIN_CARLA_PLUGIN_ID: hasCustomUI = False + hasInlineDisplay = False else: - hasCustomUI = bool(self.host.get_plugin_info(pluginId)['hints'] & PLUGIN_HAS_CUSTOM_UI) + hints = self.host.get_plugin_info(pluginId)['hints'] + hasCustomUI = bool(hints & PLUGIN_HAS_CUSTOM_UI) + hasInlineDisplay = bool(hints & PLUGIN_HAS_INLINE_DISPLAY) - patchcanvas.setGroupAsPlugin(clientId, pluginId, hasCustomUI) + patchcanvas.setGroupAsPlugin(clientId, pluginId, hasCustomUI, hasInlineDisplay) @pyqtSlot(int) def slot_handlePatchbayClientRemovedCallback(self, clientId): @@ -1547,10 +1550,13 @@ class HostWindow(QMainWindow): if pluginId == MAIN_CARLA_PLUGIN_ID: hasCustomUI = False + hasInlineDisplay = False else: - hasCustomUI = bool(self.host.get_plugin_info(pluginId)['hints'] & PLUGIN_HAS_CUSTOM_UI) + hints = self.host.get_plugin_info(pluginId)['hints'] + hasCustomUI = bool(hints & PLUGIN_HAS_CUSTOM_UI) + hasInlineDisplay = bool(hints & PLUGIN_HAS_INLINE_DISPLAY) - patchcanvas.setGroupAsPlugin(clientId, pluginId, hasCustomUI) + patchcanvas.setGroupAsPlugin(clientId, pluginId, hasCustomUI, hasInlineDisplay) @pyqtSlot(int, int, int, str) def slot_handlePatchbayPortAddedCallback(self, clientId, portId, portFlags, portName): diff --git a/source/frontend/patchcanvas/__init__.py b/source/frontend/patchcanvas/__init__.py index 4dc5711ec..e99fe1474 100644 --- a/source/frontend/patchcanvas/__init__.py +++ b/source/frontend/patchcanvas/__init__.py @@ -154,6 +154,7 @@ class group_dict_t(object): 'icon', 'plugin_id', 'plugin_ui', + 'plugin_inline', 'widgets' ] diff --git a/source/frontend/patchcanvas/canvasbox.py b/source/frontend/patchcanvas/canvasbox.py index c83f44315..39b1eb1c6 100644 --- a/source/frontend/patchcanvas/canvasbox.py +++ b/source/frontend/patchcanvas/canvasbox.py @@ -83,6 +83,7 @@ class CanvasBox(QGraphicsItem): # plugin Id, < 0 if invalid self.m_plugin_id = -1 self.m_plugin_ui = False + self.m_plugin_inline = False # Base Variables self.p_width = 50 @@ -157,9 +158,10 @@ class CanvasBox(QGraphicsItem): def getPortList(self): return self.m_port_list_ids - def setAsPlugin(self, plugin_id, hasUi): + def setAsPlugin(self, plugin_id, hasUI, hasInlineDisplay): self.m_plugin_id = plugin_id - self.m_plugin_ui = hasUi + self.m_plugin_ui = hasUI + self.m_plugin_inline = hasInlineDisplay def setIcon(self, icon): if self.icon_svg is not None: diff --git a/source/frontend/patchcanvas/patchcanvas.py b/source/frontend/patchcanvas/patchcanvas.py index 2550bc9f3..64edc949a 100644 --- a/source/frontend/patchcanvas/patchcanvas.py +++ b/source/frontend/patchcanvas/patchcanvas.py @@ -292,6 +292,7 @@ def addGroup(group_id, group_name, split=SPLIT_UNDEF, icon=ICON_APPLICATION): group_dict.icon = icon group_dict.plugin_id = -1 group_dict.plugin_ui = False + group_dict.plugin_inline = False group_dict.widgets = [group_box, None] if split == SPLIT_YES: @@ -412,6 +413,7 @@ def splitGroup(group_id): group_icon = ICON_APPLICATION plugin_id = -1 plugin_ui = False + plugin_inline = False ports_data = [] conns_data = [] @@ -427,6 +429,7 @@ def splitGroup(group_id): group_icon = group.icon plugin_id = group.plugin_id plugin_ui = group.plugin_ui + plugin_inline = group.plugin_inline break if not item: @@ -471,7 +474,7 @@ def splitGroup(group_id): addGroup(group_id, group_name, SPLIT_YES, group_icon) if plugin_id >= 0: - setGroupAsPlugin(group_id, plugin_id, plugin_ui) + setGroupAsPlugin(group_id, plugin_id, plugin_ui, plugin_inline) for port in ports_data: addPort(group_id, port.port_id, port.port_name, port.port_mode, port.port_type, port.is_alternate) @@ -491,6 +494,7 @@ def joinGroup(group_id): group_icon = ICON_APPLICATION plugin_id = -1 plugin_ui = False + plugin_inline = False ports_data = [] conns_data = [] @@ -507,6 +511,7 @@ def joinGroup(group_id): group_icon = group.icon plugin_id = group.plugin_id plugin_ui = group.plugin_ui + plugin_inline = group.plugin_inline break # FIXME @@ -557,7 +562,7 @@ def joinGroup(group_id): addGroup(group_id, group_name, SPLIT_NO, group_icon) if plugin_id >= 0: - setGroupAsPlugin(group_id, plugin_id, plugin_ui) + setGroupAsPlugin(group_id, plugin_id, plugin_ui, plugin_inline) for port in ports_data: addPort(group_id, port.port_id, port.port_name, port.port_mode, port.port_type, port.is_alternate) @@ -666,22 +671,24 @@ def setGroupIcon(group_id, icon): qCritical("PatchCanvas::setGroupIcon(%i, %s) - unable to find group to change icon" % (group_id, icon2str(icon))) -def setGroupAsPlugin(group_id, plugin_id, hasUi): +def setGroupAsPlugin(group_id, plugin_id, hasUI, hasInlineDisplay): if canvas.debug: - print("PatchCanvas::setGroupAsPlugin(%i, %i, %s)" % (group_id, plugin_id, bool2str(hasUi))) + print("PatchCanvas::setGroupAsPlugin(%i, %i, %s, %s)" % ( + group_id, plugin_id, bool2str(hasUI), bool2str(hasInlineDisplay))) for group in canvas.group_list: if group.group_id == group_id: group.plugin_id = plugin_id - group.plugin_ui = hasUi - group.widgets[0].setAsPlugin(plugin_id, hasUi) + group.plugin_ui = hasUI + group.plugin_inline = hasInlineDisplay + group.widgets[0].setAsPlugin(plugin_id, hasUI, hasInlineDisplay) if group.split and group.widgets[1]: - group.widgets[1].setAsPlugin(plugin_id, hasUi) + group.widgets[1].setAsPlugin(plugin_id, hasUI, hasInlineDisplay) return - qCritical("PatchCanvas::setGroupAsPlugin(%i, %i, %s) - unable to find group to set as plugin" % ( - group_id, plugin_id, bool2str(hasUi))) + qCritical("PatchCanvas::setGroupAsPlugin(%i, %i, %s, %s) - unable to find group to set as plugin" % ( + group_id, plugin_id, bool2str(hasUI), bool2str(hasInlineDisplay))) # ------------------------------------------------------------------------------------------------------------ @@ -921,11 +928,14 @@ def handleAllPluginsRemoved(): group.plugin_id = -1 group.plugin_ui = False + group.plugin_inline = False group.widgets[0].m_plugin_id = -1 group.widgets[0].m_plugin_ui = False + group.widgets[0].m_plugin_inline = False if group.split and group.widgets[1]: group.widgets[1].m_plugin_id = -1 group.widgets[1].m_plugin_ui = False + group.widgets[1].m_plugin_inline = False # ------------------------------------------------------------------------------------------------------------