Browse Source

Fix headless build; Ignore 2 main CV ins for befaco lv2 test

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.02
falkTX 3 years ago
parent
commit
9ee6524004
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 26 additions and 9 deletions
  1. +5
    -5
      lv2export/lv2plugin.cpp
  2. +3
    -2
      lv2export/lv2plugin.ttl
  3. +1
    -1
      lv2export/test.cpp
  4. +17
    -1
      plugins/Cardinal/src/glBars.cpp

+ 5
- 5
lv2export/lv2plugin.cpp View File

@@ -33,7 +33,7 @@ bool cpuMeter = false;
}
Context::~Context() {
}
static thread_local Context* threadContext = nullptr;
static thread_local Context* threadContext;
Context* contextGet() {
DISTRHO_SAFE_ASSERT(threadContext != nullptr);
return threadContext;
@@ -121,8 +121,8 @@ struct PluginLv2 {
frameCount
};

const float* CV1_INPUT = (float*)ports[0];
const float* CV2_INPUT = (float*)ports[1];
// const float* CV1_INPUT = (float*)ports[0];
// const float* CV2_INPUT = (float*)ports[1];
const float* IN1_INPUT = (float*)ports[2];
const float* IN2_INPUT = (float*)ports[3];
const float* MIX_CV_INPUT = (float*)ports[4];
@@ -141,8 +141,8 @@ struct PluginLv2 {

for (uint32_t i=0; i<sampleCount; ++i)
{
module->inputs[0].setVoltage(CV1_INPUT[i]);
module->inputs[1].setVoltage(CV2_INPUT[i]);
// module->inputs[0].setVoltage(CV1_INPUT[i]);
// module->inputs[1].setVoltage(CV2_INPUT[i]);
module->inputs[2].setVoltage(IN1_INPUT[i] * 10);
module->inputs[3].setVoltage(IN2_INPUT[i] * 10);
module->inputs[4].setVoltage(MIX_CV_INPUT[i]);


+ 3
- 2
lv2export/lv2plugin.ttl View File

@@ -17,8 +17,9 @@
<urn:Cardinal:Befaco>
a lv2:Plugin, doap:Project ;

# NOTE port 0 and 1 are actually CV ins, but we need some kind of optionally-connected stuff implemented first
lv2:port [
a lv2:InputPort, lv2:CVPort, mod:CVPort ;
a lv2:OutputPort, lv2:ControlPort ;
lv2:index 0 ;
lv2:symbol "lv2_audio_in_1" ;
lv2:name "CV1_INPUT" ;
@@ -26,7 +27,7 @@
lv2:minimum 0;
lv2:maximum 10;
] , [
a lv2:InputPort, lv2:CVPort, mod:CVPort ;
a lv2:OutputPort, lv2:ControlPort ;
lv2:index 1 ;
lv2:symbol "lv2_audio_in_2" ;
lv2:name "CV2_INPUT" ;


+ 1
- 1
lv2export/test.cpp View File

@@ -28,7 +28,7 @@ Plugin* pluginInstance__Befaco;
namespace rack {
Context::~Context() {
}
static thread_local Context* threadContext = nullptr;
static thread_local Context* threadContext;
Context* contextGet() {
DISTRHO_SAFE_ASSERT(threadContext != nullptr);
return threadContext;


+ 17
- 1
plugins/Cardinal/src/glBars.cpp View File

@@ -15,7 +15,11 @@
* For a full copy of the GNU General Public License see the LICENSE file.
*/

#include "glBars.hpp"
#ifndef HEADLESS
# include "glBars.hpp"
#else
# include "plugin.hpp"
#endif

#define SAMPLES_PER_DRAW 256

@@ -34,24 +38,29 @@ struct glBarsModule : Module {
NUM_LIGHTS
};

#ifndef HEADLESS
glBarsState state;
float audioData[SAMPLES_PER_DRAW];
unsigned audioDataFill = 0;
#endif

glBarsModule() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
}

void process(const ProcessArgs&) override {
#ifndef HEADLESS
audioData[audioDataFill++] = inputs[IN1_INPUT].getVoltage();

if (audioDataFill == SAMPLES_PER_DRAW) {
audioDataFill = 0;
state.AudioData(audioData, SAMPLES_PER_DRAW);
}
#endif
}
};

#ifndef HEADLESS
struct glBarsRendererWidget : OpenGlWidget {
glBarsModule* const glBars;

@@ -73,12 +82,17 @@ 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")));
@@ -88,9 +102,11 @@ struct glBarsWidget : ModuleWidget {
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(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));
}


Loading…
Cancel
Save