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;
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());
void eDVBCISlot::data(int what)
{
- if (state == stateInvalid)
- return;
if(what == eSocketNotifier::Priority) {
if(state != stateRemoved) {
state = stateRemoved;
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;
}
+ if (state == stateInvalid)
+ return;
+
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 */
}