Signed-off-by: falkTX <falktx@falktx.com>tags/22.02
| @@ -175,6 +175,21 @@ jobs: | |||||
| path: | | path: | | ||||
| *.tar.gz | *.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: | linux-x86_64-sysdeps: | ||||
| runs-on: ubuntu-20.04 | runs-on: ubuntu-20.04 | ||||
| steps: | steps: | ||||
| @@ -65,6 +65,13 @@ ifneq ($(HAVE_XRANDR),true) | |||||
| $(warning Xrandr dependency not installed/available) | $(warning Xrandr dependency not installed/available) | ||||
| endif | 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 | ||||
| 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. | * For a full copy of the GNU General Public License see the LICENSE file. | ||||
| */ | */ | ||||
| #include "ImGuiWidget.hpp" | |||||
| #include "plugincontext.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 "CarlaNativePlugin.h" | ||||
| #include "CarlaBackendUtils.hpp" | #include "CarlaBackendUtils.hpp" | ||||
| @@ -350,6 +353,7 @@ static intptr_t host_dispatcher(const NativeHostHandle handle, const NativeHostD | |||||
| // -------------------------------------------------------------------------------------------------------------------- | // -------------------------------------------------------------------------------------------------------------------- | ||||
| #ifndef HEADLESS | |||||
| struct IldaeilWidget : ImGuiWidget, Thread { | struct IldaeilWidget : ImGuiWidget, Thread { | ||||
| static constexpr const uint kButtonHeight = 20; | static constexpr const uint kButtonHeight = 20; | ||||
| @@ -1168,6 +1172,11 @@ struct IldaeilModuleWidget : ModuleWidget { | |||||
| addOutput(createOutput<PJ301MPort>(Vec(3, 54 + 90), module, IldaeilModule::OUTPUT2)); | 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(); | glBars->state.Render(); | ||||
| } | } | ||||
| }; | }; | ||||
| #endif | |||||
| struct glBarsWidget : ModuleWidget { | struct glBarsWidget : ModuleWidget { | ||||
| #ifndef HEADLESS | |||||
| glBarsRendererWidget* const glBarsRenderer; | glBarsRendererWidget* const glBarsRenderer; | ||||
| #endif | |||||
| glBarsWidget(glBarsModule* const module) | glBarsWidget(glBarsModule* const module) | ||||
| #ifndef HEADLESS | |||||
| : glBarsRenderer(new glBarsRendererWidget(module)) | : glBarsRenderer(new glBarsRendererWidget(module)) | ||||
| #endif | |||||
| { | { | ||||
| setModule(module); | setModule(module); | ||||
| setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/glBars.svg"))); | 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, 0))); | ||||
| addChild(createWidget<ScrewBlack>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | 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.pos = Vec(2 * RACK_GRID_WIDTH, 0); | ||||
| glBarsRenderer->box.size = Vec(box.size.x - 2 * RACK_GRID_WIDTH, box.size.y); | glBarsRenderer->box.size = Vec(box.size.x - 2 * RACK_GRID_WIDTH, box.size.y); | ||||
| addChild(glBarsRenderer); | addChild(glBarsRenderer); | ||||
| #endif | |||||
| addInput(createInput<PJ301MPort>(Vec(3, 54), module, glBarsModule::IN1_INPUT)); | addInput(createInput<PJ301MPort>(Vec(3, 54), module, glBarsModule::IN1_INPUT)); | ||||
| } | } | ||||
| }; | }; | ||||
| #else | |||||
| typedef ModuleWidget glBarsWidget; | |||||
| #endif | |||||
| Model* modelGlBars = createModel<glBarsModule, glBarsWidget>("glBars"); | Model* modelGlBars = createModel<glBarsModule, glBarsWidget>("glBars"); | ||||
| @@ -177,8 +177,16 @@ PLUGIN_FILES = plugins.cpp | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Cardinal (built-in) | # 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) | ifneq ($(NOPLUGINS),true) | ||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||