| 2249 | } |
| 2250 | |
| 2251 | void FireAudioProcessor::assignModulation(int routingIndex, int sourceLfoIndex, const juce::String& targetParameterID) |
| 2252 | { |
| 2253 | auto& routings = lfoManager->getModulationRoutings(); |
| 2254 | if (! juce::isPositiveAndBelow(routingIndex, routings.size())) |
| 2255 | return; |
| 2256 | |
| 2257 | if (targetParameterID.isNotEmpty()) |
| 2258 | { |
| 2259 | for (int i = 0; i < routings.size(); ++i) |
| 2260 | { |
| 2261 | if (i == routingIndex) |
| 2262 | continue; |
| 2263 | if (routings.getReference(i).targetParameterID == targetParameterID) |
| 2264 | { |
| 2265 | routings.getReference(i).targetParameterID = ""; |
| 2266 | } |
| 2267 | } |
| 2268 | } |
| 2269 | |
| 2270 | auto& currentRouting = routings.getReference(routingIndex); |
| 2271 | currentRouting.sourceLfoIndex = sourceLfoIndex; |
| 2272 | currentRouting.targetParameterID = targetParameterID; |
| 2273 | |
| 2274 | lfoDataHasChanged(); |
| 2275 | } |
| 2276 | |
| 2277 | float FireAudioProcessor::getRealtimeModulatedThreshold(int bandIndex) const |
| 2278 | { |