MCPcopy Create free account
hub / github.com/VCVRack/Rack / bypassModule

Method bypassModule

src/engine/Engine.cpp:889–913  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

887
888
889void Engine::bypassModule(Module* module, bool bypassed) {
890 assert(module);
891 if (module->isBypassed() == bypassed)
892 return;
893
894 std::lock_guard<SharedMutex> lock(internal->mutex);
895
896 // Clear outputs and set to 1 channel
897 for (Output& output : module->outputs) {
898 // This zeros all voltages, but the channel is set to 1 if connected
899 output.setChannels(0);
900 }
901 // Set bypassed state
902 module->setBypassed(bypassed);
903 if (bypassed) {
904 // Dispatch BypassEvent
905 Module::BypassEvent eBypass;
906 module->onBypass(eBypass);
907 }
908 else {
909 // Dispatch UnBypassEvent
910 Module::UnBypassEvent eUnBypass;
911 module->onUnBypass(eUnBypass);
912 }
913}
914
915
916json_t* Engine::moduleToJson(Module* module) {

Callers 4

undoMethod · 0.80
redoMethod · 0.80
bypassSelectionActionMethod · 0.80
bypassActionMethod · 0.80

Calls 5

isBypassedMethod · 0.80
setBypassedMethod · 0.80
onBypassMethod · 0.80
onUnBypassMethod · 0.80
setChannelsMethod · 0.45

Tested by

no test coverage detected