diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 27f8acf..0b19ef8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1041,16 +1041,31 @@ jobs: - uses: actions/checkout@v2 with: submodules: recursive + - name: Set up cache + id: cache + uses: actions/cache@v2 + with: + path: | + src/Rack/dep/bin + src/Rack/dep/include + src/Rack/dep/lib + src/Rack/dep/share + src/Rack/dep/jansson-2.12 + src/Rack/dep/libarchive-3.4.3 + src/Rack/dep/libsamplerate-0.1.9 + src/Rack/dep/speexdsp-SpeexDSP-1.2rc3 + src/Rack/dep/zstd-1.4.5 + key: pluginval-v${{ env.CACHE_VERSION }} - name: Set up dependencies run: | # custom repos - wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_10.0.3_all.deb - sudo dpkg -i kxstudio-repos_10.0.3_all.deb + wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.1.0_all.deb + sudo dpkg -i kxstudio-repos_11.1.0_all.deb sudo apt-get update -qq # build-deps sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev # runtime testing - sudo apt-get install -yqq carla-git lilv-utils lv2-dev lv2lint valgrind xvfb + sudo apt-get install -yqq carla-git lilv-utils lv2-dev lv2lint kxstudio-lv2-extensions mod-lv2-extensions valgrind xvfb - name: Set up ccache uses: hendrikmuhs/ccache-action@v1.2 with: @@ -1066,6 +1081,13 @@ jobs: make NOOPT=true SKIP_STRIPPING=true -j $(nproc) - name: Run Cardinal self-tests run: | + #xvfb-run valgrind \ + #--gen-suppressions=all \ + #--exit-on-first-error=yes \ + #--error-exitcode=255 \ + #--leak-check=no \ + #--track-origins=yes \ + #--suppressions=./dpf/utils/valgrind-dpf.supp xvfb-run ./bin/Cardinal selftest - name: Validate LV2 ttl syntax run: | @@ -1082,13 +1104,13 @@ jobs: cp -r bin/CardinalFX.lv2 bin/CardinalSynth.lv2 \ /usr/lib/lv2/{atom,buf-size,core,data-access,kx-control-input-port-change-request,kx-programs,instance-access,midi,mod,parameters,port-groups,port-props,options,patch,presets,resize-port,state,time,ui,units,urid,worker}.lv2 \ ${LV2_PATH} - lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls) + xvfb-run lv2lint -s lv2_generate_ttl -l ld-linux-x86-64.so.2 -M nopack $(lv2ls) - name: Test LV2 plugin run: | export LV2_PATH=/tmp/lv2-path for p in $(lv2ls); do \ env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ - valgrind \ + xvfb-run valgrind \ --error-exitcode=255 \ --leak-check=no \ --track-origins=yes \ @@ -1099,7 +1121,7 @@ jobs: run: | for p in $(ls bin/*.vst/*.so); do \ env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ - valgrind \ + xvfb-run valgrind \ --error-exitcode=255 \ --leak-check=no \ --track-origins=yes \ @@ -1110,7 +1132,7 @@ jobs: run: | for p in $(ls bin/ | grep vst3); do \ env CARLA_BRIDGE_DUMMY=1 CARLA_BRIDGE_TESTING=native \ - valgrind \ + xvfb-run valgrind \ --error-exitcode=255 \ --leak-check=no \ --track-origins=yes \ diff --git a/dpf b/dpf index 71b1797..6cf523a 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 71b17971f63dc9def67faea500dcbaced979efb4 +Subproject commit 6cf523adada34df242dc1bf4b33bfb025284c631 diff --git a/plugins/Bidoo b/plugins/Bidoo index 5d2f572..b88130f 160000 --- a/plugins/Bidoo +++ b/plugins/Bidoo @@ -1 +1 @@ -Subproject commit 5d2f5721e2701f747d0410fc407e6b1e782f16dc +Subproject commit b88130f6b6311c8cd58669c20cc9842f2ea81575 diff --git a/plugins/Cardinal/src/plugin.hpp b/plugins/Cardinal/src/plugin.hpp index 204e822..96a5a9b 100644 --- a/plugins/Cardinal/src/plugin.hpp +++ b/plugins/Cardinal/src/plugin.hpp @@ -70,6 +70,9 @@ float d_findMaxNormalizedFloat(const float floats[], const std::size_t count) for (std::size_t i=1; i maxf2) diff --git a/src/CardinalUI.cpp b/src/CardinalUI.cpp index 425975c..667fef6 100644 --- a/src/CardinalUI.cpp +++ b/src/CardinalUI.cpp @@ -469,38 +469,44 @@ public: const ScopedContext sc(this); context->patch->clear(); - context->window->step(); app.idle(); const rack::math::Vec mousePos(getWidth()/2,getHeight()/2); context->event->handleButton(mousePos, GLFW_MOUSE_BUTTON_LEFT, GLFW_RELEASE, 0x0); context->event->handleHover(mousePos, rack::math::Vec(0,0)); - context->window->step(); app.idle(); for (rack::plugin::Plugin* p : rack::plugin::plugins) { for (rack::plugin::Model* m : p->models) { + d_stdout(">>>>>>>>>>>>>>>>> LOADING module %s : %s", p->slug.c_str(), m->slug.c_str()); rack::engine::Module* const module = m->createModule(); DISTRHO_SAFE_ASSERT_CONTINUE(module != nullptr); rack::CardinalPluginModelHelper* const helper = dynamic_cast(m); DISTRHO_SAFE_ASSERT_CONTINUE(helper != nullptr); + d_stdout(">>>>>>>>>>>>>>>>> LOADING moduleWidget %s : %s", p->slug.c_str(), m->slug.c_str()); rack::app::ModuleWidget* const moduleWidget = helper->createModuleWidget(module); DISTRHO_SAFE_ASSERT_CONTINUE(moduleWidget != nullptr); + d_stdout(">>>>>>>>>>>>>>>>> ADDING TO ENGINE %s : %s", p->slug.c_str(), m->slug.c_str()); context->engine->addModule(module); + + d_stdout(">>>>>>>>>>>>>>>>> ADDING TO RACK VIEW %s : %s", p->slug.c_str(), m->slug.c_str()); context->scene->rack->addModuleAtMouse(moduleWidget); for (int i=5; --i>=0;) app.idle(); + d_stdout(">>>>>>>>>>>>>>>>> REMOVING FROM RACK VIEW %s : %s", p->slug.c_str(), m->slug.c_str()); context->scene->rack->removeModule(moduleWidget); - context->engine->removeModule(module); - context->window->step(); - delete module; + app.idle(); + + d_stdout(">>>>>>>>>>>>>>>>> DELETING module + moduleWidget %s : %s", p->slug.c_str(), m->slug.c_str()); + delete moduleWidget; + app.idle(); } }