X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/61402686fd1130b5b183fbe853927180be1ba1e1..66238a69f495173897e7e1e62a7f05ff4356ae44:/lib/dvb_ci/dvbci_appmgr.cpp diff --git a/lib/dvb_ci/dvbci_appmgr.cpp b/lib/dvb_ci/dvbci_appmgr.cpp index 4c468a8d..7843554d 100644 --- a/lib/dvb_ci/dvbci_appmgr.cpp +++ b/lib/dvb_ci/dvbci_appmgr.cpp @@ -1,6 +1,18 @@ /* DVB CI Application Manager */ #include +#include + +eDVBCIApplicationManagerSession::eDVBCIApplicationManagerSession(eDVBCISlot *tslot) +{ + slot = tslot; + slot->application_manager = this; +} + +eDVBCIApplicationManagerSession::~eDVBCIApplicationManagerSession() +{ + slot = 0; +} int eDVBCIApplicationManagerSession::receivedAPDU(const unsigned char *tag,const void *data, int len) { @@ -28,9 +40,15 @@ int eDVBCIApplicationManagerSession::receivedAPDU(const unsigned char *tag,const printf("warning, invalid length (%d vs %d)\n", dl+6, len); dl=len-6; } + char str[dl + 1]; + 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); break; } default: @@ -68,3 +86,11 @@ 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); +} +