fix for previous commit
[enigma2.git] / lib / dvb / epgcache.cpp
index fd09c5ed2a06f013bfd27d71783059d85e480ff7..1fc83f686e76a3f32fd84bad4d3f7ee57dbf20ee 100644 (file)
@@ -461,12 +461,12 @@ void eEPGCache::sectionRead(const __u8 *data, int source, channel_data *channel)
                --ptr;
 
        // Cablecom HACK .. tsid / onid in eit data are incorrect.. so we use
-       // it from running service (just for current transport stream eit data)
-       bool use_eit_chid = data[0] == 0x4F || data[0] > 0x5F;
+       // it from running channel (just for current transport stream eit data)
+       bool use_transponder_chid = source == SCHEDULE || (source == NOWNEXT && data[0] == 0x4E);
        eDVBChannelID chid = channel->channel->getChannelID();
        uniqueEPGKey service( HILO(eit->service_id),
-               use_eit_chid ? HILO(eit->original_network_id) : chid.original_network_id.get(),
-               use_eit_chid ? HILO(eit->transport_stream_id) : chid.transport_stream_id.get() );
+               use_transponder_chid ? chid.original_network_id.get() : HILO(eit->original_network_id),
+               use_transponder_chid ? chid.transport_stream_id.get() : HILO(eit->transport_stream_id));
 
        eit_event_struct* eit_event = (eit_event_struct*) (data+ptr);
        int eit_event_size;
@@ -1600,7 +1600,7 @@ RESULT eEPGCache::getNextTimeEntry(ePtr<eServiceEvent> &result)
        return -1;
 }
 
-void fillTuple(ePyObject tuple, char *argstring, int argcount, ePyObject service, eServiceEvent *ptr, ePyObject nowTime, ePyObject service_name )
+void fillTuple(ePyObject tuple, const char *argstring, int argcount, ePyObject service, eServiceEvent *ptr, ePyObject nowTime, ePyObject service_name )
 {
        ePyObject tmp;
        int spos=0, tpos=0;
@@ -1661,7 +1661,7 @@ void fillTuple(ePyObject tuple, char *argstring, int argcount, ePyObject service
        }
 }
 
-int handleEvent(eServiceEvent *ptr, ePyObject dest_list, char* argstring, int argcount, ePyObject service, ePyObject nowTime, ePyObject service_name, ePyObject convertFunc, ePyObject convertFuncArgs)
+int handleEvent(eServiceEvent *ptr, ePyObject dest_list, const char* argstring, int argcount, ePyObject service, ePyObject nowTime, ePyObject service_name, ePyObject convertFunc, ePyObject convertFuncArgs)
 {
        if (convertFunc)
        {
@@ -1725,7 +1725,7 @@ PyObject *eEPGCache::lookupEvent(ePyObject list, ePyObject convertFunc)
 {
        ePyObject convertFuncArgs;
        int argcount=0;
-       char *argstring=NULL;
+       const char *argstring=NULL;
        if (!PyList_Check(list))
        {
                PyErr_SetString(PyExc_StandardError,
@@ -1871,7 +1871,7 @@ PyObject *eEPGCache::lookupEvent(ePyObject list, ePyObject convertFunc)
 
                                                if (must_get_service_name == 1)
                                                {
-                                                       unsigned int pos;
+                                                       size_t pos;
                                                        // filter short name brakets
                                                        while((pos = name.find("\xc2\x86")) != std::string::npos)
                                                                name.erase(pos,2);
@@ -2316,7 +2316,7 @@ PyObject *eEPGCache::search(ePyObject arg)
 
                                                                                if (must_get_service_name == 1)
                                                                                {
-                                                                                       unsigned int pos;
+                                                                                       size_t pos;
                                                                                        // filter short name brakets
                                                                                        while((pos = name.find("\xc2\x86")) != std::string::npos)
                                                                                                name.erase(pos,2);