add SubtitleDisplay screen
[enigma2.git] / lib / dvb_ci / dvbci_camgr.cpp
index b76514649a8c5f6ae692a4106b85af71a226ef90..ef69ed4d5c286afad40ff446429f21cc7c5c56e6 100644 (file)
@@ -5,12 +5,12 @@
 eDVBCICAManagerSession::eDVBCICAManagerSession(eDVBCISlot *tslot)
 {
        slot = tslot;
-       slot->ca_manager = this;
+       slot->setCAManager(this);
 }
 
 eDVBCICAManagerSession::~eDVBCICAManagerSession()
 {
-       slot->ca_manager = 0;
+       slot->setCAManager(NULL);
 }
 
 int eDVBCICAManagerSession::receivedAPDU(const unsigned char *tag, const void *data, int len)
@@ -31,7 +31,9 @@ int eDVBCICAManagerSession::receivedAPDU(const unsigned char *tag, const void *d
                                printf("%04x ", (((const unsigned char*)data)[i]<<8)|(((const unsigned char*)data)[i+1]));
                                caids.push_back((((const unsigned char*)data)[i]<<8)|(((const unsigned char*)data)[i+1]));
                        }
+                       std::sort(caids.begin(), caids.end());
                        printf("\n");
+                       eDVBCIInterfaces::getInstance()->recheckPMTHandlers();
                        break;
                default:
                        printf("unknown APDU tag 9F 80 %02x\n", tag[2]);
@@ -61,9 +63,10 @@ int eDVBCICAManagerSession::doAction()
 
 int eDVBCICAManagerSession::sendCAPMT(unsigned char *data, int len)
 {
-       int i;
        const unsigned char tag[3]={0x9F, 0x80, 0x32}; // ca_pmt
 
-  sendAPDU(tag, data, len);
+       sendAPDU(tag, data, len);
+
+       return 0;
 }