X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/33203ca44da7863055a41e2b5145c5b9614f873e..e4034b7fce157a23fcd2668a59ccc7a32d19ac84:/lib/dvb_ci/dvbci.cpp diff --git a/lib/dvb_ci/dvbci.cpp b/lib/dvb_ci/dvbci.cpp index 8f1fcac9..e7d9b27b 100644 --- a/lib/dvb_ci/dvbci.cpp +++ b/lib/dvb_ci/dvbci.cpp @@ -76,6 +76,16 @@ int eDVBCIInterfaces::reset(int slotid) return slot->reset(); } +int eDVBCIInterfaces::enableTS(int slotid, int enable) +{ + eDVBCISlot *slot; + + if( (slot = getSlot(slotid)) == 0 ) + return -1; + + return slot->enableTS(enable); +} + int eDVBCIInterfaces::initialize(int slotid) { eDVBCISlot *slot; @@ -253,6 +263,7 @@ void eDVBCISlot::data(int what) if(what == eSocketNotifier::Priority) { if(state != stateRemoved) { state = stateRemoved; + enableTS(0); printf("ci removed\n"); notifier->setRequested(eSocketNotifier::Read); //HACK @@ -327,6 +338,7 @@ eDVBCISlot::eDVBCISlot(eMainloop *context, int nr) eDVBCISlot::~eDVBCISlot() { + enableTS(0); } int eDVBCISlot::getSlotID() @@ -338,6 +350,8 @@ int eDVBCISlot::reset() { printf("edvbcislot: reset requested\n"); + enableTS(0); + ioctl(fd, 0); return 0; @@ -472,4 +486,22 @@ int eDVBCISlot::sendCAPMT(eDVBServicePMTHandler *pmthandler, const std::vector init_eDVBCIInterfaces(eAutoInitNumbers::dvb, "CI Slots");