Browse Source

Mapping between plugin id and canvas group id; Cleanup

Signed-off-by: falkTX <falktx@falktx.com>
tags/v2.1-rc1
falkTX 6 years ago
parent
commit
b4e05d4d1b
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 43 additions and 13 deletions
  1. +2
    -1
      source/backend/engine/CarlaEngineJack.cpp
  2. +3
    -0
      source/frontend/carla_host.py
  3. +1
    -0
      source/frontend/patchcanvas/__init__.py
  4. +37
    -12
      source/frontend/patchcanvas/patchcanvas.py

+ 2
- 1
source/backend/engine/CarlaEngineJack.cpp View File

@@ -66,7 +66,8 @@ static int buggy_jack2_uuid_parse(const char* b, jack_uuid_t* u)

if (*u < (0x1LLU << 32)) {
// FIXME: bug in jack2, client bit not set
*u = (0x2LLU << 32) | *u;
// *u = (0x2LLU << 32) | *u;
return -1;
}

return 0;


+ 3
- 0
source/frontend/carla_host.py View File

@@ -1278,6 +1278,9 @@ class HostWindow(QMainWindow):
if pluginId in self.fSelectedPlugins:
self.clearSideStuff()

if self.fPluginCount == 0:
return

pitem = self.getPluginItem(pluginId)

self.fPluginCount -= 1


+ 1
- 0
source/frontend/patchcanvas/__init__.py View File

@@ -132,6 +132,7 @@ class Canvas(object):
self.port_list = []
self.connection_list = []
self.animation_list = []
self.group_plugin_map = {}

self.callback = self.callback
self.debug = False


+ 37
- 12
source/frontend/patchcanvas/patchcanvas.py View File

@@ -227,6 +227,7 @@ def clear():
canvas.group_list = []
canvas.port_list = []
canvas.connection_list = []
canvas.group_plugin_map = {}

canvas.scene.clearSelection()

@@ -381,6 +382,7 @@ def removeGroup(group_id):
del item

canvas.group_list.remove(group)
canvas.group_plugin_map.pop(group.plugin_id, None)

QTimer.singleShot(0, canvas.scene.update)
return
@@ -685,23 +687,13 @@ def setGroupAsPlugin(group_id, plugin_id, hasUI, hasInlineDisplay):

if group.split and group.widgets[1]:
group.widgets[1].setAsPlugin(plugin_id, hasUI, hasInlineDisplay)

canvas.group_plugin_map[plugin_id] = group
return

qCritical("PatchCanvas::setGroupAsPlugin(%i, %i, %s, %s) - unable to find group to set as plugin" % (
group_id, plugin_id, bool2str(hasUI), bool2str(hasInlineDisplay)))

def redrawPluginGroup(plugin_id):
for group in canvas.group_list:
if group.plugin_id == plugin_id:
group.widgets[0].update()

if group.split and group.widgets[1]:
group.widgets[1].update()

return

qCritical("PatchCanvas::redrawPluginGroup(%i) - unable to find group" % plugin_id)

# ------------------------------------------------------------------------------------------------------------

def addPort(group_id, port_id, port_name, port_mode, port_type, is_alternate=False):
@@ -916,10 +908,37 @@ def updateZValues():

# ------------------------------------------------------------------------------------------------------------

def redrawPluginGroup(plugin_id):
group = canvas.group_plugin_map.get(plugin_id, None)

if group is None:
qCritical("PatchCanvas::redrawPluginGroup(%i) - unable to find group" % plugin_id)
return

group.widgets[0].update()

if group.split and group.widgets[1]:
group.widgets[1].update()

def handlePluginRemoved(plugin_id):
if canvas.debug:
print("PatchCanvas::handlePluginRemoved(%i)" % plugin_id)

group = canvas.group_plugin_map.pop(plugin_id, None)

if group is not None:
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

for group in canvas.group_list:
if group.plugin_id < plugin_id or group.plugin_id > MAX_PLUGIN_ID_ALLOWED:
continue
@@ -930,11 +949,17 @@ def handlePluginRemoved(plugin_id):
if group.split and group.widgets[1]:
group.widgets[1].m_plugin_id -= 1

canvas.group_plugin_map[plugin_id] = group

def handleAllPluginsRemoved():
if canvas.debug:
print("PatchCanvas::handleAllPluginsRemoved()")

canvas.group_plugin_map = {}

for group in canvas.group_list:
if group.plugin_id < 0:
continue
if group.plugin_id > MAX_PLUGIN_ID_ALLOWED:
continue



Loading…
Cancel
Save