X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb_ci%2Fdvbci_camgr.cpp;h=42317b3e58a0a97e8884db6a2057cc2e3bbb1afc;hp=eb30c4102be77b98aa4484511b5132049cb5d32f;hb=8aefeab76e692a2a0edf057ec6ad2b743375f4dd;hpb=11ee743260018770cbac975de70f2e2f9b727ca1 diff --git a/lib/dvb_ci/dvbci_camgr.cpp b/lib/dvb_ci/dvbci_camgr.cpp index eb30c41..42317b3 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; +} +