From: Felix Domke Date: Mon, 26 Sep 2005 17:24:43 +0000 (+0000) Subject: - add more DVB-T support X-Git-Tag: 2.6.0~5570 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/0722bdffe9e089cf67bba0887aff68391fd4ca72 - add more DVB-T support --- diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index a380ad0c..13bb900a 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -95,6 +95,7 @@ void eDVBService::setCachePID(cacheID id, int pid) DEFINE_REF(eDVBDB); + /* THIS CODE IS BAD. it should be replaced by somethine better. */ void eDVBDB::load() { eDebug("---- opening lame channel db"); @@ -153,8 +154,23 @@ void eDVBDB::load() // ... // t.setSatellite(frequency, symbol_rate, polarisation, fec, sat, inversion); feparm->setDVBS(sat); - } - if (line[1]=='c') + } else if (line[1]=='t') + { + eDVBFrontendParametersTerrestrial ter; + int frequency, bandwidth, code_rate_HP, code_rate_LP, modulation, transmission_mode, guard_interval, hierarchy, inversion; + sscanf(line+2, "%d:%d:%d:%d:%d:%d:%d:%d:%d", &frequency, &bandwidth, &code_rate_HP, &code_rate_LP, &modulation, &transmission_mode, &guard_interval, &hierarchy, &inversion); + ter.frequency = frequency; + ter.bandwidth = bandwidth; + ter.code_rate_HP = code_rate_HP; + ter.code_rate_LP = code_rate_LP; + ter.modulation = modulation; + ter.transmission_mode = transmission_mode; + ter.guard_interval = guard_interval; + ter.hierarchy = hierarchy; + ter.inversion = inversion; + + feparm->setDVBT(ter); + } else if (line[1]=='c') { int frequency, symbol_rate, inversion=0, modulation=3; sscanf(line+2, "%d:%d:%d:%d", &frequency, &symbol_rate, &inversion, &modulation); @@ -266,6 +282,7 @@ void eDVBDB::save() fprintf(f, "%08x:%04x:%04x\n", chid.dvbnamespace.get(), chid.transport_stream_id.get(), chid.original_network_id.get()); eDVBFrontendParametersSatellite sat; + eDVBFrontendParametersTerrestrial ter; if (!ch.m_frontendParameters->getDVBS(sat)) { fprintf(f, "\ts %d:%d:%d:%d:%d:%d\n", @@ -273,6 +290,13 @@ void eDVBDB::save() sat.polarisation, sat.fec, sat.inversion, sat.orbital_position); } + if (!ch.m_frontendParameters->getDVBT(ter)) + { + fprintf(f, "\tt %d:%d:%d:%d:%d:%d:%d:%d:%d\n", + ter.frequency, ter.bandwidth, ter.code_rate_HP, + ter.code_rate_LP, ter.modulation, ter.transmission_mode, + ter.guard_interval, ter.hierarchy, ter.inversion); + } fprintf(f, "/\n"); channels++; }