X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/941afd2b7c9ede393a7ab563b13ca4bd3f7f6eac..2f9441a67c7ed9630bb8875a179928ea4788fd80:/lib/dvb_ci/dvbci_appmgr.cpp diff --git a/lib/dvb_ci/dvbci_appmgr.cpp b/lib/dvb_ci/dvbci_appmgr.cpp index 6f6c95d3..f8159730 100644 --- a/lib/dvb_ci/dvbci_appmgr.cpp +++ b/lib/dvb_ci/dvbci_appmgr.cpp @@ -3,6 +3,17 @@ #include #include +eDVBCIApplicationManagerSession::eDVBCIApplicationManagerSession(eDVBCISlot *tslot) +{ + slot = tslot; + slot->setAppManager(this); +} + +eDVBCIApplicationManagerSession::~eDVBCIApplicationManagerSession() +{ + slot->setAppManager(NULL); +} + int eDVBCIApplicationManagerSession::receivedAPDU(const unsigned char *tag,const void *data, int len) { printf("SESSION(%d)/APP %02x %02x %02x: ", session_nb, tag[0], tag[1], tag[2]); @@ -30,14 +41,15 @@ int eDVBCIApplicationManagerSession::receivedAPDU(const unsigned char *tag,const dl=len-6; } char str[dl + 1]; - memcpy(str, data + 6, dl); + memcpy(str, ((char*)data) + 6, dl); str[dl] = '\0'; for (int i = 0; i < dl; ++i) printf("%c", ((unsigned char*)data)[i+6]); printf("\n"); - - eDVBCI_UI::getInstance()->setState(0,2); - eDVBCI_UI::getInstance()->setAppName(0,str); + + eDVBCI_UI::getInstance()->setAppName(slot->getSlotID(), str); + + eDVBCI_UI::getInstance()->setState(slot->getSlotID(), 2); break; } default: @@ -75,3 +87,12 @@ int eDVBCIApplicationManagerSession::doAction() return 0; } } + +int eDVBCIApplicationManagerSession::startMMI() +{ + printf("in appmanager -> startmmi()\n"); + const unsigned char tag[3]={0x9F, 0x80, 0x22}; // Tenter_menu + sendAPDU(tag); + return 0; +} +