X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/81b381e1f5dd38ad1b80a3b3d96060b89a5fab6c..0d34f9703fc13e99c4d76a0ee539d58d39dded2d:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 699474d3..c1c0377f 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -19,7 +19,7 @@ struct eBouquet { std::string m_bouquet_name; - std::string m_path; + std::string m_filename; // without path.. just name typedef std::list list; list m_services; // the following four methods are implemented in db.cpp @@ -153,6 +153,12 @@ struct eServiceReferenceDVB: public eServiceReference eDVBNamespace getDVBNamespace() const { return eDVBNamespace(data[4]); } void setDVBNamespace(eDVBNamespace dvbnamespace) { data[4]=dvbnamespace.get(); } + eServiceID getParentServiceID() const { return eServiceID(data[5]); } + void setParentServiceID( eServiceID sid ) { data[5]=sid.get(); } + + eTransportStreamID getParentTransportStreamID() const { return eTransportStreamID(data[6]); } + void setParentTransportStreamID( eTransportStreamID tsid ) { data[6]=tsid.get(); } + eServiceReferenceDVB(eDVBNamespace dvbnamespace, eTransportStreamID transport_stream_id, eOriginalNetworkID original_network_id, eServiceID service_id, int service_type) :eServiceReference(eServiceReference::idDVB, 0) { @@ -218,8 +224,9 @@ public: // iStaticServiceInformation RESULT getName(const eServiceReference &ref, std::string &name); - int getLength(const eServiceReference &ref); - + RESULT getEvent(const eServiceReference &ref, ePtr &ptr, time_t start_time); + bool isPlayable(const eServiceReference &ref, const eServiceReference &ignore); + /* for filtering: */ int checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query); }; @@ -343,6 +350,12 @@ public: virtual RESULT sendToneburst(int burst)=0; virtual RESULT setSEC(iDVBSatelliteEquipmentControl *sec)=0; virtual RESULT setSecSequence(const eSecCommandList &list)=0; + + enum { + bitErrorRate, signalPower, signalQuality + }; + virtual int readFrontendData(int type)=0; + virtual RESULT getData(int num, int &data)=0; virtual RESULT setData(int num, int val)=0; @@ -355,6 +368,7 @@ class iDVBSatelliteEquipmentControl: public iObject public: virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat, int frontend_id)=0; virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id)=0; + virtual void setRotorMoving(bool)=0; }; struct eDVBCIRouting @@ -415,7 +429,7 @@ public: can be shared between multiple decoders. Of couse skipping doesn't make much sense then, but getCurrentPosition does. */ - virtual RESULT getCurrentPosition(iDVBDemux *decoding_demux, pts_t &pos) = 0; + virtual RESULT getCurrentPosition(iDVBDemux *decoding_demux, pts_t &pos, int mode) = 0; virtual RESULT seekTo(iDVBDemux *decoding_demux, int relative, pts_t &pts) = 0; virtual RESULT seekToPosition(iDVBDemux *decoding_demux, const off_t &pts) = 0; }; @@ -430,7 +444,7 @@ public: virtual RESULT createSectionReader(eMainloop *context, ePtr &reader)=0; virtual RESULT createTSRecorder(ePtr &recorder)=0; virtual RESULT getMPEGDecoder(ePtr &reader)=0; - virtual RESULT getSTC(pts_t &pts)=0; + virtual RESULT getSTC(pts_t &pts, int num=0)=0; virtual RESULT getCADemuxID(uint8_t &id)=0; virtual RESULT flush()=0; }; @@ -460,6 +474,9 @@ public: /** Continue after freeze. */ virtual RESULT unfreeze()=0; + /** fast forward by skipping frames. 0 is disabled, 2 is twice-the-speed, ... */ + virtual RESULT setFastForward(int skip=0)=0; + // stop on .. Picture enum { spm_I, spm_Ref, spm_Any }; /** Stop on specific decoded picture. For I-Frame display. */ @@ -475,6 +492,8 @@ public: enum { zoom_Normal, zoom_PanScan, zoom_Letterbox, zoom_Fullscreen }; /** Set Zoom. mode *must* be fitting. */ virtual RESULT setZoom(int what)=0; + + virtual RESULT setTrickmode(int what) = 0; }; #endif