Changeset 24000


Ignore:
Timestamp:
09/29/13 21:39:02 (9 years ago)
Author:
nit
Message:

[titan] fix epg lang

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/eit.h

    r23267 r24000  
    753753
    754754//Parse 0x4D Short Event Descriptor
    755 void eventdesc(struct channel* chnode, struct epg* epgnode, void *buf)
     755void eventdesc(struct channel* chnode, struct epg* epgnode, void *buf, unsigned char* lang)
    756756{
    757757        struct transponder* tpnode = NULL;
     
    771771                return;
    772772        }
     773       
     774        lang[0] = evtdesc->lang_code1;
     775        lang[1] = evtdesc->lang_code2;
     776        lang[2] = evtdesc->lang_code3;
     777       
    773778        memcpy(title, (char *)&evtdesc->data, evtlen);
    774779        title[evtlen] = '\0';
     
    808813
    809814// Parse 0x4E Extended Event Descriptor
    810 void longeventdesc(struct channel* chnode, struct epg* epgnode, unsigned char *buf)
     815void longeventdesc(struct channel* chnode, struct epg* epgnode, unsigned char *buf, unsigned char* lang)
    811816{
    812817        struct transponder* tpnode = NULL;
    813818        struct eitlongevent *levt = (struct eitlongevent*)buf;
    814819        char* desc = NULL;
     820
     821  if(lang[0] != '\0')
     822        {
     823                if(lang[0] != levt->lang_code1 || lang[1] != levt->lang_code2 || lang[2] != levt->lang_code3)
     824                        return;
     825        }
    815826
    816827        if(chnode != NULL) tpnode = chnode->transponder;
     
    10501061{
    10511062        unsigned char *p;
     1063        unsigned char lang[3] = {'\0', '\0', '\0'};
     1064       
    10521065        for(p = buf; p < buf + len; p += 2 + p[1])
    10531066        {
     
    10601073                                break;
    10611074                        case 0x4D:
    1062                                 eventdesc(chnode, epgnode, p);
     1075                                eventdesc(chnode, epgnode, p, lang);
    10631076                                break;
    10641077                        case 0x4E:
    10651078                                if(nolongdesc == 0)
    1066                                         longeventdesc(chnode, epgnode, p);
     1079                                        longeventdesc(chnode, epgnode, p, lang);
    10671080                                break;
    10681081                        case 0x55:
Note: See TracChangeset for help on using the changeset viewer.