| 390 | |
| 391 | // The german station arena uses the premiere direct feeds to broacast |
| 392 | // sport events like the german bundesliga on some cable providers. |
| 393 | // Use the linkage descriptor to fill the epg with these sport events. |
| 394 | desc_list_t linkages = |
| 395 | MPEGDescriptor::FindAll(list, DescriptorID::linkage); |
| 396 | if ((eit->ServiceID()==50)&&(linkages.size()>0)) |
| 397 | { |
| 398 | for(uint j=0;j<linkages.size();j++) |
| 399 | { |
| 400 | LinkageDescriptor linkage(linkages[j]); |
| 401 | uint networkid = linkage.OriginalNetworkID(); |
| 402 | uint tsid = linkage.TSID(); |
| 403 | uint serviceid = linkage.ServiceID(); |
| 404 | uint linkagetype = linkage.LinkageType(); |
| 405 | unsigned char enc_ch[1] = { 0x05 }; |
| 406 | const unsigned char *enc = |
| 407 | (fix & EITFixUp::kFixPremiere) ? enc_ch : NULL; |
| 408 | QString subevent = dvb_decode_text(linkage.PrivateData_N8(),linkage.PrivateDataLength_N8(),enc,1); |
| 410 | uint chanid = GetChanID(serviceid,networkid,tsid); |
| 411 | |
| 412 | VERBOSE(VB_EIT, LOC + QString("NIT:%1 TID:%2 SID:%3 TITLE:%4 %5").arg(networkid).arg(tsid).arg(serviceid).arg(title).arg(subevent)); |
| 413 | if (!chanid) |
| 414 | continue; |
| 415 | |
| 416 | QDateTime starttime = MythUTCToLocal(eit->StartTimeUTC(i)); |
| 417 | EITFixUp::TimeFix(starttime); |
| 418 | QDateTime endtime = starttime.addSecs(eit->DurationInSeconds(i)); |
| 419 | |
| 420 | DBEvent *event = new DBEvent(chanid, |
| 421 | title, subevent, subevent, |
| 422 | QObject::tr("Sports"), kCategorySports, |
| 423 | starttime, endtime, fix, |
| 424 | false, subtitled, |
| 425 | stereo, hdtv, |
| 426 | "", ""); |
| 427 | db_events.enqueue(event); |
| 428 | |
| 429 | } |
| 430 | } |
| 431 | |
| 432 | |