Browse Source

Carla: Rework about dialog, add extended license info

tags/v0.9.0
falkTX 13 years ago
parent
commit
1cb287910e
5 changed files with 118 additions and 42 deletions
  1. +55
    -0
      c++/carla-backend/carla_backend_standalone.cpp
  2. +2
    -0
      c++/carla-backend/carla_backend_standalone.h
  3. +25
    -20
      src/carla.py
  4. +6
    -0
      src/carla_backend.py
  5. +30
    -22
      src/ui/carla_about.ui

+ 55
- 0
c++/carla-backend/carla_backend_standalone.cpp View File

@@ -24,9 +24,58 @@
// Single, standalone engine // Single, standalone engine
static CarlaBackend::CarlaEngine* carlaEngine = nullptr; static CarlaBackend::CarlaEngine* carlaEngine = nullptr;
static CarlaBackend::CallbackFunc carlaFunc = 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() unsigned int get_engine_driver_count()
{ {
qDebug("CarlaBackendStandalone::get_engine_driver_count()"); qDebug("CarlaBackendStandalone::get_engine_driver_count()");
@@ -224,6 +273,12 @@ bool engine_close()
delete carlaEngine; delete carlaEngine;
carlaEngine = nullptr; carlaEngine = nullptr;


if (extendedLicenseText)
{
free((void*)extendedLicenseText);
extendedLicenseText = nullptr;
}

return closed; return closed;
} }




+ 2
- 0
c++/carla-backend/carla_backend_standalone.h View File

@@ -95,6 +95,8 @@ struct GuiInfo {
resizable(false) {} resizable(false) {}
}; };


CARLA_EXPORT const char* get_extended_license_text();

CARLA_EXPORT unsigned int get_engine_driver_count(); CARLA_EXPORT unsigned int get_engine_driver_count();
CARLA_EXPORT const char* get_engine_driver_name(unsigned int index); CARLA_EXPORT const char* get_engine_driver_name(unsigned int index);




+ 25
- 20
src/carla.py View File

@@ -1070,40 +1070,46 @@ class CarlaAboutW(QDialog, ui_carla_about.Ui_CarlaAboutW):
"<br>Version %s" "<br>Version %s"
"<br>Carla is a Multi-Plugin Host for JACK.<br>" "<br>Carla is a Multi-Plugin Host for JACK.<br>"
"<br>Copyright (C) 2011-2012 falkTX<br>" "<br>Copyright (C) 2011-2012 falkTX<br>"
"<br><i>VST is a trademark of Steinberg Media Technologies GmbH.</i>"
"" % VERSION)) "" % 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( 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_ladspa.setText(self.tr("Everything! (Including LRDF)"))
self.l_dssi.setText(self.tr("Everything! (Including CustomData/Chunks)")) self.l_dssi.setText(self.tr("Everything! (Including CustomData/Chunks)"))
self.l_lv2.setText(self.tr("About 95&#37; complete (only missing minor features).<br/>"
self.l_lv2.setText(self.tr("About 95&#37; complete (using custom extensions).<br/>"
"Implemented Feature/Extensions:" "Implemented Feature/Extensions:"
"<ul>" "<ul>"
"<li>http://lv2plug.in/ns/ext/atom</li>" "<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/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/event</li>"
"<li>http://lv2plug.in/ns/ext/instance-access</li>" "<li>http://lv2plug.in/ns/ext/instance-access</li>"
"<li>http://lv2plug.in/ns/ext/log</li>" "<li>http://lv2plug.in/ns/ext/log</li>"
"<li>http://lv2plug.in/ns/ext/midi</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/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/port-props</li>"
#"<li>http://lv2plug.in/ns/ext/presets</li>" #"<li>http://lv2plug.in/ns/ext/presets</li>"
"<li>http://lv2plug.in/ns/ext/state</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/ext/worker</li>"
"<li>http://lv2plug.in/ns/extensions/ui</li>" "<li>http://lv2plug.in/ns/extensions/ui</li>"
"<li>http://lv2plug.in/ns/extensions/units</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://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://ll-plugins.nongnu.org/lv2/ext/miditype</li>"
"<li>http://nedko.arnaudov.name/lv2/external_ui/</li>"
"</ul>")) "</ul>"))
self.l_vst.setText(self.tr("<p>About 85&#37; complete (missing vst bank/presets and some minor stuff)</p>")) self.l_vst.setText(self.tr("<p>About 85&#37; complete (missing vst bank/presets and some minor stuff)</p>"))




+ 6
- 0
src/carla_backend.py View File

@@ -762,6 +762,9 @@ class Host(object):


self.lib = cdll.LoadLibrary(carla_library_path) 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.argtypes = None
self.lib.get_engine_driver_count.restype = c_uint 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.argtypes = None
self.lib.nsm_reply_save.restype = 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): def get_engine_driver_count(self):
return self.lib.get_engine_driver_count() return self.lib.get_engine_driver_count()




+ 30
- 22
src/ui/carla_about.ui View File

@@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>484</width> <width>484</width>
<height>252</height>
<height>433</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -24,30 +24,14 @@
<string>About</string> <string>About</string>
</attribute> </attribute>
<layout class="QGridLayout" name="gridLayout_3"> <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"> <item row="2" column="1">
<widget class="QLabel" name="l_about"> <widget class="QLabel" name="l_about">
<property name="text"> <property name="text">
<string>about text here</string>
<string>About text here</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="0" colspan="2">
<item row="7" column="0" colspan="2">
<spacer name="verticalSpacer"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@@ -60,8 +44,22 @@
</property> </property>
</spacer> </spacer>
</item> </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"> <property name="text">
<string/> <string/>
</property> </property>
@@ -73,7 +71,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0" colspan="2">
<item row="0" column="0" colspan="3">
<spacer name="verticalSpacer_4"> <spacer name="verticalSpacer_4">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@@ -86,6 +84,16 @@
</property> </property>
</spacer> </spacer>
</item> </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> </layout>
</widget> </widget>
<widget class="QWidget" name="features"> <widget class="QWidget" name="features">


Loading…
Cancel
Save