diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-05-23 12:29:43 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-05-23 12:29:43 +0000 |
| commit | 27ac653dea3ebb218d915604a8fce4b0d34d9278 (patch) | |
| tree | b5a2f64effe029c1b87f4f8f4b02d3f6ebabb82f /lib/dvb_ci/dvbci_mmi.cpp | |
| parent | b1f62dfee6033cb1074c0b1063e68ef365ce6a76 (diff) | |
| download | enigma2-27ac653dea3ebb218d915604a8fce4b0d34d9278.tar.gz enigma2-27ac653dea3ebb218d915604a8fce4b0d34d9278.zip | |
CI mmi is now working every time (for support alphacrypt parental control or other messages from CI)
Diffstat (limited to 'lib/dvb_ci/dvbci_mmi.cpp')
| -rw-r--r-- | lib/dvb_ci/dvbci_mmi.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/dvb_ci/dvbci_mmi.cpp b/lib/dvb_ci/dvbci_mmi.cpp index d3f564d9..29710660 100644 --- a/lib/dvb_ci/dvbci_mmi.cpp +++ b/lib/dvb_ci/dvbci_mmi.cpp @@ -25,6 +25,7 @@ eDVBCIMMISession::eDVBCIMMISession(eDVBCISlot *tslot) eDVBCIMMISession::~eDVBCIMMISession() { slot->setMMIManager(NULL); + eDVBCI_UI::getInstance()->mmiSessionDestroyed(slot->getSlotID()); } int eDVBCIMMISession::receivedAPDU(const unsigned char *tag, const void *data, int len) @@ -38,7 +39,26 @@ int eDVBCIMMISession::receivedAPDU(const unsigned char *tag, const void *data, i { switch (tag[2]) { - case 0x01: + case 0x00: //Tmmi_close + { + unsigned char *d=(unsigned char*)data; + int timeout=0; + if (d[3] == 1) + { + if (len > 4) + timeout = d[4]; + else + { + eDebug("mmi close tag incorrect.. no timeout given.. assume 5 seconds"); + timeout = 5; + } + } + else if (timeout>1) + eDebug("mmi close tag incorrect.. byte 4 should be 0 or 1"); + eDVBCI_UI::getInstance()->mmiScreenClose(slot->getSlotID(), timeout); + break; + } + case 0x01: printf("MMI display control\n"); if (((unsigned char*)data)[0] != 1) printf("kann ich nicht. aber das sag ich dem modul nicht.\n"); |
