X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb_ci%2Fdvbci_appmgr.cpp;h=b3e9ca14cbc735dd26440f0fe7b4ba170b4a1b05;hp=5aad5b6ea14da0181ddd6730c42cc62acdf4fa0c;hb=0ffeb4cf114a6706ba629112c070e3d94da98793;hpb=21637e98cb433ca2bea8a81966ec452a07673e8f;ds=sidebyside diff --git a/lib/dvb_ci/dvbci_appmgr.cpp b/lib/dvb_ci/dvbci_appmgr.cpp index 5aad5b6..b3e9ca1 100644 --- a/lib/dvb_ci/dvbci_appmgr.cpp +++ b/lib/dvb_ci/dvbci_appmgr.cpp @@ -1,14 +1,26 @@ /* DVB CI Application Manager */ +#include #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]); + eDebugNoNewLine("SESSION(%d)/APP %02x %02x %02x: ", session_nb, tag[0], tag[1], tag[2]); for (int i=0; i len) { - printf("warning, invalid length (%d vs %d)\n", dl+6, len); + eDebug("warning, invalid length (%d vs %d)", 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); + eDebugNoNewLine("%c", ((unsigned char*)data)[i+6]); + eDebug(""); + + eDVBCI_UI::getInstance()->setAppName(slot->getSlotID(), str); + + eDVBCI_UI::getInstance()->setState(slot->getSlotID(), 2); break; } default: - printf("unknown APDU tag 9F 80 %02x\n", tag[2]); + eDebug("unknown APDU tag 9F 80 %02x", tag[2]); break; } } @@ -60,11 +73,11 @@ int eDVBCIApplicationManagerSession::doAction() return 1; } case stateFinal: - printf("in final state.\n"); + eDebug("in final state."); wantmenu = 0; if (wantmenu) { - printf("wantmenu: sending Tenter_menu\n"); + eDebug("wantmenu: sending Tenter_menu"); const unsigned char tag[3]={0x9F, 0x80, 0x22}; // Tenter_menu sendAPDU(tag); wantmenu=0; @@ -75,3 +88,12 @@ int eDVBCIApplicationManagerSession::doAction() return 0; } } + +int eDVBCIApplicationManagerSession::startMMI() +{ + eDebug("in appmanager -> startmmi()"); + const unsigned char tag[3]={0x9F, 0x80, 0x22}; // Tenter_menu + sendAPDU(tag); + return 0; +} +