Audio plugin host https://kx.studio/carla
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
7.6KB

  1. // SPDX-FileCopyrightText: 2011-2025 Filipe Coelho <falktx@falktx.com>
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "aboutdialog.hpp"
  4. #include "CarlaHost.h"
  5. // --------------------------------------------------------------------------------------------------------------------
  6. // About Dialog
  7. AboutDialog::AboutDialog(QWidget* const parent,
  8. const CarlaHostHandle hostHandle,
  9. const bool isControl,
  10. const bool isPlugin)
  11. : QDialog(parent)
  12. {
  13. ui.setupUi(this);
  14. QString extraInfo;
  15. if (isControl)
  16. extraInfo = QString(" - <b>%1</b>").arg(tr("OSC Bridge Version"));
  17. else if (isPlugin)
  18. extraInfo = QString(" - <b>%1</b>").arg(tr("Plugin Version"));
  19. ui.l_about->setText(tr(""
  20. "<br>Version %1"
  21. "<br>Carla is a fully-featured audio plugin host%2.<br>"
  22. "<br>Copyright (C) 2011-2025 falkTX<br>"
  23. "").arg(CARLA_VERSION_STRING).arg(extraInfo));
  24. if (ui.about->palette().color(QPalette::Window).blackF() < 0.5)
  25. {
  26. ui.l_icons->setPixmap(QPixmap(":/bitmaps/carla_about_black.png"));
  27. ui.ico_example_edit->setPixmap(QPixmap(":/bitmaps/button_file-black.png"));
  28. ui.ico_example_file->setPixmap(QPixmap(":/scalable/button_edit-black.svg"));
  29. ui.ico_example_gui->setPixmap(QPixmap(":/bitmaps/button_gui-black.png"));
  30. }
  31. if (isControl || isPlugin)
  32. {
  33. ui.l_extended->hide();
  34. ui.tabWidget->removeTab(3);
  35. ui.tabWidget->removeTab(2);
  36. }
  37. #ifndef STATIC_PLUGIN_TARGET
  38. else if (carla_is_engine_running(hostHandle))
  39. {
  40. ui.le_osc_url_tcp->setText(carla_get_host_osc_url_tcp(hostHandle));
  41. ui.le_osc_url_udp->setText(carla_get_host_osc_url_udp(hostHandle));
  42. }
  43. #endif
  44. else
  45. {
  46. ui.le_osc_url_tcp->setText(tr("(Engine not running)"));
  47. ui.le_osc_url_udp->setText(tr("(Engine not running)"));
  48. }
  49. ui.l_extended->setText(carla_get_complete_license_text());
  50. ui.l_osc_cmds->setText("<table>"
  51. "<tr><td>" "/set_active" "&nbsp;</td><td>&lt;i-value&gt;</td></tr>"
  52. "<tr><td>" "/set_drywet" "&nbsp;</td><td>&lt;f-value&gt;</td></tr>"
  53. "<tr><td>" "/set_volume" "&nbsp;</td><td>&lt;f-value&gt;</td></tr>"
  54. "<tr><td>" "/set_balance_left" "&nbsp;</td><td>&lt;f-value&gt;</td></tr>"
  55. "<tr><td>" "/set_balance_right" "&nbsp;</td><td>&lt;f-value&gt;</td></tr>"
  56. "<tr><td>" "/set_panning" "&nbsp;</td><td>&lt;f-value&gt;</td></tr>"
  57. "<tr><td>" "/set_parameter_value" "&nbsp;</td><td>&lt;i-index&gt; &lt;f-value&gt;</td></tr>"
  58. "<tr><td>" "/set_parameter_midi_cc" "&nbsp;</td><td>&lt;i-index&gt; &lt;i-cc&gt;</td></tr>"
  59. "<tr><td>" "/set_parameter_midi_channel" "&nbsp;</td><td>&lt;i-index&gt; &lt;i-channel&gt;</td></tr>"
  60. "<tr><td>" "/set_program" "&nbsp;</td><td>&lt;i-index&gt;</td></tr>"
  61. "<tr><td>" "/set_midi_program" "&nbsp;</td><td>&lt;i-index&gt;</td></tr>"
  62. "<tr><td>" "/note_on" "&nbsp;</td><td>&lt;i-channel&gt; &lt;i-note&gt; &lt;i-velo&gt;</td></tr>"
  63. "<tr><td>" "/note_off" "&nbsp;</td><td>&lt;i-channel&gt; &lt;i-note</td></tr>"
  64. "</table>");
  65. ui.l_example->setText("/Carla/2/set_parameter_value 5 1.0");
  66. ui.l_example_help->setText("<i>(as in this example, \"2\" is the plugin number and \"5\" the parameter)</i>");
  67. ui.l_ladspa->setText(tr("Everything! (Including LRDF)"));
  68. ui.l_dssi->setText(tr("Everything! (Including CustomData/Chunks)"));
  69. ui.l_lv2->setText(tr("About 110&#37; complete (using custom extensions)<br/>"
  70. "Implemented Feature/Extensions:"
  71. "<ul>"
  72. "<li>http://lv2plug.in/ns/ext/atom</li>"
  73. "<li>http://lv2plug.in/ns/ext/buf-size</li>"
  74. "<li>http://lv2plug.in/ns/ext/data-access</li>"
  75. // "<li>http://lv2plug.in/ns/ext/dynmanifest</li>"
  76. "<li>http://lv2plug.in/ns/ext/event</li>"
  77. "<li>http://lv2plug.in/ns/ext/instance-access</li>"
  78. "<li>http://lv2plug.in/ns/ext/log</li>"
  79. "<li>http://lv2plug.in/ns/ext/midi</li>"
  80. // "<li>http://lv2plug.in/ns/ext/morph</li>"
  81. "<li>http://lv2plug.in/ns/ext/options</li>"
  82. "<li>http://lv2plug.in/ns/ext/parameters</li>"
  83. // "<li>http://lv2plug.in/ns/ext/patch</li>"
  84. // "<li>http://lv2plug.in/ns/ext/port-groups</li>"
  85. "<li>http://lv2plug.in/ns/ext/port-props</li>"
  86. "<li>http://lv2plug.in/ns/ext/presets</li>"
  87. "<li>http://lv2plug.in/ns/ext/resize-port</li>"
  88. "<li>http://lv2plug.in/ns/ext/state</li>"
  89. "<li>http://lv2plug.in/ns/ext/time</li>"
  90. "<li>http://lv2plug.in/ns/ext/uri-map</li>"
  91. "<li>http://lv2plug.in/ns/ext/urid</li>"
  92. "<li>http://lv2plug.in/ns/ext/worker</li>"
  93. "<li>http://lv2plug.in/ns/extensions/ui</li>"
  94. "<li>http://lv2plug.in/ns/extensions/units</li>"
  95. "<li>http://home.gna.org/lv2dynparam/rtmempool/v1</li>"
  96. "<li>http://kxstudio.sf.net/ns/lv2ext/external-ui</li>"
  97. "<li>http://kxstudio.sf.net/ns/lv2ext/programs</li>"
  98. "<li>http://kxstudio.sf.net/ns/lv2ext/props</li>"
  99. "<li>http://kxstudio.sf.net/ns/lv2ext/rtmempool</li>"
  100. "<li>http://ll-plugins.nongnu.org/lv2/ext/midimap</li>"
  101. "<li>http://ll-plugins.nongnu.org/lv2/ext/miditype</li>"
  102. "</ul>"));
  103. ui.l_vst2->setText(tr("About 85&#37; complete (missing vst bank/presets and some minor stuff)"));
  104. ui.l_vst3->setText(tr("About 66&#37; complete"));
  105. #ifdef CARLA_OS_MAC
  106. ui.l_au->setText(tr("About 20&#37; complete"));
  107. #else
  108. ui.line_vst3->hide();
  109. ui.l_au->hide();
  110. ui.lid_au->hide();
  111. #endif
  112. // 3rd tab is usually longer than the 1st, adjust appropriately
  113. ui.tabWidget->setCurrentIndex(2);
  114. adjustSize();
  115. ui.tabWidget->setCurrentIndex(0);
  116. setFixedSize(size());
  117. Qt::WindowFlags flags = windowFlags();
  118. flags &= ~Qt::WindowContextHelpButtonHint;
  119. #ifdef CARLA_OS_WIN
  120. flags |= Qt::MSWindowsFixedSizeDialogHint;
  121. #endif
  122. setWindowFlags(flags);
  123. #ifdef CARLA_OS_MAC
  124. if (parent != nullptr)
  125. setWindowModality(Qt::WindowModal);
  126. #endif
  127. }
  128. // --------------------------------------------------------------------------------------------------------------------