fixes for support more than one CI
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Sat, 20 May 2006 08:13:34 +0000 (08:13 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Sat, 20 May 2006 08:13:34 +0000 (08:13 +0000)
lib/dvb_ci/dvbci.cpp
lib/dvb_ci/dvbci_mmi.cpp

index 1be4232eef8a59db8c62e27048cecff59e3d4d66..6f532bedb54cc6f94f9e8072b2f22a22a885cc75 100644 (file)
@@ -359,7 +359,7 @@ void eDVBCIInterfaces::removePMTHandler(eDVBServicePMTHandler *pmthandler)
 
                if (slot && !sameServiceExist)
                {
 
                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());
                        {
                                eDebug("[eDVBCIInterfaces] remove last pmt handler for service %s send empty capmt",
                                        service_to_remove.toString().c_str());
@@ -437,8 +437,7 @@ void eDVBCISlot::data(int what)
                        eDVBCIInterfaces::getInstance()->ciRemoved(this);
                        eDVBCISession::deleteSessions(this);
                        notifier->setRequested(eSocketNotifier::Read);
                        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;
        }
                }
                return;
        }
@@ -446,8 +445,7 @@ void eDVBCISlot::data(int what)
        if(state != stateInserted) {
                eDebug("ci inserted");
                state = stateInserted;
        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 */
        }
                notifier->setRequested(eSocketNotifier::Read|eSocketNotifier::Priority);
                /* enable PRI to detect removal or errors */
        }
index d1103c55c344ad268356656481a1bf3ca7b73d9f..d3f564d92faa2b53c03b8653534bb618aedd7b9a 100644 (file)
@@ -68,7 +68,7 @@ int eDVBCIMMISession::receivedAPDU(const unsigned char *tag, const void *data, i
                        
                        printf("enq-text: %s\n",str);
                        
                        
                        printf("enq-text: %s\n",str);
                        
-                       eDVBCI_UI::getInstance()->mmiScreenEnq(0, blind, alen, (char*)convertDVBUTF8(str).c_str());
+                       eDVBCI_UI::getInstance()->mmiScreenEnq(slot->getSlotID(), blind, alen, (char*)convertDVBUTF8(str).c_str());
 
                        break;          
                }
 
                        break;          
                }
@@ -83,11 +83,10 @@ int eDVBCIMMISession::receivedAPDU(const unsigned char *tag, const void *data, i
                                break;
                        int n=*d++;
                        
                                break;
                        int n=*d++;
                        
-                       //FIXME: slotid
                        if(tag[2] == 0x09)      //menu
                        if(tag[2] == 0x09)      //menu
-                               eDVBCI_UI::getInstance()->mmiScreenBegin(0, 0);
+                               eDVBCI_UI::getInstance()->mmiScreenBegin(slot->getSlotID(), 0);
                        else                                                            //list
                        else                                                            //list
-                               eDVBCI_UI::getInstance()->mmiScreenBegin(0, 1);
+                               eDVBCI_UI::getInstance()->mmiScreenBegin(slot->getSlotID(), 1);
                        
                        if (n == 0xFF)
                                n=0;
                        
                        if (n == 0xFF)
                                n=0;
@@ -110,14 +109,13 @@ int eDVBCIMMISession::receivedAPDU(const unsigned char *tag, const void *data, i
                                memcpy(str, ((char*)d), textlen);
                                str[textlen] = '\0';
                                
                                memcpy(str, ((char*)d), textlen);
                                str[textlen] = '\0';
                                
-                               eDVBCI_UI::getInstance()->mmiScreenAddText(0, pos++, (char*)convertDVBUTF8(str).c_str());
+                               eDVBCI_UI::getInstance()->mmiScreenAddText(slot->getSlotID(), pos++, (char*)convertDVBUTF8(str).c_str());
                                        
                                while (textlen--)
                                        printf("%c", *d++);
                                printf("\n");
                        }
                                        
                                while (textlen--)
                                        printf("%c", *d++);
                                printf("\n");
                        }
-                       //FIXME: slotid
-                       eDVBCI_UI::getInstance()->mmiScreenFinish(0);
+                       eDVBCI_UI::getInstance()->mmiScreenFinish(slot->getSlotID());
                        break;
                }
                default:
                        break;
                }
                default: