X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/54bd4123728628a6f77bad2584b70d1353a91666..1d7e5720b3e8653604323b981e37af1f6aa61709:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 4d728b4c..ef052d42 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -77,6 +77,14 @@ struct eDVBChannelID eDVBNamespace dvbnamespace; eTransportStreamID transport_stream_id; eOriginalNetworkID original_network_id; + + bool operator==(const eDVBChannelID &c) const + { + return dvbnamespace == c.dvbnamespace && + transport_stream_id == c.transport_stream_id && + original_network_id == c.original_network_id; + } + bool operator<(const eDVBChannelID &c) const { if (dvbnamespace < c.dvbnamespace) @@ -160,7 +168,7 @@ class eDVBChannelQuery; class eDVBService: public iStaticServiceInformation { - DECLARE_REF; + DECLARE_REF(eDVBService); public: eDVBService(); std::string m_service_name; @@ -194,7 +202,7 @@ public: class eDVBChannelQuery: public iObject { - DECLARE_REF; + DECLARE_REF(eDVBChannelQuery); public: enum { @@ -234,24 +242,6 @@ public: virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query)=0; }; -class iDVBResourceManager: public iObject -{ -public: - /* - solange rumloopen bis eine resource gefunden wurde, die eine frequenz - tunen will - - wenn natuerlich sowas schon vorhanden ist, dann einfach ne ref darauf - geben. (zwei services auf dem gleichen transponder teilen sich einen - channel) - */ - virtual RESULT setChannelList(iDVBChannelList *list)=0; - virtual RESULT getChannelList(ePtr &list)=0; - virtual RESULT allocateChannel(const eDVBChannelID &channel, ePtr &channel)=0; - virtual RESULT allocateRawChannel(ePtr &channel)=0; - virtual RESULT allocatePVRChannel(int caps)=0; -}; - class SatelliteDeliverySystemDescriptor; class CableDeliverySystemDescriptor; class TerrestrialDeliverySystemDescriptor; @@ -291,7 +281,57 @@ struct eDVBFrontendParametersCable struct eDVBFrontendParametersTerrestrial { - int unknown; + unsigned int frequency; + struct Bandwidth { + enum { Bw8MHz, Bw7MHz, Bw6MHz, BwAuto }; + }; + + struct FEC + { + enum { + fNone, f1_2, f2_3, f3_4, f5_6, f7_8, fAuto + }; + }; + + struct TransmissionMode { + enum { + TM2k, TM8k, TMAuto + }; + }; + + struct GuardInterval { + enum { + GI_1_32, GI_1_16, GI_1_8, GI_1_4, GI_Auto + }; + }; + + struct Hierarchy { + enum { + HNone, H1, H2, H4, HAuto + }; + }; + + struct Modulation { + enum { + QPSK, QAM16, Auto + }; + }; + + struct Inversion + { + enum { + On, Off, Unknown + }; + }; + + int bandwidth; + int code_rate_HP, code_rate_LP; + int modulation; + int transmission_mode; + int guard_interval; + int hierarchy; + int inversion; + void set(const TerrestrialDeliverySystemDescriptor &); }; @@ -309,10 +349,15 @@ public: #define MAX_DISEQC_LENGTH 16 -struct eDVBDiseqcCommand +class eDVBDiseqcCommand { +public: int len; __u8 data[MAX_DISEQC_LENGTH]; +#if HAVE_DVB_API_VERSION < 3 + int tone; + int voltage; +#endif }; class iDVBSatelliteEquipmentControl; @@ -381,12 +426,14 @@ public: }; class iDVBSectionReader; +class iDVBTSRecorder; class iTSMPEGDecoder; 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; };