public void UpdateRoute(ModRoute route) { Routes[route.Index] = route; var dests = new List <ModDestination>(); var activeRoutes = new List <int>(); for (int i = 0; i < Routes.Length; i++) { if (!Routes[i].Enabled || Routes[i].Amount == 0 || Routes[i].Source == ModSource.None || Routes[i].Destination == ModDestination.None) { continue; } if (!dests.Contains(Routes[i].Destination)) { dests.Add(Routes[i].Destination); } activeRoutes.Add(i); } // Todo: Zero out current modulation value after turning off a mod route ActiveDestinations = dests.ToArray(); ActiveRoutes = activeRoutes.ToArray(); ProcessAllRoutes(); }
public ModRoutingVM(SynthController ctrl, ModuleId moduleId) { Model = new ModRoute(); Ctrl = ctrl; ModuleId = moduleId; }