do not translate empty string
[enigma2.git] / lib / dvb / pmt.h
index f4e99a57b5ba5f8175b528a87ce2ee4e6c88d8e8..701930dc4fedfee6f6af6b69158570ef6f61581c 100644 (file)
@@ -72,9 +72,10 @@ class eDVBServicePMTHandler: public Object
        void PMTready(int error);
        void PATready(int error);
        
+       int m_pmt_pid;
+       
        int m_use_decode_demux;
        uint8_t m_decode_demux_num;
-
 public:
        eDVBServicePMTHandler();
        ~eDVBServicePMTHandler();
@@ -112,33 +113,44 @@ public:
                int component_tag;
                std::string language_code; /* iso-639, if available. */
        };
-       
+
+       struct subtitleStream
+       {
+               int pid;
+               int subtitling_type;
+               int composition_page_id;
+               int ancillary_page_id;
+               std::string language_code;
+       };
+
        struct program
        {
                std::vector<videoStream> videoStreams;
                std::vector<audioStream> audioStreams;
-               // ca info
+               std::vector<subtitleStream> subtitleStreams;
+               std::set<uint16_t> caids;
                int pcrPid;
                int pmtPid;
                int textPid;
-               bool isCrypted;
-               int audioChannel;
+               bool isCrypted() { return !caids.empty(); }
        };
-       
+
        int getProgramInfo(struct program &program);
        int getDataDemux(ePtr<iDVBDemux> &demux);
        int getDecodeDemux(ePtr<iDVBDemux> &demux);
        PyObject *getCaIds();
        
        int getPVRChannel(ePtr<iDVBPVRChannel> &pvr_channel);
-       int getService(eServiceReferenceDVB &service) { service = m_reference; return 0; }
+       int getServiceReference(eServiceReferenceDVB &service) { service = m_reference; return 0; }
+       int getService(ePtr<eDVBService> &service) { service = m_service; return 0; }
        int getPMT(ePtr<eTable<ProgramMapSection> > &ptr) { return m_PMT.getCurrent(ptr); }
        int getChannel(eUsePtr<iDVBChannel> &channel);
 
        int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0);
        void free();
-
-       int m_pmt_pid;
+private:
+       bool m_have_cached_program;
+       program m_cached_program;
 };
 
 #endif