def __init__(self, patch, fromname, index, name): self.patch = patch self.fromname = fromname self.index = index self.name = name self.modules = [] self.cables = [] self.netlist = NetList() self.free_indexes = range(1, MAX_MODULES + 1)
def parse(self): lines = self.lines line = lines.pop(0) fields = line.split() if len(fields) > 1: if len(fields) == 8: l = fields[0] line = ' '.join(fields[1:]) lines.insert(0, line) sect = int(l) else: sect = int(line) if sect: area = self.patch.voice else: area = self.patch.fx area.cables = [] area.netlist = NetList() area.cables = [None] * len(self.lines) for i in xrange(len(self.lines)): values = eval_fields(lines[i]) c = Cable(area) c.color, dmod, dconn, ddir, smod, sconn, sdir = values dmodule = area.find_module(dmod) smodule = area.find_module(smod) if ddir: dest = dmodule.outputs[dconn] else: dest = dmodule.inputs[dconn] if sdir: source = smodule.outputs[sconn] else: source = smodule.inputs[sconn] # if dest is an output, make it the source if dest.direction: dest, source = source, dest area.cables[i] = c c.source, c.dest = source, dest source.cables.append(c) dest.cables.append(c) # update netlist with source and dest area.netlist.add(source, dest)