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)
{
// iStaticServiceInformation
RESULT getName(const eServiceReference &ref, std::string &name);
- int getLength(const eServiceReference &ref);
-
+ RESULT getEvent(const eServiceReference &ref, ePtr<eServiceEvent> &ptr, time_t start_time);
+ bool isPlayable(const eServiceReference &ref, const eServiceReference &ignore);
+
/* for filtering: */
int checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query);
};
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;
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
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;
};
virtual RESULT createSectionReader(eMainloop *context, ePtr<iDVBSectionReader> &reader)=0;
virtual RESULT createTSRecorder(ePtr<iDVBTSRecorder> &recorder)=0;
virtual RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &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;
};
/** 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. */
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