- add more DVB-T support
authorFelix Domke <tmbinc@elitedvb.net>
Mon, 26 Sep 2005 17:24:43 +0000 (17:24 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Mon, 26 Sep 2005 17:24:43 +0000 (17:24 +0000)
lib/dvb/db.cpp

index a380ad0c6ea20f2e949f5f941ca2fe0a05e2139d..13bb900a8d2d536cf9e56f38c74862e5fd8599af 100644 (file)
@@ -95,6 +95,7 @@ void eDVBService::setCachePID(cacheID id, int pid)
 
 DEFINE_REF(eDVBDB);
 
 
 DEFINE_REF(eDVBDB);
 
+       /* THIS CODE IS BAD. it should be replaced by somethine better. */
 void eDVBDB::load()
 {
        eDebug("---- opening lame channel db");
 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);
                                // ...
 //                             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);
                        {
                                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;
                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",
                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);
                }
                                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++;
        }
                fprintf(f, "/\n");
                channels++;
        }