#include <lib/dvb/frontend.h>
#include <lib/base/eerror.h>
#include <lib/base/estring.h>
-#include <lib/dvb_si/sdt.h>
-#include <lib/dvb_si/descriptor_tag.h>
-#include <lib/dvb_si/service_descriptor.h>
-#include <lib/dvb_si/satellite_delivery_system_descriptor.h>
+#include <dvbsi++/service_description_section.h>
+#include <dvbsi++/descriptor_tag.h>
+#include <dvbsi++/service_descriptor.h>
+#include <dvbsi++/satellite_delivery_system_descriptor.h>
DEFINE_REF(eDVBService);
DEFINE_REF(eDVBDB);
+ /* THIS CODE IS BAD. it should be replaced by somethine better. */
void eDVBDB::load()
{
eDebug("---- opening lame channel db");
// ...
// 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);
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",
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++;
}