X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/4008892983b7a8348b24dccea5f6f98826adc2d6..191cade7c45bee53df2776ff5bb3f26b2cdafc12:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 6bfbc216..de2b5644 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -162,6 +162,20 @@ struct eServiceReferenceDVB: public eServiceReference eTransportStreamID getParentTransportStreamID() const { return eTransportStreamID(data[6]); } void setParentTransportStreamID( eTransportStreamID tsid ) { data[6]=tsid.get(); } + eServiceReferenceDVB getParentServiceReference() const + { + eServiceReferenceDVB tmp(*this); + if (data[5] && data[6]) + { + tmp.data[1] = data[5]; + tmp.data[2] = data[6]; + tmp.data[5] = tmp.data[6] = 0; + } + else + tmp.type = idInvalid; + return tmp; + } + eServiceReferenceDVB(eDVBNamespace dvbnamespace, eTransportStreamID transport_stream_id, eOriginalNetworkID original_network_id, eServiceID service_id, int service_type) :eServiceReference(eServiceReference::idDVB, 0) { @@ -222,8 +236,21 @@ public: std::string m_provider_name; void genSortName(); - + int m_flags; + enum + { +#if 0 // not yet implemented + dxNoSDT=1, // don't get SDT + dxDontshow=2, + dxHoldName=8, + dxNewFound=64, // found in prev scan +#endif + dxNoDVB=4 // dont use PMT for this service ( use cached pids ) + }; + + bool usePMT() const { return !(m_flags & dxNoDVB); } + std::set m_ca; std::map m_cache; virtual ~eDVBService(); @@ -347,7 +374,7 @@ public: enum { feSatellite, feCable, feTerrestrial }; - virtual RESULT getFrontendType(int &type)=0; + virtual RESULT getFrontendType(int &SWIG_OUTPUT)=0; virtual RESULT tune(const iDVBFrontendParameters &where)=0; #ifndef SWIG virtual RESULT connectStateChange(const Slot1 &stateChange, ePtr &connection)=0; @@ -359,7 +386,7 @@ public: stateLock = 3, stateLostLock = 4, }; - virtual RESULT getState(int &state)=0; + virtual RESULT getState(int &SWIG_OUTPUT)=0; enum { toneOff, toneOn }; @@ -417,10 +444,10 @@ public: state_last_instance, /* just one reference to this channel is left */ state_release /* channel is being shut down. */ }; - virtual RESULT getState(int &state)=0; + virtual RESULT getState(int &SWIG_OUTPUT)=0; /* direct frontend access for raw channels and/or status inquiries. */ - virtual RESULT getFrontend(ePtr &SWIG_OUTPUT)=0; + virtual RESULT getFrontend(ePtr &)=0; #ifndef SWIG virtual RESULT getCurrentFrontendParameters(ePtr &)=0; @@ -526,7 +553,7 @@ class iDVBDemux: public iObject public: virtual RESULT createSectionReader(eMainloop *context, ePtr &reader)=0; virtual RESULT createTSRecorder(ePtr &recorder)=0; - virtual RESULT getMPEGDecoder(ePtr &reader)=0; + virtual RESULT getMPEGDecoder(ePtr &reader, int primary=1)=0; virtual RESULT getSTC(pts_t &pts, int num=0)=0; virtual RESULT getCADemuxID(uint8_t &id)=0; virtual RESULT flush()=0;