MCPcopy Create free account
hub / github.com/DISTRHO/Cardinal / processTerminalOutput

Method processTerminalOutput

plugins/Cardinal/src/HostCV.cpp:125–168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123 }
124
125 void processTerminalOutput(const ProcessArgs&) override
126 {
127 if (pcontext->variant != kCardinalVariantMain && pcontext->variant != kCardinalVariantMini)
128 return;
129 if (pcontext->bypassed)
130 return;
131
132 const uint8_t ioOffset = pcontext->variant == kCardinalVariantMini ? 2 : 8;
133 const uint32_t bufferSize = pcontext->bufferSize;
134
135 // only incremented on output
136 const uint32_t k = dataFrame++;
137 DISTRHO_SAFE_ASSERT_RETURN(k < bufferSize,);
138
139 if (bypassed)
140 return;
141
142 float** const dataOuts = pcontext->dataOuts;
143
144 if (dataOuts[ioOffset] == nullptr)
145 return;
146
147 float inputOffset;
148 inputOffset = params[BIPOLAR_INPUTS_1_5].getValue() > 0.1f ? 5.0f : 0.0f;
149
150 for (int i=0; i<5; ++i)
151 {
152 if (!std::isfinite(dataOuts[i+ioOffset][k]))
153 __builtin_unreachable();
154 dataOuts[i+ioOffset][k] += inputs[i].getVoltage() + inputOffset;
155 }
156
157 if (pcontext->variant == kCardinalVariantMain)
158 {
159 inputOffset = params[BIPOLAR_INPUTS_6_10].getValue() > 0.1f ? 5.0f : 0.0f;
160
161 for (int i=5; i<10; ++i)
162 {
163 if (!std::isfinite(dataOuts[i+ioOffset][k]))
164 __builtin_unreachable();
165 dataOuts[i+ioOffset][k] += inputs[i].getVoltage() + inputOffset;
166 }
167 }
168 }
169};
170
171#ifndef HEADLESS

Callers 1

Calls 2

getValueMethod · 0.45
getVoltageMethod · 0.45

Tested by

no test coverage detected