Extend AudioSelection width, fix mediaplayer subtitle selection key
[enigma2.git] / lib / dvb_ci / dvbci.h
index 4e3fcce276bc5345526f8a765f0327e6c72107b4..de84e181cabbb24cd485fb257d45b172054f63ba 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,14 +56,16 @@ 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);
+       bool plugged;
 public:
        enum {stateRemoved, stateInserted, stateInvalid, stateResetted};
        eDVBCISlot(eMainloop *context, int nr);
@@ -87,6 +94,7 @@ public:
        void removeService(uint16_t program_number=0xFFFF);
        int getNumOfServices() { return running_services.size(); }
        int setSource(data_source source);
+       int setClockRate(int);
 };
 
 struct CIPmtHandler
@@ -139,6 +147,7 @@ public:
        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
@@ -146,6 +155,7 @@ public:
        int getNumOfSlots() { return m_slots.size(); }
        PyObject *getDescrambleRules(int slotid);
        RESULT setDescrambleRules(int slotid, SWIG_PYOBJECT(ePyObject) );
+       PyObject *readCICaIds(int slotid);
 };
 
 #endif