openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
fbc.h
Go to the documentation of this file.
1 #ifndef __dvb_fbc_h
2 #define __dvb_fbc_h
3 
4 /* FBC Manager */
5 #include <lib/base/ebase.h>
6 #include <lib/base/object.h>
7 #include <lib/base/eptrlist.h>
8 #include <lib/dvb/idvb.h>
9 #include <map>
10 
13 
14 typedef struct fbc_tuner
15 {
16  int fbcSetID;
17  int fbcIndex;
18  bool isRoot;
19  int initFbcId;
21 
22 
23 class eFBCTunerManager: public iObject, public sigc::trackable
24 {
25 private:
26  DECLARE_REF(eFBCTunerManager);
27  ePtr<eDVBResourceManager> m_res_mgr;
28  static eFBCTunerManager *m_instance;
29  std::map<int, FBC_TUNER> m_fbc_tuners;
30 
31  int SetProcFBCID(int fe_id, int root_idx, bool is_linked);
32  int FESlotID(const eDVBRegisteredFrontend *fe) const;
33  bool IsLinked(eDVBRegisteredFrontend *fe) const;
34  bool isUnicable(eDVBRegisteredFrontend *fe) const;
35  bool IsFEUsed(eDVBRegisteredFrontend *fe, bool a_simulate) const;
36  bool IsSameFBCSet(int fe_id_a, int fe_id_b);
37  bool IsRootFE(eDVBRegisteredFrontend *fe);
38  int GetFBCID(int fe_id);
39  int GetDefaultFBCID(int fe_id);
40 
45  eDVBRegisteredFrontend *GetSimulFE(eDVBRegisteredFrontend *fe) const;
46 
47  void ConnectLink(eDVBRegisteredFrontend *link_fe, eDVBRegisteredFrontend *prev_fe, eDVBRegisteredFrontend *next_fe, bool simulate);
48  void DisconnectLink(eDVBRegisteredFrontend *link_fe, eDVBRegisteredFrontend *prev_fe, eDVBRegisteredFrontend *next_fe, bool simulate);
49  int UpdateLNBSlotMask(int dest_slot, int src_slot, bool remove);
50  void PrintLinks(eDVBRegisteredFrontend *fe) const;
51 
52 public:
53  static eFBCTunerManager* getInstance();
55  virtual ~eFBCTunerManager();
59  void AddLink(eDVBRegisteredFrontend *link_fe, eDVBRegisteredFrontend *top_fe, bool simulate);
60  void Unlink(eDVBRegisteredFrontend *link_fe);
62  int getLinkedSlotID(int feid) const;
63  int getFBCSetID(int fe_id);
64  bool IsFBCLink(int fe_id);
65 };
66 
67 #endif /* __dvb_fbc_h */
68 
Definition: dvb.h:27
Definition: dvb.h:161
Definition: fbc.h:24
eFBCTunerManager(ePtr< eDVBResourceManager > res_mgr)
Definition: fbc.cpp:78
int IsCompatibleWith(ePtr< iDVBFrontendParameters > &feparm, eDVBRegisteredFrontend *link_fe, eDVBRegisteredFrontend *&fbc_fe, bool simulate)
Definition: fbc.cpp:364
void SetDefaultFBCID(eDVBRegisteredFrontend *fe)
Definition: fbc.cpp:187
virtual ~eFBCTunerManager()
Definition: fbc.cpp:159
bool CanLink(eDVBRegisteredFrontend *fe)
Definition: fbc.cpp:576
int getFBCSetID(int fe_id)
Definition: fbc.cpp:264
int getLinkedSlotID(int feid) const
Definition: fbc.cpp:581
void UpdateFBCID(eDVBRegisteredFrontend *next_fe, eDVBRegisteredFrontend *prev_fe)
Definition: fbc.cpp:193
static eFBCTunerManager * getInstance()
Definition: fbc.cpp:73
void Unlink(eDVBRegisteredFrontend *link_fe)
Definition: fbc.cpp:495
bool IsFBCLink(int fe_id)
Definition: fbc.cpp:605
void AddLink(eDVBRegisteredFrontend *link_fe, eDVBRegisteredFrontend *top_fe, bool simulate)
Definition: fbc.cpp:434
Definition: object.h:15
struct fbc_tuner FBC_TUNER
Definition: fbc.h:15
int initFbcId
Definition: fbc.h:19
bool isRoot
Definition: fbc.h:18
int fbcIndex
Definition: fbc.h:17
int fbcSetID
Definition: fbc.h:16