| @@ -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("<p>This current Carla build is using the following features and 3rd-party code:</p>"); | |||
| text += "<ul>"; | |||
| #ifdef WANT_LADSPA | |||
| text += "<li>LADSPA plugin support, http://www.ladspa.org/</li>"; | |||
| #endif | |||
| #ifdef WANT_DSSI | |||
| text += "<li>DSSI plugin support, http://dssi.sourceforge.net/</li>"; | |||
| #endif | |||
| #ifdef WANT_LV2 | |||
| text += "<li>LV2 plugin support, http://lv2plug.in/</li>"; | |||
| #endif | |||
| #ifdef WANT_VST | |||
| # ifdef VESTIGE_HEADER | |||
| text += "<li>VST plugin support, using VeSTige header by Javier Serrano Polo</li>"; | |||
| # else | |||
| text += "<li>VST plugin support, using official VST SDK 2.4 trademark of Steinberg Media Technologies GmbH</li>"; | |||
| # endif | |||
| #endif | |||
| #ifdef WANT_FLUIDSYNTH | |||
| text += "<li>FluidSynth library for SF2 support, http://www.fluidsynth.org/</li>"; | |||
| #endif | |||
| #ifdef WANT_LINUXSAMPLER | |||
| text += "<li>LinuxSampler library for GIG and SFZ support*, http://www.linuxsampler.org/</li>"; | |||
| #endif | |||
| text += "<li>liblo library for OSC support, http://liblo.sourceforge.net/</li>"; | |||
| #ifdef WANT_LV2 | |||
| text += "<li>serd, sord, sratom and lilv libraries for LV2 discovery, http://drobilla.net/software/lilv/</li>"; | |||
| #endif | |||
| #ifdef CARLA_ENGINE_RTAUDIO | |||
| text += "<li>RtAudio and RtMidi libraries for extra Audio and MIDI support, http://www.music.mcgill.ca/~gary/rtaudio/</li>"; | |||
| #endif | |||
| text += "</ul>"; | |||
| #ifdef WANT_LINUXSAMPLER | |||
| text += "<p>(*) Using LinuxSampler code in commercial hardware or software products is not allowed without prior written authorization by the authors.</p>"; | |||
| #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; | |||
| } | |||
| @@ -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); | |||
| @@ -1070,40 +1070,46 @@ class CarlaAboutW(QDialog, ui_carla_about.Ui_CarlaAboutW): | |||
| "<br>Version %s" | |||
| "<br>Carla is a Multi-Plugin Host for JACK.<br>" | |||
| "<br>Copyright (C) 2011-2012 falkTX<br>" | |||
| "<br><i>VST is a trademark of Steinberg Media Technologies GmbH.</i>" | |||
| "" % 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 <i-value>\n" | |||
| " /set_drywet <f-value>\n" | |||
| " /set_volume <f-value>\n" | |||
| " /set_balance_left <f-value>\n" | |||
| " /set_balance_right <f-value>\n" | |||
| " /set_parameter <i-index> <f-value>\n" | |||
| " /set_program <i-index>\n" | |||
| " /set_midi_program <i-index>\n" | |||
| " /note_on <i-note> <i-velo>\n" | |||
| " /note_off <i-note>\n" | |||
| " /set_active <i-value>\n" | |||
| " /set_drywet <d-value>\n" | |||
| " /set_volume <d-value>\n" | |||
| " /set_balance_left <d-value>\n" | |||
| " /set_balance_right <d-value>\n" | |||
| " /set_parameter_value <i-index> <d-value>\n" | |||
| #" /set_parameter_midi_cc <i-index> <i-cc>\n" | |||
| #" /set_parameter_midi_channel <i-index> <i-channel>\n" | |||
| " /set_program <i-index>\n" | |||
| " /set_midi_program <i-index>\n" | |||
| " /note_on <i-note> <i-velo>\n" | |||
| " /note_off <i-note>\n" | |||
| ) | |||
| self.l_example.setText("/Carla/2/set_parameter 2 0.5") | |||
| self.l_example_help.setText("<i>(as in this example, \"2\" is the plugin number)</i>") | |||
| self.l_example.setText("/Carla/2/set_parameter_value 5 1.0") | |||
| self.l_example_help.setText("<i>(as in this example, \"2\" is the plugin number and \"5\" the parameter)</i>") | |||
| 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).<br/>" | |||
| self.l_lv2.setText(self.tr("About 95% complete (using custom extensions).<br/>" | |||
| "Implemented Feature/Extensions:" | |||
| "<ul>" | |||
| "<li>http://lv2plug.in/ns/ext/atom</li>" | |||
| "<li>http://lv2plug.in/ns/ext/buf-size</li>" | |||
| "<li>http://lv2plug.in/ns/ext/data-access</li>" | |||
| #"<li>http://lv2plug.in/ns/ext/dynmanifest</li>" | |||
| "<li>http://lv2plug.in/ns/ext/event</li>" | |||
| "<li>http://lv2plug.in/ns/ext/instance-access</li>" | |||
| "<li>http://lv2plug.in/ns/ext/log</li>" | |||
| "<li>http://lv2plug.in/ns/ext/midi</li>" | |||
| "<li>http://lv2plug.in/ns/ext/options</li>" | |||
| #"<li>http://lv2plug.in/ns/ext/parameters</li>" | |||
| "<li>http://lv2plug.in/ns/ext/patch</li>" | |||
| #"<li>http://lv2plug.in/ns/ext/port-groups</li>" | |||
| "<li>http://lv2plug.in/ns/ext/port-props</li>" | |||
| #"<li>http://lv2plug.in/ns/ext/presets</li>" | |||
| "<li>http://lv2plug.in/ns/ext/state</li>" | |||
| @@ -1113,12 +1119,11 @@ class CarlaAboutW(QDialog, ui_carla_about.Ui_CarlaAboutW): | |||
| "<li>http://lv2plug.in/ns/ext/worker</li>" | |||
| "<li>http://lv2plug.in/ns/extensions/ui</li>" | |||
| "<li>http://lv2plug.in/ns/extensions/units</li>" | |||
| #"<li>http://home.gna.org/lv2dynparam/v1</li>" | |||
| "<li>http://home.gna.org/lv2dynparam/rtmempool/v1</li>" | |||
| "<li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li>" | |||
| "<li>http://kxstudio.sf.net/ns/lv2ext/programs</li>" | |||
| #"<li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li>" | |||
| "<li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li>" | |||
| "<li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li>" | |||
| "<li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li>" | |||
| "<li>http://nedko.arnaudov.name/lv2/external_ui/</li>" | |||
| "</ul>")) | |||
| self.l_vst.setText(self.tr("<p>About 85% complete (missing vst bank/presets and some minor stuff)</p>")) | |||
| @@ -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() | |||
| @@ -7,7 +7,7 @@ | |||
| <x>0</x> | |||
| <y>0</y> | |||
| <width>484</width> | |||
| <height>252</height> | |||
| <height>433</height> | |||
| </rect> | |||
| </property> | |||
| <property name="windowTitle"> | |||
| @@ -24,30 +24,14 @@ | |||
| <string>About</string> | |||
| </attribute> | |||
| <layout class="QGridLayout" name="gridLayout_3"> | |||
| <item row="2" column="0"> | |||
| <spacer name="horizontalSpacer"> | |||
| <property name="orientation"> | |||
| <enum>Qt::Horizontal</enum> | |||
| </property> | |||
| <property name="sizeType"> | |||
| <enum>QSizePolicy::Fixed</enum> | |||
| </property> | |||
| <property name="sizeHint" stdset="0"> | |||
| <size> | |||
| <width>100</width> | |||
| <height>20</height> | |||
| </size> | |||
| </property> | |||
| </spacer> | |||
| </item> | |||
| <item row="2" column="1"> | |||
| <widget class="QLabel" name="l_about"> | |||
| <property name="text"> | |||
| <string>about text here</string> | |||
| <string>About text here</string> | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="4" column="0" colspan="2"> | |||
| <item row="7" column="0" colspan="2"> | |||
| <spacer name="verticalSpacer"> | |||
| <property name="orientation"> | |||
| <enum>Qt::Vertical</enum> | |||
| @@ -60,8 +44,22 @@ | |||
| </property> | |||
| </spacer> | |||
| </item> | |||
| <item row="1" column="0" colspan="2"> | |||
| <widget class="QLabel" name="label_8"> | |||
| <item row="2" column="0"> | |||
| <spacer name="horizontalSpacer"> | |||
| <property name="orientation"> | |||
| <enum>Qt::Horizontal</enum> | |||
| </property> | |||
| </spacer> | |||
| </item> | |||
| <item row="2" column="2"> | |||
| <spacer name="horizontalSpacer_2"> | |||
| <property name="orientation"> | |||
| <enum>Qt::Horizontal</enum> | |||
| </property> | |||
| </spacer> | |||
| </item> | |||
| <item row="1" column="0" colspan="3"> | |||
| <widget class="QLabel" name="l_icons"> | |||
| <property name="text"> | |||
| <string/> | |||
| </property> | |||
| @@ -73,7 +71,7 @@ | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| <item row="0" column="0" colspan="2"> | |||
| <item row="0" column="0" colspan="3"> | |||
| <spacer name="verticalSpacer_4"> | |||
| <property name="orientation"> | |||
| <enum>Qt::Vertical</enum> | |||
| @@ -86,6 +84,16 @@ | |||
| </property> | |||
| </spacer> | |||
| </item> | |||
| <item row="3" column="0" colspan="3"> | |||
| <widget class="QLabel" name="l_extended"> | |||
| <property name="text"> | |||
| <string>Extended licensing here</string> | |||
| </property> | |||
| <property name="wordWrap"> | |||
| <bool>true</bool> | |||
| </property> | |||
| </widget> | |||
| </item> | |||
| </layout> | |||
| </widget> | |||
| <widget class="QWidget" name="features"> | |||