4 #include <lib/dvb/idvb.h>
5 #include <lib/base/object.h>
6 #include <lib/service/iservice.h>
7 #include <connection.h>
11 class FCCServiceChannels
14 std::map<eDVBChannelID, int> m_fcc_chids;
17 void addFCCService(const eServiceReference &service);
18 void removeFCCService(const eServiceReference &service);
19 int getFCCChannelID(std::map<eDVBChannelID, int> &fcc_chids);
22 typedef struct _tagFccElem
24 eServiceReference m_service_reference;
25 ePtr<eConnection> m_service_event_conn;
29 class eFCCServiceManager: public iObject, public Object
31 DECLARE_REF(eFCCServiceManager);
34 static eFCCServiceManager* m_instance;
35 std::map<ePtr<iPlayableService>, FCCServiceElem, std::less<iPlayableService*> > m_FCCServices;
36 FCCServiceChannels m_fccServiceChannels;
40 void FCCEvent(iPlayableService* service, int event);
42 PSignal1<void, int> m_fcc_event;
43 static eFCCServiceManager* getInstance();
44 eFCCServiceManager(eNavigation *navptr);
45 ~eFCCServiceManager();
53 SWIG_VOID(RESULT) playFCCService(const eServiceReference &ref, ePtr<iPlayableService> &SWIG_OUTPUT);
54 RESULT stopFCCService(const eServiceReference &sref);
55 RESULT stopFCCService();
56 RESULT cleanupFCCService();
57 RESULT tryFCCService(const eServiceReference &service, ePtr<iPlayableService> &ptr);
58 int isLocked(ePtr<iPlayableService> service);
59 PyObject *getFCCServiceList();
60 void printFCCServices();
61 static int getFCCChannelID(std::map<eDVBChannelID, int> &fcc_chids);
62 static bool checkAvailable(const eServiceReference &ref);
63 void setFCCEnable(int enable) { m_fcc_enable = (enable != 0); }
64 bool isEnable() { return m_fcc_enable; }
67 #endif /* __dvb_fcc_h */