some CI fixes
[enigma2.git] / lib / dvb_ci / dvbci.h
index 4e3fcce276bc5345526f8a765f0327e6c72107b4..c06ae7e3029cfb340acef2377b78eacaf00ee0a0 100644 (file)
@@ -38,6 +38,11 @@ enum data_source
        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;
@@ -51,13 +56,14 @@ class eDVBCISlot: public iObject, public Object
        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);
 public:
        enum {stateRemoved, stateInserted, stateInvalid, stateResetted};