X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c2f1a638b1eb861d1a8e97530adfcefd65ff6ac0..760994da671541bb1a70424839592858d5e5c080:/lib/dvb/idvb.h diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index bd528f06..ea5e2568 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -9,6 +9,7 @@ #include #define FRONTENDPARAMETERS struct dvb_frontend_parameters #endif +#include #include #include #include @@ -19,7 +20,13 @@ struct eBouquet { std::string m_bouquet_name; std::string m_path; - std::list m_services; + typedef std::list list; + list m_services; +// the following four methods are implemented in db.cpp + RESULT flushChanges(); + RESULT addService(const eServiceReference &); + RESULT removeService(const eServiceReference &); + RESULT moveService(const eServiceReference &, unsigned int); }; // bitte KEINE operator int() definieren, sonst bringt das ganze nix! @@ -262,104 +269,11 @@ public: virtual RESULT addService(const eServiceReferenceDVB &service, eDVBService *service)=0; virtual RESULT getService(const eServiceReferenceDVB &reference, ePtr &service)=0; - virtual RESULT getBouquet(const eServiceReference &ref, const eBouquet* &bouquet)=0; + virtual RESULT getBouquet(const eServiceReference &ref, eBouquet* &bouquet)=0; virtual RESULT startQuery(ePtr &query, eDVBChannelQuery *query, const eServiceReference &source)=0; }; -class SatelliteDeliverySystemDescriptor; -class CableDeliverySystemDescriptor; -class TerrestrialDeliverySystemDescriptor; - -struct eDVBFrontendParametersSatellite -{ - struct Polarisation - { - enum { - Horizontal, Vertical, CircularLeft, CircularRight - }; - }; - struct Inversion - { - enum { - On, Off, Unknown - }; - }; - struct FEC - { - enum { - fNone, f1_2, f2_3, f3_4, f5_6, f7_8, fAuto - }; - }; - unsigned int frequency, symbol_rate; - int polarisation, fec, inversion, orbital_position; - - void set(const SatelliteDeliverySystemDescriptor &); -}; - -struct eDVBFrontendParametersCable -{ - unsigned int frequency, symbol_rate; - int modulation, inversion, fec_inner; - void set(const CableDeliverySystemDescriptor &); -}; - -struct eDVBFrontendParametersTerrestrial -{ - 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 &); -}; - class iDVBFrontendParameters: public iObject { public: @@ -464,7 +378,8 @@ public: virtual void ReleaseUse() = 0; }; -typedef unsigned long long pts_t; + /* signed, so we can express deltas. */ +typedef long long pts_t; class iDVBPVRChannel: public iDVBChannel { @@ -480,9 +395,8 @@ public: virtual RESULT getLength(pts_t &pts) = 0; virtual RESULT getCurrentPosition(pts_t &pos) = 0; - virtual RESULT seekTo(pts_t &pts) = 0; - - // seekTo ... + virtual RESULT seekTo(int relative, pts_t &pts) = 0; + virtual RESULT seekToPosition(const off_t &pts) = 0; }; class iDVBSectionReader;