X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb_ci%2Fdvbci_camgr.cpp;h=e1afd17494b41a8b6348620e6c81246821296979;hp=d700b0a1e10162b6b5d065b2f28f8ccab093bacc;hb=d41938053190e075de41c63acfdcea3e239dcaba;hpb=c326dee2e7ce346cffecd196d971dd91ef1454f5 diff --git a/lib/dvb_ci/dvbci_camgr.cpp b/lib/dvb_ci/dvbci_camgr.cpp index d700b0a..e1afd17 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; +} +