X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/11ee743260018770cbac975de70f2e2f9b727ca1..e43adfc2866809c466093e0e4634b59ecfee0bb4:/lib/dvb_ci/dvbci_camgr.cpp diff --git a/lib/dvb_ci/dvbci_camgr.cpp b/lib/dvb_ci/dvbci_camgr.cpp index eb30c410..e1afd174 100644 --- a/lib/dvb_ci/dvbci_camgr.cpp +++ b/lib/dvb_ci/dvbci_camgr.cpp @@ -2,3 +2,70 @@ #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]); + for (int i=0; iresendCAPMT(); + break; + default: + printf("unknown APDU tag 9F 80 %02x\n", tag[2]); + break; + } + } + return 0; +} + +int eDVBCICAManagerSession::doAction() +{ + switch (state) + { + case stateStarted: + { + const unsigned char tag[3]={0x9F, 0x80, 0x30}; // ca info enq + sendAPDU(tag); + state=stateFinal; + return 0; + } + case stateFinal: + printf("stateFinal und action! kann doch garnicht sein ;)\n"); + default: + 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; +} +