X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/11ee743260018770cbac975de70f2e2f9b727ca1..636070f4e47caf18e752b59485758e0f4eb19492:/lib/dvb_ci/dvbci_camgr.cpp diff --git a/lib/dvb_ci/dvbci_camgr.cpp b/lib/dvb_ci/dvbci_camgr.cpp index eb30c410..42317b3e 100644 --- a/lib/dvb_ci/dvbci_camgr.cpp +++ b/lib/dvb_ci/dvbci_camgr.cpp @@ -1,4 +1,73 @@ /* DVB CI CA Manager */ +#include #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) +{ + eDebugNoNewLine("SESSION(%d)/CA %02x %02x %02x: ", session_nb, tag[0], tag[1],tag[2]); + for (int i=0; irecheckPMTHandlers(); + break; + default: + eDebug("unknown APDU tag 9F 80 %02x", 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: + eDebug("stateFinal und action! kann doch garnicht sein ;)"); + 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; +} +