Beispiel #1
0
 private void CreateConnection(ConnectionTemplate ct, CrossReferencedDictionary <string, Module> modules)
 {
     if (ct.SourceIndex == -1)
     {
         if (ct.DestIndex == -1)
         {
             Connections.NewConnection(modules[ct.Source], modules[ct.Dest]);
         }
         else
         {
             Connections.NewConnection(modules[ct.Source], modules[ct.Dest], ct.DestIndex);
         }
     }
     else
     {
         if (ct.DestIndex == -1)
         {
             Connections.NewConnection(modules[ct.Source], ct.SourceIndex, modules[ct.Dest]);
         }
         else
         {
             Connections.NewConnection(modules[ct.Source], ct.SourceIndex, modules[ct.Dest], ct.DestIndex);
         }
     }
 }
Beispiel #2
0
 public BoardTemplate(XElement element, SynthData data)
 {
     modules     = new CrossReferencedDictionary <string, Module>();
     connections = new List <ConnectionTemplate>();
     foreach (var mod in element.Element("modules").Elements())
     {
         string moduleName = mod.Name.LocalName.Substring(MODULE_SAVE_PREFIX.Length);
         string moduleType = mod.ElementValue("type");
         modules[moduleName] = data.ModuleTypes[moduleType].Instance.CreateInstance(mod, data);
     }
     foreach (var con in element.Element("connections").Elements())
     {
         connections.Add(new ConnectionTemplate(con));
     }
 }
Beispiel #3
0
        public ModuleBoard CreateInstance(SynthData data)
        {
            var boardModules = new CrossReferencedDictionary <string, Module>();

            foreach (var m in modules)
            {
                boardModules[m.Key] = m.Value.Clone();
            }

            foreach (var ct in connections)
            {
                CreateConnection(ct, boardModules);
            }


            var board = new ModuleBoard(boardModules.Keys2.ToArray(), data);

            return(board);
        }
Beispiel #4
0
 public BoardTemplate()
 {
     modules     = new CrossReferencedDictionary <string, Module>();
     connections = new List <ConnectionTemplate>();
 }