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

Function Engine_orderModule

src/override/Engine.cpp:380–391  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

378}
379
380static void Engine_orderModule(Module* module, IdentityDictionary<Module*>& touchedModules, std::vector<Module*>& orderedModules, IdentityDictionary<int64_t>& terminalModulesIDs) {
381 if (!dictContains(touchedModules, module) && !dictContains(terminalModulesIDs, module->id)) { // Ignore feedback loops and terminal modules
382 dictAdd(touchedModules, module);
383 for (Output& output : module->outputs) {
384 for (Cable* cable : output.cables) {
385 Module* receiver = cable->inputModule; // The input to the cable is the receiving module
386 Engine_orderModule(receiver, touchedModules, orderedModules, terminalModulesIDs);
387 }
388 }
389 orderedModules.push_back(module);
390 }
391}
392
393static void Engine_assignOrderedModules(std::vector<Module*>& modules, std::vector<Module*>& orderedModules) {
394 std::reverse(orderedModules.begin(), orderedModules.end()); // These are stored bottom up

Callers 1

Engine_orderModulesFunction · 0.85

Calls 3

dictContainsFunction · 0.85
dictAddFunction · 0.85
push_backMethod · 0.80

Tested by

no test coverage detected