diff --git a/c++/carla-backend/carla_backend_standalone.cpp b/c++/carla-backend/carla_backend_standalone.cpp
index c628051..d00c060 100644
--- a/c++/carla-backend/carla_backend_standalone.cpp
+++ b/c++/carla-backend/carla_backend_standalone.cpp
@@ -24,9 +24,58 @@
// Single, standalone engine
static CarlaBackend::CarlaEngine* carlaEngine = nullptr;
static CarlaBackend::CallbackFunc carlaFunc = nullptr;
+static const char* extendedLicenseText = nullptr;
// -------------------------------------------------------------------------------------------------------------------
+const char* get_extended_license_text()
+{
+ qDebug("CarlaBackendStandalone::get_extended_license_text()");
+
+ QString text("
This current Carla build is using the following features and 3rd-party code:
");
+ text += "";
+
+#ifdef WANT_LADSPA
+ text += "- LADSPA plugin support, http://www.ladspa.org/
";
+#endif
+#ifdef WANT_DSSI
+ text += "- DSSI plugin support, http://dssi.sourceforge.net/
";
+#endif
+#ifdef WANT_LV2
+ text += "- LV2 plugin support, http://lv2plug.in/
";
+#endif
+#ifdef WANT_VST
+# ifdef VESTIGE_HEADER
+ text += "- VST plugin support, using VeSTige header by Javier Serrano Polo
";
+# else
+ text += "- VST plugin support, using official VST SDK 2.4 trademark of Steinberg Media Technologies GmbH
";
+# endif
+#endif
+#ifdef WANT_FLUIDSYNTH
+ text += "- FluidSynth library for SF2 support, http://www.fluidsynth.org/
";
+#endif
+#ifdef WANT_LINUXSAMPLER
+ text += "- LinuxSampler library for GIG and SFZ support*, http://www.linuxsampler.org/
";
+#endif
+ text += "- liblo library for OSC support, http://liblo.sourceforge.net/
";
+#ifdef WANT_LV2
+ text += "- serd, sord, sratom and lilv libraries for LV2 discovery, http://drobilla.net/software/lilv/
";
+#endif
+#ifdef CARLA_ENGINE_RTAUDIO
+ text += "- RtAudio and RtMidi libraries for extra Audio and MIDI support, http://www.music.mcgill.ca/~gary/rtaudio/
";
+#endif
+ text += "
";
+
+#ifdef WANT_LINUXSAMPLER
+ text += "(*) Using LinuxSampler code in commercial hardware or software products is not allowed without prior written authorization by the authors.
";
+#endif
+
+ if (! extendedLicenseText)
+ extendedLicenseText = strdup(text.toUtf8().constData());
+
+ return extendedLicenseText;
+}
+
unsigned int get_engine_driver_count()
{
qDebug("CarlaBackendStandalone::get_engine_driver_count()");
@@ -224,6 +273,12 @@ bool engine_close()
delete carlaEngine;
carlaEngine = nullptr;
+ if (extendedLicenseText)
+ {
+ free((void*)extendedLicenseText);
+ extendedLicenseText = nullptr;
+ }
+
return closed;
}
diff --git a/c++/carla-backend/carla_backend_standalone.h b/c++/carla-backend/carla_backend_standalone.h
index 96153ba..bb82596 100644
--- a/c++/carla-backend/carla_backend_standalone.h
+++ b/c++/carla-backend/carla_backend_standalone.h
@@ -95,6 +95,8 @@ struct GuiInfo {
resizable(false) {}
};
+CARLA_EXPORT const char* get_extended_license_text();
+
CARLA_EXPORT unsigned int get_engine_driver_count();
CARLA_EXPORT const char* get_engine_driver_name(unsigned int index);
diff --git a/src/carla.py b/src/carla.py
index 7c09c81..e7b3c97 100755
--- a/src/carla.py
+++ b/src/carla.py
@@ -1070,40 +1070,46 @@ class CarlaAboutW(QDialog, ui_carla_about.Ui_CarlaAboutW):
"
Version %s"
"
Carla is a Multi-Plugin Host for JACK.
"
"
Copyright (C) 2011-2012 falkTX
"
- "
VST is a trademark of Steinberg Media Technologies GmbH."
"" % VERSION))
- host_osc_url = cString(Carla.Host.get_host_osc_url())
- self.le_osc_url.setText(host_osc_url)
+ self.l_extended.setText(cString(Carla.Host.get_extended_license_text()))
+ self.le_osc_url.setText(cString(Carla.Host.get_host_osc_url()))
self.l_osc_cmds.setText(
- " /set_active \n"
- " /set_drywet \n"
- " /set_volume \n"
- " /set_balance_left \n"
- " /set_balance_right \n"
- " /set_parameter \n"
- " /set_program \n"
- " /set_midi_program \n"
- " /note_on \n"
- " /note_off \n"
+ " /set_active \n"
+ " /set_drywet \n"
+ " /set_volume \n"
+ " /set_balance_left \n"
+ " /set_balance_right \n"
+ " /set_parameter_value \n"
+ #" /set_parameter_midi_cc \n"
+ #" /set_parameter_midi_channel \n"
+ " /set_program \n"
+ " /set_midi_program \n"
+ " /note_on \n"
+ " /note_off \n"
)
- self.l_example.setText("/Carla/2/set_parameter 2 0.5")
- self.l_example_help.setText("(as in this example, \"2\" is the plugin number)")
+ self.l_example.setText("/Carla/2/set_parameter_value 5 1.0")
+ self.l_example_help.setText("(as in this example, \"2\" is the plugin number and \"5\" the parameter)")
self.l_ladspa.setText(self.tr("Everything! (Including LRDF)"))
self.l_dssi.setText(self.tr("Everything! (Including CustomData/Chunks)"))
- self.l_lv2.setText(self.tr("About 95% complete (only missing minor features).
"
+ self.l_lv2.setText(self.tr("About 95% complete (using custom extensions).
"
"Implemented Feature/Extensions:"
""
"- http://lv2plug.in/ns/ext/atom
"
+ "- http://lv2plug.in/ns/ext/buf-size
"
"- http://lv2plug.in/ns/ext/data-access
"
+ #"- http://lv2plug.in/ns/ext/dynmanifest
"
"- http://lv2plug.in/ns/ext/event
"
"- http://lv2plug.in/ns/ext/instance-access
"
"- http://lv2plug.in/ns/ext/log
"
"- http://lv2plug.in/ns/ext/midi
"
+ "- http://lv2plug.in/ns/ext/options
"
+ #"- http://lv2plug.in/ns/ext/parameters
"
"- http://lv2plug.in/ns/ext/patch
"
+ #"- http://lv2plug.in/ns/ext/port-groups
"
"- http://lv2plug.in/ns/ext/port-props
"
#"- http://lv2plug.in/ns/ext/presets
"
"- http://lv2plug.in/ns/ext/state
"
@@ -1113,12 +1119,11 @@ class CarlaAboutW(QDialog, ui_carla_about.Ui_CarlaAboutW):
"- http://lv2plug.in/ns/ext/worker
"
"- http://lv2plug.in/ns/extensions/ui
"
"- http://lv2plug.in/ns/extensions/units
"
- #"- http://home.gna.org/lv2dynparam/v1
"
- "- http://home.gna.org/lv2dynparam/rtmempool/v1
"
+ "- http://kxstudio.sf.net/ns/lv2ext/external-ui
"
"- http://kxstudio.sf.net/ns/lv2ext/programs
"
- #"- http://ll-plugins.nongnu.org/lv2/ext/midimap
"
+ "- http://kxstudio.sf.net/ns/lv2ext/rtmempool
"
+ "- http://ll-plugins.nongnu.org/lv2/ext/midimap
"
"- http://ll-plugins.nongnu.org/lv2/ext/miditype
"
- "- http://nedko.arnaudov.name/lv2/external_ui/
"
"
"))
self.l_vst.setText(self.tr("About 85% complete (missing vst bank/presets and some minor stuff)
"))
diff --git a/src/carla_backend.py b/src/carla_backend.py
index cf2db33..5238605 100644
--- a/src/carla_backend.py
+++ b/src/carla_backend.py
@@ -762,6 +762,9 @@ class Host(object):
self.lib = cdll.LoadLibrary(carla_library_path)
+ self.lib.get_extended_license_text.argtypes = None
+ self.lib.get_extended_license_text.restype = c_char_p
+
self.lib.get_engine_driver_count.argtypes = None
self.lib.get_engine_driver_count.restype = c_uint
@@ -945,6 +948,9 @@ class Host(object):
self.lib.nsm_reply_save.argtypes = None
self.lib.nsm_reply_save.restype = None
+ def get_extended_license_text(self):
+ return self.lib.get_extended_license_text()
+
def get_engine_driver_count(self):
return self.lib.get_engine_driver_count()
diff --git a/src/ui/carla_about.ui b/src/ui/carla_about.ui
index cce49c9..d3a612e 100644
--- a/src/ui/carla_about.ui
+++ b/src/ui/carla_about.ui
@@ -7,7 +7,7 @@
0
0
484
- 252
+ 433
@@ -24,30 +24,14 @@
About
- -
-
-
- Qt::Horizontal
-
-
- QSizePolicy::Fixed
-
-
-
- 100
- 20
-
-
-
-
-
- about text here
+ About text here
- -
+
-
Qt::Vertical
@@ -60,8 +44,22 @@
- -
-
+
-
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
@@ -73,7 +71,7 @@
- -
+
-
Qt::Vertical
@@ -86,6 +84,16 @@
+ -
+
+
+ Extended licensing here
+
+
+ true
+
+
+