diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2009-06-11 12:46:49 +0200 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2009-06-11 12:46:49 +0200 |
| commit | 510fe63aa7bf232fcca7f2a3d0fdab2c45307b78 (patch) | |
| tree | 1d1fabf5758a4db48982d7dafd37d9d0c51bce2d /tools/host_tools/FormatConverter/lamedb.py | |
| parent | 30562d78ee2be5fe628a88cce45f7671ff0644bb (diff) | |
| download | enigma2-510fe63aa7bf232fcca7f2a3d0fdab2c45307b78.tar.gz enigma2-510fe63aa7bf232fcca7f2a3d0fdab2c45307b78.zip | |
add a format converter, i.e. to convert from lamedb to sat.xml files
the main destination format of this converter is a sat.xml file
easily extendable with further datasources
Diffstat (limited to 'tools/host_tools/FormatConverter/lamedb.py')
| -rw-r--r-- | tools/host_tools/FormatConverter/lamedb.py | 81 |
1 files changed, 81 insertions, 0 deletions
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 |
