X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c326dee2e7ce346cffecd196d971dd91ef1454f5..0528c4567801f2ca68168d3f9a9d3771ca2eec5c:/lib/dvb_ci/dvbci_camgr.cpp diff --git a/lib/dvb_ci/dvbci_camgr.cpp b/lib/dvb_ci/dvbci_camgr.cpp index d700b0a1..ef69ed4d 100644 --- a/lib/dvb_ci/dvbci_camgr.cpp +++ b/lib/dvb_ci/dvbci_camgr.cpp @@ -2,6 +2,17 @@ #include +eDVBCICAManagerSession::eDVBCICAManagerSession(eDVBCISlot *tslot) +{ + slot = tslot; + slot->setCAManager(this); +} + +eDVBCICAManagerSession::~eDVBCICAManagerSession() +{ + slot->setCAManager(NULL); +} + int eDVBCICAManagerSession::receivedAPDU(const unsigned char *tag, const void *data, int len) { printf("SESSION(%d)/CA %02x %02x %02x: ", session_nb, tag[0], tag[1],tag[2]); @@ -20,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]); @@ -47,3 +60,13 @@ int eDVBCICAManagerSession::doAction() return 0; } } + +int eDVBCICAManagerSession::sendCAPMT(unsigned char *data, int len) +{ + const unsigned char tag[3]={0x9F, 0x80, 0x32}; // ca_pmt + + sendAPDU(tag, data, len); + + return 0; +} +