diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-08-18 12:38:27 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-08-18 12:38:27 +0000 |
| commit | bb77d424f7eff49ba5be67cdb9c365fa2e305b8f (patch) | |
| tree | 4987b3f6485e96e2221185eb3126670b46dc8a46 | |
| parent | 746dab83a3ababa568a9185967e189032a638b97 (diff) | |
| download | enigma2-bb77d424f7eff49ba5be67cdb9c365fa2e305b8f.tar.gz enigma2-bb77d424f7eff49ba5be67cdb9c365fa2e305b8f.zip | |
speedups
| -rw-r--r-- | lib/service/servicedvb.cpp | 9 | ||||
| -rw-r--r-- | lib/service/servicedvb.h | 7 |
2 files changed, 12 insertions, 4 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 4942324b..f175b07e 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -312,6 +312,9 @@ eServiceFactoryDVB::eServiceFactoryDVB() eServiceCenter::getPrivInstance(sc); if (sc) sc->addServiceFactory(eServiceFactoryDVB::id, this); + + m_StaticServiceDVBInfo = new eStaticServiceDVBInformation; + m_StaticServiceDVBBouquetInfo = new eStaticServiceDVBBouquetInformation; } eServiceFactoryDVB::~eServiceFactoryDVB() @@ -584,9 +587,9 @@ RESULT eServiceFactoryDVB::info(const eServiceReference &ref, ePtr<iStaticServic if ((ref.flags & eServiceReference::flagDirectory) == eServiceReference::flagDirectory) // bouquet { if ( !ref.name.empty() ) // satellites or providers list - ptr = new eStaticServiceDVBInformation; + ptr = m_StaticServiceDVBInfo; else // a dvb bouquet - ptr = new eStaticServiceDVBBouquetInformation; + ptr = m_StaticServiceDVBBouquetInfo; } else if (!ref.path.empty()) /* do we have a PVR service? */ ptr = new eStaticServiceDVBPVRInformation(ref); @@ -594,7 +597,7 @@ RESULT eServiceFactoryDVB::info(const eServiceReference &ref, ePtr<iStaticServic { ePtr<eDVBService> service; if (lookupService(service, ref)) // no eDVBService avail for this reference ( Linkage Services... ) - ptr = new eStaticServiceDVBInformation; + ptr = m_StaticServiceDVBInfo; else /* eDVBService has the iStaticServiceInformation interface, so we pass it here. */ ptr = service; diff --git a/lib/service/servicedvb.h b/lib/service/servicedvb.h index 0be174e2..b2306e10 100644 --- a/lib/service/servicedvb.h +++ b/lib/service/servicedvb.h @@ -10,9 +10,14 @@ #include <lib/dvb/radiotext.h> #include <lib/base/filepush.h> +class eStaticServiceDVBInformation; +class eStaticServiceDVBBouquetInformation; + class eServiceFactoryDVB: public iServiceHandler { -DECLARE_REF(eServiceFactoryDVB); + DECLARE_REF(eServiceFactoryDVB); + ePtr<eStaticServiceDVBInformation> m_StaticServiceDVBInfo; + ePtr<eStaticServiceDVBBouquetInformation> m_StaticServiceDVBBouquetInfo; public: eServiceFactoryDVB(); virtual ~eServiceFactoryDVB(); |
