X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/ed8f9a4e13e4d4eafbc26048d7b70d3aaa8d1399..a95480c7a50e4ecf72cee72693ba6b2c6654f510:/lib/dvb_ci/dvbci.cpp diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp index bbea1211..cf7acde6 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; @@ -55,6 +57,8 @@ eDVBCISlot *eDVBCIInterfaces::getSlot(int slotid) for(eSmartPtrList::iterator i(m_slots.begin()); i != m_slots.end(); ++i) if(i->getSlotID() == slotid) return i; + + printf("FIXME: request for unknown slot\n"); return 0; } @@ -63,14 +67,62 @@ int eDVBCIInterfaces::reset(int slotid) { eDVBCISlot *slot; - if( (slot = getSlot(slotid)) == 0 ) { - printf("FIXME: request for unknown slot\n"); - return 0; - } + if( (slot = getSlot(slotid)) == 0 ) + return -1; 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; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->startMMI(); +} + +int eDVBCIInterfaces::stopMMI(int slotid) +{ + eDVBCISlot *slot; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->stopMMI(); +} + +int eDVBCIInterfaces::answerText(int slotid, int answer) +{ + eDVBCISlot *slot; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->answerText(answer); +} + +int eDVBCIInterfaces::answerEnq(int slotid, int answer, char *value) +{ + eDVBCISlot *slot; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->answerEnq(answer, value); +} + int eDVBCISlot::send(const unsigned char *data, size_t len) { int res; @@ -141,6 +193,9 @@ eDVBCISlot::eDVBCISlot(eMainloop *context, int nr) { char filename[128]; + application_manager = 0; + mmi_session = 0; + slotid = nr; sprintf(filename, "/dev/ci%d", nr); @@ -179,4 +234,46 @@ 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::answerText(int answer) +{ + printf("edvbcislot: answerText(%d)\n", answer); + + if(mmi_session) + mmi_session->answerText(answer); + + return 0; +} + +int eDVBCISlot::answerEnq(int answer, char *value) +{ + printf("edvbcislot: answerMMI(%d,%s)\n", answer, value); + return 0; +} + eAutoInitP0 init_eDVBCIInterfaces(eAutoInitNumbers::dvb, "CI Slots");