add support for listing satellites and providers
[enigma2.git] / lib / service / servicedvb.cpp
index a49ce5c4e083371c7535eeb89359c4715599e4b8..143269149e1ff8eab75879ced08588ce88ea88cb 100644 (file)
@@ -359,9 +359,12 @@ RESULT eServiceFactoryDVB::list(const eServiceReference &ref, ePtr<iListableServ
 RESULT eServiceFactoryDVB::info(const eServiceReference &ref, ePtr<iStaticServiceInformation> &ptr)
 {
                /* do we have a PVR service? */
-       if (ref.flags & eServiceReference::flagDirectory) // bouquet
+       if ((ref.flags & eServiceReference::flagDirectory) == eServiceReference::flagDirectory) // bouquet
        {
-               ptr = new eStaticServiceDVBBouquetInformation;
+               if ( !ref.name.empty() )
+                       ptr = new eStaticServiceDVBInformation;
+               else
+                       ptr = new eStaticServiceDVBBouquetInformation;
                return 0;
        }
        else if (!ref.path.empty())
@@ -717,7 +720,7 @@ int eDVBServicePlay::getInfo(int w)
        switch (w)
        {
        case sVideoPID: if (program.videoStreams.empty()) return -1; return program.videoStreams[0].pid;
-       case sAudioPID: if (program.audioStreams.empty()) return -1; return program.videoStreams[m_current_audio_stream].pid;
+       case sAudioPID: if (program.audioStreams.empty()) return -1; return program.audioStreams[m_current_audio_stream].pid;
        case sPCRPID: return program.pcrPid;
        case sPMTPID: return program.pmtPid;
        case sTXTPID: return -1;