well...
[enigma2.git] / lib / dvb_ci / dvbci.cpp
index 82d3349d7d46f2f658f898e0de20b6a90371a32e..31dc65ad171ec30e6ec82afaab268195795db746 100644 (file)
@@ -193,6 +193,7 @@ void eDVBCIInterfaces::gotPMT(eDVBServicePMTHandler *pmthandler)
                                *usedby = ci_it;
                                (*usedby)->resetPrevSentCAPMTVersion();
                                break;
+                               
                        }
                }
                if (it->usedby)
@@ -404,6 +405,7 @@ int eDVBCISlot::sendCAPMT(eDVBServicePMTHandler *pmthandler, const std::vector<u
 #if 1
 // begin calc capmt length
                        int wp=0;
+                       int hlen;
                        if ( raw_data[3] & 0x80 )
                        {
                                int i=0;
@@ -412,11 +414,13 @@ int eDVBCISlot::sendCAPMT(eDVBServicePMTHandler *pmthandler, const std::vector<u
                                        wp |= (raw_data[4+i] << (8 * i++));
                                wp+=4;
                                wp+=lenbytes;
+                               hlen = 4 + lenbytes;
                        }
                        else
                        {
                                wp = raw_data[3];
                                wp+=4;
+                               hlen = 4;
                        }
 // end calc capmt length
                        if (!ca_manager)
@@ -429,7 +433,8 @@ int eDVBCISlot::sendCAPMT(eDVBServicePMTHandler *pmthandler, const std::vector<u
 #endif
                        if (ca_manager)
                        {
-                               // TODO SEND buffer to CI ( add session number, add tag )
+                               //dont need tag and lenfield
+                               ca_manager->sendCAPMT(raw_data + hlen, wp - hlen);
                                prev_sent_capmt_version = pmt_version;
                        }
                }