#include <libsig_comp.h>
#include <connection.h>
+struct eBouquet
+{
+ std::string m_bouquet_name;
+ std::string m_path;
+ std::list<eServiceReference> m_services;
+};
+
// bitte KEINE operator int() definieren, sonst bringt das ganze nix!
struct eTransportStreamID
{
/* sort is only valid in root, and must be from the enum above. */
int m_sort;
+ std::string m_bouquet_name;
static RESULT compile(ePtr<eDVBChannelQuery> &res, std::string query);
virtual RESULT addService(const eServiceReferenceDVB &service, eDVBService *service)=0;
virtual RESULT getService(const eServiceReferenceDVB &reference, ePtr<eDVBService> &service)=0;
- virtual RESULT startQuery(ePtr<iDVBChannelListQuery> &query, eDVBChannelQuery *query)=0;
+ virtual RESULT getBouquet(const eServiceReference &ref, const eBouquet* &bouquet)=0;
+
+ virtual RESULT startQuery(ePtr<iDVBChannelListQuery> &query, eDVBChannelQuery *query, const eServiceReference &source)=0;
};
class SatelliteDeliverySystemDescriptor;
stateIdle = 0,
stateTuning = 1,
stateFailed = 2,
- stateLock = 3
+ stateLock = 3,
+ stateLostLock = 4,
};
virtual RESULT getState(int &state)=0;
enum {
{
state_idle, /* not yet tuned */
state_tuning, /* currently tuning (first time) */
+ state_failed, /* tuning failed. */
state_unavailable, /* currently unavailable, will be back without further interaction */
state_ok, /* ok */
state_release /* channel is being shut down. */
};
virtual RESULT connectStateChange(const Slot1<void,iDVBChannel*> &stateChange, ePtr<eConnection> &connection)=0;
virtual RESULT getState(int &state)=0;
+
+ /* demux capabilities */
enum
{
- cap_decode,
- cap_ci
+ capDecode = 1,
+ /* capCI = 2 */
};
virtual RESULT setCIRouting(const eDVBCIRouting &routing)=0;
- virtual RESULT getDemux(ePtr<iDVBDemux> &demux)=0;
+ virtual RESULT getDemux(ePtr<iDVBDemux> &demux, int cap=0)=0;
/* direct frontend access for raw channels and/or status inquiries. */
virtual RESULT getFrontend(ePtr<iDVBFrontend> &frontend)=0;
virtual RESULT getLength(pts_t &pts) = 0;
virtual RESULT getCurrentPosition(pts_t &pos) = 0;
+ virtual RESULT seekTo(pts_t &pts) = 0;
// seekTo ...
};
virtual RESULT getMPEGDecoder(ePtr<iTSMPEGDecoder> &reader)=0;
virtual RESULT getSTC(pts_t &pts)=0;
virtual RESULT getCADemuxID(uint8_t &id)=0;
+ virtual RESULT flush()=0;
};
class iTSMPEGDecoder: public iObject