git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix bug: last char in removeDVBChars was removed
[enigma2.git]
/
lib
/
dvb
/
idvb.h
diff --git
a/lib/dvb/idvb.h
b/lib/dvb/idvb.h
index d338f298533ae4ffaf2ddd84caf58baab0322708..bd528f0657a79b6496d3780d4899b560150dfe00 100644
(file)
--- a/
lib/dvb/idvb.h
+++ b/
lib/dvb/idvb.h
@@
-15,6
+15,13
@@
#include <libsig_comp.h>
#include <connection.h>
#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
{
// bitte KEINE operator int() definieren, sonst bringt das ganze nix!
struct eTransportStreamID
{
@@
-170,8
+177,18
@@
class eDVBService: public iStaticServiceInformation
{
DECLARE_REF(eDVBService);
public:
{
DECLARE_REF(eDVBService);
public:
+ enum cacheID
+ {
+ cVPID, cAPID, cTPID, cPCRPID, cAC3PID, cacheMax
+ };
+
+ int getCachePID(cacheID);
+ void setCachePID(cacheID, int);
+ bool cacheEmpty() { return m_cache.empty(); }
+
eDVBService();
eDVBService();
- std::string m_service_name;
+ /* m_service_name_sort is uppercase, with special chars removed, to increase sort performance. */
+ std::string m_service_name, m_service_name_sort;
std::string m_provider_name;
int m_flags;
std::string m_provider_name;
int m_flags;
@@
-183,8
+200,9
@@
public:
// iStaticServiceInformation
RESULT getName(const eServiceReference &ref, std::string &name);
// iStaticServiceInformation
RESULT getName(const eServiceReference &ref, std::string &name);
+ int getLength(const eServiceReference &ref);
- // for filtering:
+ /* for filtering: */
int checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query);
};
int checkFilter(const eServiceReferenceDVB &ref, const eDVBChannelQuery &query);
};
@@
-198,6
+216,7
@@
class iDVBChannelListQuery: public iObject
{
public:
virtual RESULT getNextResult(eServiceReferenceDVB &ref)=0;
{
public:
virtual RESULT getNextResult(eServiceReferenceDVB &ref)=0;
+ virtual int compareLessEqual(const eServiceReferenceDVB &a, const eServiceReferenceDVB &b)=0;
};
class eDVBChannelQuery: public iObject
};
class eDVBChannelQuery: public iObject
@@
-223,6
+242,10
@@
public:
int m_int;
eDVBChannelID m_channelid;
int m_int;
eDVBChannelID m_channelid;
+ /* 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);
ePtr<eDVBChannelQuery> m_p1, m_p2;
static RESULT compile(ePtr<eDVBChannelQuery> &res, std::string query);
ePtr<eDVBChannelQuery> m_p1, m_p2;
@@
-239,7
+262,9
@@
public:
virtual RESULT addService(const eServiceReferenceDVB &service, eDVBService *service)=0;
virtual RESULT getService(const eServiceReferenceDVB &reference, ePtr<eDVBService> &service)=0;
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;
};
class SatelliteDeliverySystemDescriptor;
@@
-376,7
+401,8
@@
public:
stateIdle = 0,
stateTuning = 1,
stateFailed = 2,
stateIdle = 0,
stateTuning = 1,
stateFailed = 2,
- stateLock = 3
+ stateLock = 3,
+ stateLostLock = 4,
};
virtual RESULT getState(int &state)=0;
enum {
};
virtual RESULT getState(int &state)=0;
enum {
@@
-413,19
+439,22
@@
public:
{
state_idle, /* not yet tuned */
state_tuning, /* currently tuning (first time) */
{
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;
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
{
enum
{
- cap
_decode
,
- cap_ci
+ cap
Decode = 1
,
+ /* capCI = 2 */
};
virtual RESULT setCIRouting(const eDVBCIRouting &routing)=0;
};
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;
/* direct frontend access for raw channels and/or status inquiries. */
virtual RESULT getFrontend(ePtr<iDVBFrontend> &frontend)=0;
@@
-435,6
+464,8
@@
public:
virtual void ReleaseUse() = 0;
};
virtual void ReleaseUse() = 0;
};
+typedef unsigned long long pts_t;
+
class iDVBPVRChannel: public iDVBChannel
{
public:
class iDVBPVRChannel: public iDVBChannel
{
public:
@@
-446,6
+477,12
@@
public:
/* FIXME: there are some very ugly buffer-end and ... related problems */
/* so this is VERY UGLY. */
virtual RESULT playFile(const char *file) = 0;
/* FIXME: there are some very ugly buffer-end and ... related problems */
/* so this is VERY UGLY. */
virtual RESULT playFile(const char *file) = 0;
+
+ virtual RESULT getLength(pts_t &pts) = 0;
+ virtual RESULT getCurrentPosition(pts_t &pos) = 0;
+ virtual RESULT seekTo(pts_t &pts) = 0;
+
+ // seekTo ...
};
class iDVBSectionReader;
};
class iDVBSectionReader;
@@
-458,6
+495,9
@@
public:
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 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 getCADemuxID(uint8_t &id)=0;
+ virtual RESULT flush()=0;
};
class iTSMPEGDecoder: public iObject
};
class iTSMPEGDecoder: public iObject