Browse Source

Add logic regarding VST3 to settings

Signed-off-by: falkTX <falktx@gmail.com>
tags/v2.1-alpha1-winvst
parent
commit
b5631aca0e
3 changed files with 56 additions and 2 deletions
  1. +13
    -0
      resources/ui/carla_settings.ui
  2. +36
    -2
      source/frontend/carla_settings.py
  3. +7
    -0
      source/frontend/carla_utils.py

+ 13
- 0
resources/ui/carla_settings.ui View File

@@ -1281,6 +1281,19 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tw_paths_vst3">
<layout class="QVBoxLayout" name="verticalLayout_15">
<property name="spacing">
<number>0</number>
</property>
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QListWidget" name="lw_vst3"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tw_paths_sf2">
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="spacing">


+ 36
- 2
source/frontend/carla_settings.py View File

@@ -207,8 +207,9 @@ class CarlaSettingsW(QDialog):
PATH_INDEX_DSSI = 1
PATH_INDEX_LV2 = 2
PATH_INDEX_VST2 = 3
PATH_INDEX_SF2 = 4
PATH_INDEX_SFZ = 5
PATH_INDEX_VST3 = 4
PATH_INDEX_SF2 = 5
PATH_INDEX_SFZ = 6

# Single and Multiple client mode is only for JACK,
# but we still want to match QComboBox index to backend defines,
@@ -320,6 +321,7 @@ class CarlaSettingsW(QDialog):
self.ui.lw_dssi.currentRowChanged.connect(self.slot_pluginPathRowChanged)
self.ui.lw_lv2.currentRowChanged.connect(self.slot_pluginPathRowChanged)
self.ui.lw_vst.currentRowChanged.connect(self.slot_pluginPathRowChanged)
self.ui.lw_vst3.currentRowChanged.connect(self.slot_pluginPathRowChanged)
self.ui.lw_sf2.currentRowChanged.connect(self.slot_pluginPathRowChanged)
self.ui.lw_sfz.currentRowChanged.connect(self.slot_pluginPathRowChanged)

@@ -337,6 +339,7 @@ class CarlaSettingsW(QDialog):
self.ui.lw_dssi.setCurrentRow(0)
self.ui.lw_lv2.setCurrentRow(0)
self.ui.lw_vst.setCurrentRow(0)
self.ui.lw_vst3.setCurrentRow(0)
self.ui.lw_sf2.setCurrentRow(0)
self.ui.lw_sfz.setCurrentRow(0)

@@ -442,6 +445,7 @@ class CarlaSettingsW(QDialog):
dssis = toList(settings.value(CARLA_KEY_PATHS_DSSI, CARLA_DEFAULT_DSSI_PATH))
lv2s = toList(settings.value(CARLA_KEY_PATHS_LV2, CARLA_DEFAULT_LV2_PATH))
vst2s = toList(settings.value(CARLA_KEY_PATHS_VST2, CARLA_DEFAULT_VST2_PATH))
vst3s = toList(settings.value(CARLA_KEY_PATHS_VST3, CARLA_DEFAULT_VST3_PATH))
sf2s = toList(settings.value(CARLA_KEY_PATHS_SF2, CARLA_DEFAULT_SF2_PATH))
sfzs = toList(settings.value(CARLA_KEY_PATHS_SFZ, CARLA_DEFAULT_SFZ_PATH))

@@ -449,6 +453,7 @@ class CarlaSettingsW(QDialog):
dssis.sort()
lv2s.sort()
vst2s.sort()
vst3s.sort()
sf2s.sort()
sfzs.sort()

@@ -468,6 +473,10 @@ class CarlaSettingsW(QDialog):
if not vst2: continue
self.ui.lw_vst.addItem(vst2)

for vst3 in vst3s:
if not vst3: continue
self.ui.lw_vst3.addItem(vst3)

for sf2 in sf2s:
if not sf2: continue
self.ui.lw_sf2.addItem(sf2)
@@ -615,6 +624,7 @@ class CarlaSettingsW(QDialog):
dssis = []
lv2s = []
vst2s = []
vst3s = []
sf2s = []
sfzs = []

@@ -630,6 +640,9 @@ class CarlaSettingsW(QDialog):
for i in range(self.ui.lw_vst.count()):
vst2s.append(self.ui.lw_vst.item(i).text())

for i in range(self.ui.lw_vst3.count()):
vst3s.append(self.ui.lw_vst3.item(i).text())

for i in range(self.ui.lw_sf2.count()):
sf2s.append(self.ui.lw_sf2.item(i).text())

@@ -640,6 +653,7 @@ class CarlaSettingsW(QDialog):
self.host.set_engine_option(ENGINE_OPTION_PLUGIN_PATH, PLUGIN_DSSI, splitter.join(dssis))
self.host.set_engine_option(ENGINE_OPTION_PLUGIN_PATH, PLUGIN_LV2, splitter.join(lv2s))
self.host.set_engine_option(ENGINE_OPTION_PLUGIN_PATH, PLUGIN_VST2, splitter.join(vst2s))
self.host.set_engine_option(ENGINE_OPTION_PLUGIN_PATH, PLUGIN_VST3, splitter.join(vst3s))
self.host.set_engine_option(ENGINE_OPTION_PLUGIN_PATH, PLUGIN_SF2, splitter.join(sf2s))
self.host.set_engine_option(ENGINE_OPTION_PLUGIN_PATH, PLUGIN_SFZ, splitter.join(sfzs))

@@ -647,6 +661,7 @@ class CarlaSettingsW(QDialog):
settings.setValue(CARLA_KEY_PATHS_DSSI, dssis)
settings.setValue(CARLA_KEY_PATHS_LV2, lv2s)
settings.setValue(CARLA_KEY_PATHS_VST2, vst2s)
settings.setValue(CARLA_KEY_PATHS_VST3, vst3s)
settings.setValue(CARLA_KEY_PATHS_SF2, sf2s)
settings.setValue(CARLA_KEY_PATHS_SFZ, sfzs)

@@ -757,6 +772,15 @@ class CarlaSettingsW(QDialog):
if not path: continue
self.ui.lw_vst.addItem(path)

elif curIndex == self.PATH_INDEX_VST3:
paths = CARLA_DEFAULT_VST3_PATH
paths.sort()
self.ui.lw_vst3.clear()

for path in paths:
if not path: continue
self.ui.lw_vst3.addItem(path)

elif curIndex == self.PATH_INDEX_SF2:
paths = CARLA_DEFAULT_SF2_PATH
paths.sort()
@@ -890,6 +914,8 @@ class CarlaSettingsW(QDialog):
self.ui.lw_lv2.addItem(newPath)
elif curIndex == self.PATH_INDEX_VST2:
self.ui.lw_vst.addItem(newPath)
elif curIndex == self.PATH_INDEX_VST3:
self.ui.lw_vst3.addItem(newPath)
elif curIndex == self.PATH_INDEX_SF2:
self.ui.lw_sf2.addItem(newPath)
elif curIndex == self.PATH_INDEX_SFZ:
@@ -907,6 +933,8 @@ class CarlaSettingsW(QDialog):
self.ui.lw_lv2.takeItem(self.ui.lw_lv2.currentRow())
elif curIndex == self.PATH_INDEX_VST2:
self.ui.lw_vst.takeItem(self.ui.lw_vst.currentRow())
elif curIndex == self.PATH_INDEX_VST3:
self.ui.lw_vst3.takeItem(self.ui.lw_vst3.currentRow())
elif curIndex == self.PATH_INDEX_SF2:
self.ui.lw_sf2.takeItem(self.ui.lw_sf2.currentRow())
elif curIndex == self.PATH_INDEX_SFZ:
@@ -924,6 +952,8 @@ class CarlaSettingsW(QDialog):
currentPath = self.ui.lw_lv2.currentItem().text()
elif curIndex == self.PATH_INDEX_VST2:
currentPath = self.ui.lw_vst.currentItem().text()
elif curIndex == self.PATH_INDEX_VST3:
currentPath = self.ui.lw_vst3.currentItem().text()
elif curIndex == self.PATH_INDEX_SF2:
currentPath = self.ui.lw_sf2.currentItem().text()
elif curIndex == self.PATH_INDEX_SFZ:
@@ -944,6 +974,8 @@ class CarlaSettingsW(QDialog):
self.ui.lw_lv2.currentItem().setText(newPath)
elif curIndex == self.PATH_INDEX_VST2:
self.ui.lw_vst.currentItem().setText(newPath)
elif curIndex == self.PATH_INDEX_VST3:
self.ui.lw_vst3.currentItem().setText(newPath)
elif curIndex == self.PATH_INDEX_SF2:
self.ui.lw_sf2.currentItem().setText(newPath)
elif curIndex == self.PATH_INDEX_SFZ:
@@ -961,6 +993,8 @@ class CarlaSettingsW(QDialog):
row = self.ui.lw_lv2.currentRow()
elif index == self.PATH_INDEX_VST2:
row = self.ui.lw_vst.currentRow()
elif index == self.PATH_INDEX_VST3:
row = self.ui.lw_vst3.currentRow()
elif index == self.PATH_INDEX_SF2:
row = self.ui.lw_sf2.currentRow()
elif index == self.PATH_INDEX_SFZ:


+ 7
- 0
source/frontend/carla_utils.py View File

@@ -175,6 +175,9 @@ class CarlaUtils(object):
self.lib.carla_get_complete_license_text.argtypes = None
self.lib.carla_get_complete_license_text.restype = c_char_p

self.lib.carla_get_juce_version.argtypes = None
self.lib.carla_get_juce_version.restype = c_char_p

self.lib.carla_get_supported_file_extensions.argtypes = None
self.lib.carla_get_supported_file_extensions.restype = POINTER(c_char_p)

@@ -267,6 +270,10 @@ class CarlaUtils(object):
def get_complete_license_text(self):
return charPtrToString(self.lib.carla_get_complete_license_text())

# Get the juce version used in the current Carla build.
def get_juce_version(self):
return charPtrToString(self.lib.carla_get_juce_version())

# Get the list of supported file extensions in carla_load_file().
def get_supported_file_extensions(self):
return charPtrPtrToStringList(self.lib.carla_get_supported_file_extensions())


Loading…
Cancel
Save