X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/71efef08fb67e1287dc8f295e4ffe3cfc1aa23c1..22dd42bd9ac717c439bd339f0c85adbf3defe2b6:/lib/dvb_ci/dvbci.cpp diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp index 74fa66c7..71994538 100644 --- a/lib/dvb_ci/dvbci.cpp +++ b/lib/dvb_ci/dvbci.cpp @@ -10,6 +10,8 @@ #include #include +#include +#include eDVBCIInterfaces *eDVBCIInterfaces::instance = 0; @@ -71,6 +73,16 @@ int eDVBCIInterfaces::reset(int slotid) return slot->reset(); } +int eDVBCIInterfaces::initialize(int slotid) +{ + eDVBCISlot *slot; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->initialize(); +} + int eDVBCIInterfaces::startMMI(int slotid) { eDVBCISlot *slot; @@ -81,6 +93,26 @@ int eDVBCIInterfaces::startMMI(int slotid) return slot->startMMI(); } +int eDVBCIInterfaces::stopMMI(int slotid) +{ + eDVBCISlot *slot; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->stopMMI(); +} + +int eDVBCIInterfaces::answerMMI(int slotid, int answer, char *value) +{ + eDVBCISlot *slot; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->answerMMI(answer, value); +} + int eDVBCISlot::send(const unsigned char *data, size_t len) { int res; @@ -108,6 +140,9 @@ void eDVBCISlot::data(int what) notifier->setRequested(eSocketNotifier::Read); //HACK eDVBCI_UI::getInstance()->setState(0,0); + //FIXME; do in deconstructor of the appmgr class + application_manager = 0; + mmi_session = 0; } return; } @@ -150,6 +185,9 @@ DEFINE_REF(eDVBCISlot); eDVBCISlot::eDVBCISlot(eMainloop *context, int nr) { char filename[128]; + + application_manager = 0; + mmi_session = 0; slotid = nr; @@ -189,9 +227,35 @@ int eDVBCISlot::reset() return 0; } +int eDVBCISlot::initialize() +{ + printf("edvbcislot: initialize()\n"); + return 0; +} + int eDVBCISlot::startMMI() { printf("edvbcislot: startMMI()\n"); + + if(application_manager) + application_manager->startMMI(); + + return 0; +} + +int eDVBCISlot::stopMMI() +{ + printf("edvbcislot: stopMMI()\n"); + + if(mmi_session) + mmi_session->stopMMI(); + + return 0; +} + +int eDVBCISlot::answerMMI(int answer, char *value) +{ + printf("edvbcislot: answerMMI()\n"); return 0; }