X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c326dee2e7ce346cffecd196d971dd91ef1454f5..ebd1552cdd3e60d5eb21f97e46570de2e17ed19f:/lib/dvb_ci/dvbci_camgr.cpp diff --git a/lib/dvb_ci/dvbci_camgr.cpp b/lib/dvb_ci/dvbci_camgr.cpp index d700b0a1..e1afd174 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]); @@ -21,6 +32,7 @@ int eDVBCICAManagerSession::receivedAPDU(const unsigned char *tag, const void *d caids.push_back((((const unsigned char*)data)[i]<<8)|(((const unsigned char*)data)[i+1])); } printf("\n"); + slot->resendCAPMT(); break; default: printf("unknown APDU tag 9F 80 %02x\n", tag[2]); @@ -47,3 +59,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; +} +