예제 #1
0
        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();
        }
예제 #2
0
 public ModRoutingVM(SynthController ctrl, ModuleId moduleId)
 {
     Model    = new ModRoute();
     Ctrl     = ctrl;
     ModuleId = moduleId;
 }