fix bluescreen in ci menu when no entries in a menulist an ok is pressed
[enigma2.git] / lib / dvb_ci / dvbci.cpp
index 1be4232eef8a59db8c62e27048cecff59e3d4d66..b182a360fd2e9c62c9f3fe15e23cafeb24b22a57 100644 (file)
@@ -66,6 +66,16 @@ eDVBCISlot *eDVBCIInterfaces::getSlot(int slotid)
        return 0;
 }
 
+int eDVBCIInterfaces::getSlotState(int slotid)
+{
+       eDVBCISlot *slot;
+
+       if( (slot = getSlot(slotid)) == 0 )
+               return eDVBCISlot::stateInvalid;
+
+       return slot->getState();
+}
+
 int eDVBCIInterfaces::reset(int slotid)
 {
        eDVBCISlot *slot;
@@ -359,7 +369,7 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler)
 
                if (slot && !sameServiceExist)
                {
-                       if (slot->getNumOfServices() > 1) // fixme make it dependend of "ci can handle more than one service"
+                       if (slot->getNumOfServices() > 1)
                        {
                                eDebug("[eDVBCIInterfaces] remove last pmt handler for service %s send empty capmt",
                                        service_to_remove.toString().c_str());
@@ -437,8 +447,7 @@ void eDVBCISlot::data(int what)
                        eDVBCIInterfaces::getInstance()->ciRemoved(this);
                        eDVBCISession::deleteSessions(this);
                        notifier->setRequested(eSocketNotifier::Read);
-                       //HACK
-                       eDVBCI_UI::getInstance()->setState(0,0);
+                       eDVBCI_UI::getInstance()->setState(getSlotID(),0);
                }
                return;
        }
@@ -446,8 +455,7 @@ void eDVBCISlot::data(int what)
        if(state != stateInserted) {
                eDebug("ci inserted");
                state = stateInserted;
-//             HACK
-               eDVBCI_UI::getInstance()->setState(0,1);
+               eDVBCI_UI::getInstance()->setState(getSlotID(),1);
                notifier->setRequested(eSocketNotifier::Read|eSocketNotifier::Priority);
                /* enable PRI to detect removal or errors */
        }