X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/30562d78ee2be5fe628a88cce45f7671ff0644bb..510fe63aa7bf232fcca7f2a3d0fdab2c45307b78:/tools/host_tools/FormatConverter/lamedb.py diff --git a/tools/host_tools/FormatConverter/lamedb.py b/tools/host_tools/FormatConverter/lamedb.py new file mode 100644 index 00000000..1d8d2ecc --- /dev/null +++ b/tools/host_tools/FormatConverter/lamedb.py @@ -0,0 +1,81 @@ +from datasource import datasource + +class lamedb(datasource): + def __init__(self, filename = "lamedb"): + datasource.__init__(self) + self.setFilename(filename) + + def setFilename(self, filename): + self.filename = filename + + def getName(self): + return "lamedb" + + def getCapabilities(self): + return [("read file", self.read), ("print all", self.printAll)] + + def read(self): + inputfile = open(self.filename, "r") + lines = inputfile.readlines() + inputfile.close() + + versionstring = lines[0].split('/') + version = int(versionstring[1]) + if 3 > version or 4 < version: + print "unsupported lamedb version" + return + + transpondersreading = False + sats = {} + transponders = {} + for line in lines: + if line.strip() == "transponders": + transpondersreading = True + continue + if line.strip() == "services": + transpondersreading = False + continue + if transpondersreading: + if ord(line[0]) == 9: + transponder = line.strip().split(' ')[1].split(':') + sat = transponder[4] + if not sats.has_key(sat): + sats[sat] = [] + sats[sat].append((transponder, tsid, onid)) + tsid = None + onid = None + elif line.strip() != "/" and line.strip() != "end": + data = line.strip().split(":") + tsid = str(int(data[1], 16)) + onid = str(int(data[2], 16)) + satlist = sats.keys() + satlist.sort() + + for sat in satlist: + print sat + self.addSat(sat, sat) + transponders = sats[sat] + transponders.sort(key = lambda a: a[0]) + for transpondertuple in transponders: + transponder = transpondertuple[0] + tsid = transpondertuple[1] + onid = transpondertuple[2] + print transponder, tsid, onid + tmp_transponder = {} + tmp_transponder["frequency"] = transponder[0] + tmp_transponder["symbol_rate"] = transponder[1] + tmp_transponder["polarization"] = transponder[2] + tmp_transponder["fec"] = transponder[3] + if version == 3: + if len(transponder) > 6: + tmp_transponder["system"] = transponder[6] + tmp_transponder["modulation"] = transponder[7] + elif version == 4: + if len(transponder) > 7: + tmp_transponder["system"] = transponder[7] + tmp_transponder["modulation"] = transponder[8] + if (tsid != "1" or onid != "1"): + tmp_transponder["tsid"] = transponder[0] + tmp_transponder["onid"] = transponder[0] + self.addTransponder(sat, tmp_transponder) + \ No newline at end of file