Signed-off-by: falkTX <falktx@falktx.com>tags/22.02
| @@ -175,6 +175,21 @@ jobs: | |||
| path: | | |||
| *.tar.gz | |||
| linux-x86_64-headless: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| - uses: actions/checkout@v2 | |||
| with: | |||
| submodules: recursive | |||
| - name: Set up dependencies | |||
| run: | | |||
| sudo apt-get update -qq | |||
| sudo apt-get install -yqq libasound2-dev libgl1-mesa-dev liblo-dev libpulse-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev | |||
| - name: Build linux x86_64 (headless) | |||
| run: | | |||
| make features | |||
| make HEADLESS=true -j $(nproc) | |||
| linux-x86_64-sysdeps: | |||
| runs-on: ubuntu-20.04 | |||
| steps: | |||
| @@ -65,6 +65,13 @@ ifneq ($(HAVE_XRANDR),true) | |||
| $(warning Xrandr dependency not installed/available) | |||
| endif | |||
| else | |||
| CARLA_EXTRA_ARGS += HAVE_OPENGL=false | |||
| CARLA_EXTRA_ARGS += HAVE_X11=false | |||
| CARLA_EXTRA_ARGS += HAVE_XEXT=false | |||
| CARLA_EXTRA_ARGS += HAVE_XRANDR=false | |||
| endif | |||
| endif | |||
| @@ -0,0 +1,128 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
| <svg | |||
| width="131.44501mm" | |||
| height="128.5mm" | |||
| viewBox="0 0 131.44501 128.5" | |||
| version="1.1" | |||
| id="svg4620" | |||
| inkscape:version="1.1.1 (c3084ef, 2021-09-22)" | |||
| sodipodi:docname="glBars.svg" | |||
| xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
| xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
| xmlns:xlink="http://www.w3.org/1999/xlink" | |||
| xmlns="http://www.w3.org/2000/svg" | |||
| xmlns:svg="http://www.w3.org/2000/svg" | |||
| xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
| xmlns:cc="http://creativecommons.org/ns#" | |||
| xmlns:dc="http://purl.org/dc/elements/1.1/"> | |||
| <defs | |||
| id="defs4614"> | |||
| <linearGradient | |||
| gradientTransform="matrix(2.8749528,0,0,1,5.1153789e-6,168.49892)" | |||
| inkscape:collect="always" | |||
| xlink:href="#linearGradient869" | |||
| id="linearGradient871" | |||
| x1="22.450642" | |||
| y1="0.64095056" | |||
| x2="22.450642" | |||
| y2="129.73215" | |||
| gradientUnits="userSpaceOnUse" /> | |||
| <linearGradient | |||
| inkscape:collect="always" | |||
| id="linearGradient869"> | |||
| <stop | |||
| style="stop-color:#181919;stop-opacity:1;" | |||
| offset="0" | |||
| id="stop865" /> | |||
| <stop | |||
| style="stop-color:#212222;stop-opacity:1" | |||
| offset="1" | |||
| id="stop867" /> | |||
| </linearGradient> | |||
| <style | |||
| id="style6" | |||
| type="text/css"> | |||
| .str0 {stroke:#565656;stroke-width:0.0966867} | |||
| .str1 {stroke:#4F4F4F;stroke-width:0.193345} | |||
| .fil0 {fill:none} | |||
| .fil2 {fill:#2B2A29} | |||
| .fil1 {fill:#6B6B6B} | |||
| </style> | |||
| </defs> | |||
| <sodipodi:namedview | |||
| id="base" | |||
| pagecolor="#ffffff" | |||
| bordercolor="#666666" | |||
| borderopacity="1.0" | |||
| inkscape:pageopacity="0.0" | |||
| inkscape:pageshadow="2" | |||
| inkscape:zoom="5.6568543" | |||
| inkscape:cx="15.556349" | |||
| inkscape:cy="51.176853" | |||
| inkscape:document-units="mm" | |||
| inkscape:current-layer="layer1" | |||
| showgrid="false" | |||
| inkscape:window-width="1229" | |||
| inkscape:window-height="667" | |||
| inkscape:window-x="51" | |||
| inkscape:window-y="25" | |||
| inkscape:window-maximized="1" | |||
| inkscape:pagecheckerboard="0" | |||
| width="45.72mm" | |||
| units="in" /> | |||
| <metadata | |||
| id="metadata4617"> | |||
| <rdf:RDF> | |||
| <cc:Work | |||
| rdf:about=""> | |||
| <dc:format>image/svg+xml</dc:format> | |||
| <dc:type | |||
| rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
| </cc:Work> | |||
| </rdf:RDF> | |||
| </metadata> | |||
| <g | |||
| inkscape:label="Layer 1" | |||
| inkscape:groupmode="layer" | |||
| id="layer1" | |||
| transform="translate(0,-168.5)"> | |||
| <rect | |||
| style="opacity:1;fill:url(#linearGradient871);fill-opacity:1;stroke-width:0.533853;stroke-miterlimit:4;stroke-dasharray:none" | |||
| id="rect815" | |||
| width="131.44411" | |||
| height="128.49823" | |||
| x="0" | |||
| y="168.50089" /> | |||
| <g | |||
| style="fill-rule:evenodd" | |||
| id="g5299" | |||
| transform="matrix(6.342689,0,0,6.342689,1.7430866,175.6457)"> | |||
| <g | |||
| transform="translate(-1.6191379e-5,-0.08553947)" | |||
| id="Layer_x0020_1" | |||
| inkscape:label="Layer 1" | |||
| inkscape:groupmode="layer"> | |||
| <metadata | |||
| id="CorelCorpID_0Corel-Layer" /> | |||
| <circle | |||
| style="fill:none;stroke:#ffffff;stroke-width:0.0966867;stroke-opacity:1" | |||
| id="circle10" | |||
| r="0.15916" | |||
| cy="0.61075097" | |||
| cx="0.525226" | |||
| class="fil0 str0" /> | |||
| <circle | |||
| style="fill:none;stroke:#ffffff;stroke-width:0.193345;stroke-opacity:1" | |||
| id="circle12" | |||
| r="0.42853901" | |||
| cy="0.61075097" | |||
| cx="0.525226" | |||
| class="fil0 str1" /> | |||
| </g> | |||
| </g> | |||
| </g> | |||
| </svg> | |||
| @@ -15,10 +15,13 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #include "ImGuiWidget.hpp" | |||
| #include "plugincontext.hpp" | |||
| #include "extra/ScopedPointer.hpp" | |||
| #include "extra/Thread.hpp" | |||
| #ifndef HEADLESS | |||
| # include "ImGuiWidget.hpp" | |||
| # include "extra/ScopedPointer.hpp" | |||
| # include "extra/Thread.hpp" | |||
| #endif | |||
| #include "CarlaNativePlugin.h" | |||
| #include "CarlaBackendUtils.hpp" | |||
| @@ -350,6 +353,7 @@ static intptr_t host_dispatcher(const NativeHostHandle handle, const NativeHostD | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| #ifndef HEADLESS | |||
| struct IldaeilWidget : ImGuiWidget, Thread { | |||
| static constexpr const uint kButtonHeight = 20; | |||
| @@ -1168,6 +1172,11 @@ struct IldaeilModuleWidget : ModuleWidget { | |||
| addOutput(createOutput<PJ301MPort>(Vec(3, 54 + 90), module, IldaeilModule::OUTPUT2)); | |||
| } | |||
| }; | |||
| #else | |||
| static void host_ui_parameter_changed(NativeHostHandle, uint32_t, float) {} | |||
| static const char* host_ui_open_file(NativeHostHandle, bool, const char*, const char*) { return nullptr; } | |||
| typedef ModuleWidget IldaeilModuleWidget; | |||
| #endif | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| @@ -82,17 +82,12 @@ struct glBarsRendererWidget : OpenGlWidget { | |||
| glBars->state.Render(); | |||
| } | |||
| }; | |||
| #endif | |||
| struct glBarsWidget : ModuleWidget { | |||
| #ifndef HEADLESS | |||
| glBarsRendererWidget* const glBarsRenderer; | |||
| #endif | |||
| glBarsWidget(glBarsModule* const module) | |||
| #ifndef HEADLESS | |||
| : glBarsRenderer(new glBarsRendererWidget(module)) | |||
| #endif | |||
| { | |||
| setModule(module); | |||
| setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/glBars.svg"))); | |||
| @@ -102,14 +97,15 @@ struct glBarsWidget : ModuleWidget { | |||
| addChild(createWidget<ScrewBlack>(Vec(RACK_GRID_WIDTH, 0))); | |||
| addChild(createWidget<ScrewBlack>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||
| #ifndef HEADLESS | |||
| glBarsRenderer->box.pos = Vec(2 * RACK_GRID_WIDTH, 0); | |||
| glBarsRenderer->box.size = Vec(box.size.x - 2 * RACK_GRID_WIDTH, box.size.y); | |||
| addChild(glBarsRenderer); | |||
| #endif | |||
| addInput(createInput<PJ301MPort>(Vec(3, 54), module, glBarsModule::IN1_INPUT)); | |||
| } | |||
| }; | |||
| #else | |||
| typedef ModuleWidget glBarsWidget; | |||
| #endif | |||
| Model* modelGlBars = createModel<glBarsModule, glBarsWidget>("glBars"); | |||
| @@ -177,8 +177,16 @@ PLUGIN_FILES = plugins.cpp | |||
| # -------------------------------------------------------------- | |||
| # Cardinal (built-in) | |||
| PLUGIN_FILES += $(wildcard Cardinal/src/*.cpp) | |||
| PLUGIN_FILES += $(wildcard Cardinal/src/*/*.cpp) | |||
| PLUGIN_FILES += Cardinal/src/Carla.cpp | |||
| PLUGIN_FILES += Cardinal/src/glBars.cpp | |||
| PLUGIN_FILES += Cardinal/src/HostParameters.cpp | |||
| PLUGIN_FILES += Cardinal/src/HostTime.cpp | |||
| PLUGIN_FILES += Cardinal/src/Ildaeil.cpp | |||
| ifneq ($(HEADLESS),true) | |||
| PLUGIN_FILES += Cardinal/src/ImGuiWidget.cpp | |||
| PLUGIN_FILES += $(wildcard Cardinal/src/DearImGui/*.cpp) | |||
| endif | |||
| ifneq ($(NOPLUGINS),true) | |||
| # -------------------------------------------------------------- | |||