TUNER_A, TUNER_B, TUNER_C, TUNER_D, CI_A, CI_B, CI_C, CI_D
};
+typedef std::pair<std::string, uint32_t> providerPair;
+typedef std::set<providerPair> providerSet;
+typedef std::set<uint16_t> caidSet;
+typedef std::set<eServiceReference> serviceSet;
+
class eDVBCISlot: public iObject, public Object
{
friend class eDVBCIInterfaces;
eDVBCICAManagerSession *ca_manager;
eDVBCIMMISession *mmi_session;
std::priority_queue<queueData> sendqueue;
- std::set<uint16_t> possible_caids;
- std::set<eServiceReference> possible_services;
- std::set<std::string> possible_providers;
+ caidSet possible_caids;
+ serviceSet possible_services;
+ providerSet possible_providers;
int use_count;
eDVBCISlot *linked_next; // needed for linked CI handling
data_source current_source;
int current_tuner;
+ bool user_mapped;
void data(int);
+ bool plugged;
public:
enum {stateRemoved, stateInserted, stateInvalid, stateResetted};
eDVBCISlot(eMainloop *context, int nr);
void removeService(uint16_t program_number=0xFFFF);
int getNumOfServices() { return running_services.size(); }
int setSource(data_source source);
+ int setClockRate(int);
};
struct CIPmtHandler
int getMMIState(int slot);
int sendCAPMT(int slot);
int setInputSource(int tunerno, data_source source);
+ int setCIClockRate(int slot, int rate);
#ifdef SWIG
public:
#endif
int getNumOfSlots() { return m_slots.size(); }
PyObject *getDescrambleRules(int slotid);
RESULT setDescrambleRules(int slotid, SWIG_PYOBJECT(ePyObject) );
+ PyObject *readCICaIds(int slotid);
};
#endif