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)
virtual RESULT startQuery(ePtr<iDVBChannelListQuery> &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<iDVBChannelList> &list)=0;
- virtual RESULT allocateChannel(const eDVBChannelID &channel, ePtr<iDVBChannel> &channel)=0;
- virtual RESULT allocateRawChannel(ePtr<iDVBChannel> &channel)=0;
- virtual RESULT allocatePVRChannel(int caps)=0;
-};
-
class SatelliteDeliverySystemDescriptor;
class CableDeliverySystemDescriptor;
class TerrestrialDeliverySystemDescriptor;
#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;
+class eSecCommandList;
class iDVBFrontend: public iObject
{
};
virtual RESULT getState(int &state)=0;
enum {
- toneOn, toneOff
+ toneOff, toneOn
};
virtual RESULT setTone(int tone)=0;
enum {
};
virtual RESULT setVoltage(int voltage)=0;
virtual RESULT sendDiseqc(const eDVBDiseqcCommand &diseqc)=0;
+ virtual RESULT sendToneburst(int burst)=0;
virtual RESULT setSEC(iDVBSatelliteEquipmentControl *sec)=0;
+ virtual RESULT setSecSequence(const eSecCommandList &list)=0;
+ virtual RESULT getData(int num, int &data)=0;
+ virtual RESULT setData(int num, int val)=0;
};
class iDVBSatelliteEquipmentControl: public iObject
};
class iDVBSectionReader;
+class iDVBTSRecorder;
class iTSMPEGDecoder;
class iDVBDemux: public iObject
{
public:
virtual RESULT createSectionReader(eMainloop *context, ePtr<iDVBSectionReader> &reader)=0;
+ virtual RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder)=0;
virtual RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader)=0;
};