X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/af6a8a3a102ff0230fcc6d90ad213e2e7d706fa8..3f8e26212c4bcca56462f09b50a681f1526e1a7c:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 955688b9..f4e28d2b 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -1,6 +1,8 @@ #ifndef __dvb_idvb_h #define __dvb_idvb_h +#ifndef SWIG + #if HAVE_DVB_API_VERSION < 3 #include #define FRONTENDPARAMETERS FrontendParameters @@ -160,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) { @@ -220,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(); @@ -263,7 +292,8 @@ public: tSatellitePosition, tChannelID, tAND, - tOR + tOR, + tAny }; int m_type; @@ -299,29 +329,41 @@ public: virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query, const eServiceReference &source)=0; }; +#endif // SWIG + class iDVBFrontendParameters: public iObject { +#ifdef SWIG + iDVBFrontendParameters(); + ~iDVBFrontendParameters(); +#endif public: - virtual RESULT getSystem(int &type) const = 0; - virtual RESULT getDVBS(eDVBFrontendParametersSatellite &p) const = 0; - virtual RESULT getDVBC(eDVBFrontendParametersCable &p) const = 0; - virtual RESULT getDVBT(eDVBFrontendParametersTerrestrial &p) const = 0; + virtual RESULT getSystem(int &SWIG_OUTPUT) const = 0; + virtual RESULT getDVBS(eDVBFrontendParametersSatellite &SWIG_OUTPUT) const = 0; + virtual RESULT getDVBC(eDVBFrontendParametersCable &SWIG_OUTPUT) const = 0; + virtual RESULT getDVBT(eDVBFrontendParametersTerrestrial &SWIG_OUTPUT) const = 0; - virtual RESULT calculateDifference(const iDVBFrontendParameters *parm, int &diff) const = 0; - virtual RESULT getHash(unsigned long &hash) const = 0; + virtual RESULT calculateDifference(const iDVBFrontendParameters *parm, int &SWIG_OUTPUT) const = 0; + virtual RESULT getHash(unsigned long &SWIG_OUTPUT) const = 0; }; #define MAX_DISEQC_LENGTH 16 class eDVBDiseqcCommand { +#ifndef SWIG public: +#endif int len; __u8 data[MAX_DISEQC_LENGTH]; #if HAVE_DVB_API_VERSION < 3 int tone; int voltage; #endif +#ifdef SWIG +public: +#endif + void setCommandString(const char *str); }; class iDVBSatelliteEquipmentControl; @@ -333,9 +375,11 @@ 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; +#endif enum { stateIdle = 0, stateTuning = 1, @@ -343,7 +387,7 @@ public: stateLock = 3, stateLostLock = 4, }; - virtual RESULT getState(int &state)=0; + virtual RESULT getState(int &SWIG_OUTPUT)=0; enum { toneOff, toneOn }; @@ -354,22 +398,26 @@ public: virtual RESULT setVoltage(int voltage)=0; virtual RESULT sendDiseqc(const eDVBDiseqcCommand &diseqc)=0; virtual RESULT sendToneburst(int burst)=0; +#ifndef SWIG virtual RESULT setSEC(iDVBSatelliteEquipmentControl *sec)=0; virtual RESULT setSecSequence(const eSecCommandList &list)=0; - +#endif enum { bitErrorRate, signalPower, signalQuality, Locked, Synced }; virtual int readFrontendData(int type)=0; virtual PyObject *readTransponderData(bool original)=0; +#ifndef SWIG virtual RESULT getData(int num, int &data)=0; virtual RESULT setData(int num, int val)=0; - /* 0 means: not compatible. other values are a priority. */ virtual int isCompatibleWith(ePtr &feparm)=0; +#endif }; +TEMPLATE_TYPEDEF(ePtr, iDVBFrontendPtr); +#ifndef SWIG class iDVBSatelliteEquipmentControl: public iObject { public: @@ -382,6 +430,7 @@ struct eDVBCIRouting { int enabled; }; +#endif // SWIG class iDVBChannel: public iObject { @@ -396,15 +445,20 @@ public: state_last_instance, /* just one reference to this channel is left */ state_release /* channel is being shut down. */ }; - + virtual RESULT getState(int &SWIG_OUTPUT)=0; + + /* direct frontend access for raw channels and/or status inquiries. */ + virtual RESULT getFrontend(ePtr &)=0; + +#ifndef SWIG + virtual RESULT getCurrentFrontendParameters(ePtr &)=0; enum { evtEOF, evtSOF, evtFailed }; virtual RESULT connectStateChange(const Slot1 &stateChange, ePtr &connection)=0; virtual RESULT connectEvent(const Slot2 &eventChange, ePtr &connection)=0; - virtual RESULT getState(int &state)=0; - + /* demux capabilities */ enum { @@ -414,14 +468,14 @@ public: virtual RESULT setCIRouting(const eDVBCIRouting &routing)=0; virtual RESULT getDemux(ePtr &demux, int cap=0)=0; - /* direct frontend access for raw channels and/or status inquiries. */ - virtual RESULT getFrontend(ePtr &frontend)=0; - virtual RESULT getCurrentFrontendParameters(ePtr &)=0; - /* use count handling */ virtual void AddUse() = 0; virtual void ReleaseUse() = 0; +#endif }; +TEMPLATE_TYPEDEF(eUsePtr, iDVBChannelPtr); + +#ifndef SWIG /* signed, so we can express deltas. */ @@ -500,7 +554,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; @@ -558,4 +612,5 @@ public: virtual RESULT getPTS(int what, pts_t &pts) = 0; }; +#endif //SWIG #endif