/* 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; }