[FCC] Fix to perform normal decoding for usb tuner on FCC mode.
[vuplus_dvbapp] / lib / dvb / pmt.h
index 98ace2b..fc5d849 100644 (file)
@@ -140,6 +140,7 @@ class eDVBServicePMTHandler: public Object
        eAUTable<eTable<ApplicationInformationSection> > m_AIT;
        eAUTable<eTable<OCSection> > m_OC;
 
+       void registerCAService();
        void PMTready(int error);
        void PATready(int error);
        
@@ -158,6 +159,9 @@ class eDVBServicePMTHandler: public Object
        uint8_t m_decode_demux_num;
        ePtr<eTimer> m_no_pat_entry_delay;
        uint8_t mDemuxId;
+
+       bool m_pmt_ready;
+       bool m_ca_disabled;
 public:
        eDVBServicePMTHandler();
        ~eDVBServicePMTHandler();
@@ -186,6 +190,9 @@ public:
                eventHBBTVInfo, /* HBBTV information was detected in the AIT */
                
                eventMisconfiguration, // a channel was not found in any list, or no frontend was found which could provide this channel
+               eventNoDiskSpace,  // no disk space available
+               eventStartPvrDescramble,   // start PVR Descramble Convert
+               eventChannelAllocated,
        };
 #ifndef SWIG
        Signal1<void,int> serviceEvent;
@@ -194,7 +201,7 @@ public:
        {
                int pid;
                int component_tag;
-               enum { vtMPEG2, vtMPEG4_H264, vtMPEG1, vtMPEG4_Part2, vtVC1, vtVC1_SM };
+               enum { vtMPEG2, vtMPEG4_H264, vtMPEG1, vtMPEG4_Part2, vtVC1, vtVC1_SM, vtH265_HEVC };
                int type;
        };
        
@@ -254,6 +261,8 @@ public:
                int pmtPid;
                int textPid;
                int aitPid;
+               int pmtVersion;
+               bool isCached;
                bool isCrypted() { return !caids.empty(); }
                PyObject *createPythonObject();
        };
@@ -274,18 +283,40 @@ public:
 
        void getHBBTVUrl(std::string &ret) { ret = m_HBBTVUrl; }
        void getDemuxID(int &id) { id = mDemuxId; }
+       void setCaDisable(bool disable) { m_ca_disabled = disable; }
+
+       enum serviceType
+       {
+               livetv = 0,
+               recording = 1,
+               scrambled_recording = 2,
+               playback = 3,
+               timeshift_recording = 4,
+               scrambled_timeshift_recording = 5,
+               timeshift_playback = 6,
+               streamserver = 7,
+               scrambled_streamserver = 8,
+               streamclient = 9,
+               offline = 10,
+               pvrDescramble = 11,
+       };
 
        /* deprecated interface */
-       int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0);
+       int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0, serviceType type = livetv, bool descramble = true);
 
        /* new interface */
-       int tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iTsSource> &, const char *streaminfo_file, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0, bool isstreamclient=false);
+       int tuneExt(eServiceReferenceDVB &ref, int use_decode_demux, ePtr<iTsSource> &, const char *streaminfo_file, eCueSheet *sg=0, bool simulate=false, eDVBService *service = 0, serviceType type = livetv, bool descramble=true);
 
        void free();
+       void addCaHandler();
+       void removeCaHandler();
+       bool isCiConnected();
+       bool isPmtReady() { return m_pmt_ready; }
 private:
        bool m_have_cached_program;
        program m_cached_program;
-       bool m_isstreamclient;
+       bool m_descramble;
+       serviceType m_service_type;
 #endif
 };