- split out meta parser
[enigma2.git] / lib / dvb / pmt.cpp
index 7b24b4340f1fb5d9dc78bcbef7796242b7f9022b..d80897b95e48754245c45d624fc9585e5e314f4c 100644 (file)
@@ -2,6 +2,7 @@
 #include <lib/dvb/pmt.h>
 #include <lib/dvb/specs.h>
 #include <lib/dvb/dvb.h>
 #include <lib/dvb/pmt.h>
 #include <lib/dvb/specs.h>
 #include <lib/dvb/dvb.h>
+#include <lib/dvb/metaparser.h>
 
 eDVBServicePMTHandler::eDVBServicePMTHandler()
 {
 
 eDVBServicePMTHandler::eDVBServicePMTHandler()
 {
@@ -143,6 +144,13 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref)
                res = m_resourceManager->allocateChannel(chid, m_channel);
        } else
        {
                res = m_resourceManager->allocateChannel(chid, m_channel);
        } else
        {
+               eDVBMetaParser parser;
+               
+               if (parser.parseFile(ref.path))
+                       eWarning("no .meta file found, trying original service ref.");
+               else
+                       m_reference = parser.m_ref;
+               
                eDebug("alloc PVR");
                        /* allocate PVR */
                res = m_resourceManager->allocatePVRChannel(m_pvr_channel);
                eDebug("alloc PVR");
                        /* allocate PVR */
                res = m_resourceManager->allocatePVRChannel(m_pvr_channel);