openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
db.h
Go to the documentation of this file.
1 #ifndef __db_h
2 #define __db_h
3 
4 #ifndef SWIG
5 #include <lib/dvb/idvb.h>
6 #include <lib/dvb/frontend.h>
7 #include <lib/base/eptrlist.h>
8 #include <set>
9 #include <vector>
10 class ServiceDescriptionSection;
11 #endif
12 
13 class eDVBDB: public iDVBChannelList
14 {
15  DECLARE_REF(eDVBDB);
16  static eDVBDB *instance;
17  friend class eDVBDBQuery;
18  friend class eDVBDBBouquetQuery;
19  friend class eDVBDBSatellitesQuery;
20  friend class eDVBDBProvidersQuery;
21  friend class eRTSPStreamClient;
22 
23  struct channel
24  {
25  ePtr<iDVBFrontendParameters> m_frontendParameters;
26  };
27 
28  std::map<eDVBChannelID, channel> m_channels;
29 
30  std::map<eServiceReferenceDVB, ePtr<eDVBService> > m_services;
31 
32  std::map<std::string, eBouquet> m_bouquets;
33 
34  bool m_numbering_mode, m_load_unlinked_userbouquets;
35 #ifdef SWIG
36  eDVBDB();
37  ~eDVBDB();
38 #endif
39 private:
40  void loadServiceListV5(FILE * f);
41 public:
42 // iDVBChannelList
43  RESULT removeFlags(unsigned int flagmask, int dvb_namespace=-1, int tsid=-1, int onid=-1, unsigned int orb_pos=0xFFFFFFFF);
44  RESULT removeServices(int dvb_namespace=-1, int tsid=-1, int onid=-1, unsigned int orb_pos=0xFFFFFFFF);
46  PyObject *getFlag(const eServiceReference &service);
47  PyObject *getCachedPid(const eServiceReference &service, int id);
48  bool isCrypted(const eServiceReference &service);
49  bool hasCAID(const eServiceReference &service, unsigned int caid);
50  RESULT addCAID(const eServiceReference &service, unsigned int caid);
51  RESULT addFlag(const eServiceReference &service, unsigned int flagmask);
52  RESULT removeFlag(const eServiceReference &service, unsigned int flagmask);
53  void removeServicesFlag(unsigned int flagmask);
54  PyObject *readSatellites(SWIG_PYOBJECT(ePyObject) sat_list, SWIG_PYOBJECT(ePyObject) sat_dict, SWIG_PYOBJECT(ePyObject) tp_dict);
55  PyObject *readTerrestrials(SWIG_PYOBJECT(ePyObject) ter_list, SWIG_PYOBJECT(ePyObject) tp_dict);
56  PyObject *readCables(SWIG_PYOBJECT(ePyObject) cab_list, SWIG_PYOBJECT(ePyObject) tp_dict);
57  PyObject *readATSC(SWIG_PYOBJECT(ePyObject) atsc_list, SWIG_PYOBJECT(ePyObject) tp_dict);
58 #ifndef SWIG
59  RESULT removeFlags(unsigned int flagmask, eDVBChannelID chid, unsigned int orb_pos);
60  RESULT removeServices(eDVBChannelID chid, unsigned int orb_pos);
62 
65 
67 
70  RESULT flush();
71 
73 
74  RESULT getBouquet(const eServiceReference &ref, eBouquet* &bouquet);
76  void loadBouquet(const char *path);
77  void searchAllReferences(std::vector<eServiceReference> &result, int tsid, int onid, int sid);
78  eDVBDB();
79  virtual ~eDVBDB();
80  int renumberBouquet(eBouquet &bouquet, int startChannelNum = 1);
81 #endif
82  eServiceReference searchReference(int tsid, int onid, int sid);
83  void setNumberingMode(bool numberingMode);
84  void setLoadUnlinkedUserbouquets(bool value) { m_load_unlinked_userbouquets=value; }
85  void renumberBouquet();
86  void loadServicelist(const char *filename);
87  static eDVBDB *getInstance() { return instance; }
88  void reloadServicelist();
89  void saveServicelist();
90  void saveServicelist(const char *file);
91  void reloadBouquets();
92  bool isValidService(int tsid, int onid, int sid);
93  void parseServiceData(ePtr<eDVBService> s, std::string str);
94 };
95 
96 #ifndef SWIG
97  // we have to add a possibility to invalidate here.
99 {
100  DECLARE_REF(eDVBDBQueryBase);
101 protected:
105 public:
107  virtual int compareLessEqual(const eServiceReferenceDVB &a, const eServiceReferenceDVB &b);
108 };
109 
111 {
112  std::map<eServiceReferenceDVB, ePtr<eDVBService> >::iterator m_cursor;
113 public:
116 };
117 
119 {
120  std::list<eServiceReference>::iterator m_cursor;
121 public:
124 };
125 
127 {
128 protected:
129  std::list<eServiceReferenceDVB> m_list;
130  std::list<eServiceReferenceDVB>::iterator m_cursor;
131 public:
135 };
136 
138 {
139 public:
141 };
142 
144 {
145 public:
147 };
148 #endif // SWIG
149 
150 #endif
Definition: idvb.h:409
Definition: db.h:119
RESULT getNextResult(eServiceReferenceDVB &ref)
Definition: db.cpp:2574
eDVBDBBouquetQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query)
Definition: db.cpp:2569
Definition: db.h:14
RESULT removeFlags(unsigned int flagmask, int dvb_namespace=-1, int tsid=-1, int onid=-1, unsigned int orb_pos=0xFFFFFFFF)
Definition: db.cpp:2260
void reloadServicelist()
Definition: db.cpp:429
RESULT addService(const eServiceReferenceDVB &referenc, eDVBService *service)
Definition: db.cpp:2352
RESULT removeService(const eServiceReference &service)
Definition: db.cpp:2029
void parseServiceData(ePtr< eDVBService > s, std::string str)
Definition: db.cpp:435
void saveServicelist()
Definition: db.cpp:1061
virtual ~eDVBDB()
Definition: db.cpp:2024
RESULT removeServices(int dvb_namespace=-1, int tsid=-1, int onid=-1, unsigned int orb_pos=0xFFFFFFFF)
Definition: db.cpp:2044
RESULT flush()
Definition: db.cpp:2373
void removeServicesFlag(unsigned int flagmask)
Definition: db.cpp:2251
RESULT startQuery(ePtr< iDVBChannelListQuery > &query, eDVBChannelQuery *q, const eServiceReference &source)
Definition: db.cpp:2413
PyObject * readTerrestrials(SWIG_PYOBJECT(ePyObject) ter_list, SWIG_PYOBJECT(ePyObject) tp_dict)
Definition: db.cpp:1715
RESULT getChannelFrontendData(const eDVBChannelID &id, ePtr< iDVBFrontendParameters > &parm)
Definition: db.cpp:2340
bool isCrypted(const eServiceReference &service)
Definition: db.cpp:2181
void setLoadUnlinkedUserbouquets(bool value)
Definition: db.h:84
void setNumberingMode(bool numberingMode)
Definition: db.cpp:1318
eServiceReference searchReference(int tsid, int onid, int sid)
Definition: db.cpp:2447
RESULT addFlag(const eServiceReference &service, unsigned int flagmask)
Definition: db.cpp:2225
RESULT addChannelToList(const eDVBChannelID &id, iDVBFrontendParameters *feparm)
Definition: db.cpp:2321
PyObject * getFlag(const eServiceReference &service)
Definition: db.cpp:2157
RESULT getService(const eServiceReferenceDVB &reference, ePtr< eDVBService > &service)
Definition: db.cpp:2360
RESULT removeFlag(const eServiceReference &service, unsigned int flagmask)
Definition: db.cpp:2238
void reloadBouquets()
Definition: db.cpp:1272
eDVBDB()
Definition: db.cpp:1364
PyObject * readSatellites(SWIG_PYOBJECT(ePyObject) sat_list, SWIG_PYOBJECT(ePyObject) sat_dict, SWIG_PYOBJECT(ePyObject) tp_dict)
Definition: db.cpp:1371
void searchAllReferences(std::vector< eServiceReference > &result, int tsid, int onid, int sid)
Definition: db.cpp:2463
void loadBouquet(const char *path)
Definition: db.cpp:1066
static eDVBDB * getInstance()
Definition: db.h:87
bool isValidService(int tsid, int onid, int sid)
Definition: db.cpp:2431
void renumberBouquet()
Definition: db.cpp:1311
RESULT getBouquet(const eServiceReference &ref, eBouquet *&bouquet)
Definition: db.cpp:2379
RESULT addCAID(const eServiceReference &service, unsigned int caid)
Definition: db.cpp:2210
PyObject * readCables(SWIG_PYOBJECT(ePyObject) cab_list, SWIG_PYOBJECT(ePyObject) tp_dict)
Definition: db.cpp:1565
PyObject * readATSC(SWIG_PYOBJECT(ePyObject) atsc_list, SWIG_PYOBJECT(ePyObject) tp_dict)
Definition: db.cpp:1897
bool hasCAID(const eServiceReference &service, unsigned int caid)
Definition: db.cpp:2195
RESULT removeChannel(const eDVBChannelID &id)
Definition: db.cpp:2334
void loadServicelist(const char *filename)
Definition: db.cpp:715
PyObject * getCachedPid(const eServiceReference &service, int id)
Definition: db.cpp:2169
Definition: db.h:127
eDVBDBListQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query)
Definition: db.cpp:2598
std::list< eServiceReferenceDVB > m_list
Definition: db.h:129
int compareLessEqual(const eServiceReferenceDVB &a, const eServiceReferenceDVB &b)
Definition: db.cpp:2614
std::list< eServiceReferenceDVB >::iterator m_cursor
Definition: db.h:130
RESULT getNextResult(eServiceReferenceDVB &ref)
Definition: db.cpp:2603
Definition: db.h:144
eDVBDBProvidersQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query)
Definition: db.cpp:2679
Definition: db.h:99
ePtr< eDVBDB > m_db
Definition: db.h:102
eServiceReference m_source
Definition: db.h:104
virtual int compareLessEqual(const eServiceReferenceDVB &a, const eServiceReferenceDVB &b)
Definition: db.cpp:2485
ePtr< eDVBChannelQuery > m_query
Definition: db.h:103
eDVBDBQueryBase(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query)
Definition: db.cpp:2480
Definition: db.h:111
RESULT getNextResult(eServiceReferenceDVB &ref)
Definition: db.cpp:2544
eDVBDBQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query)
Definition: db.cpp:2538
Definition: db.h:138
eDVBDBSatellitesQuery(eDVBDB *db, const eServiceReference &source, eDVBChannelQuery *query)
Definition: db.cpp:2632
Definition: idvb.h:323
Definition: python.h:31
Definition: rtspstreamserver.h:17
Definition: idvb.h:192
Definition: iservice.h:15
Definition: idvb.h:443
Definition: idvb.h:402
Definition: idvb.h:475
const char * filename
Definition: epng.h:36
file
Definition: newplugin.py:100
string path
Definition: FindPicon.py:11
value
Definition: Profile.py:29
list ref
Definition: create_picon_e1_to_e2.py:17
source
Definition: enigma_py_patcher.py:9
str
Definition: enigma_py_patcher.py:14
db
Definition: lamedb2satxml.py:14
int RESULT
Definition: object.h:12
else result
Definition: picload.cpp:1534
#define f
Definition: rotor_calc.cpp:143
Definition: idvb.h:62
Definition: idvb.h:144
Definition: dvb/scan.h:16
#define SWIG_PYOBJECT(x)
Definition: swig.h:23