+ if ( retval == 1 )
+ {
+ for (DescriptorConstIterator desc = evt->getDescriptors()->begin(); desc != evt->getDescriptors()->end(); ++desc)
+ {
+ switch ((*desc)->getTag())
+ {
+ case LINKAGE_DESCRIPTOR:
+ {
+ const LinkageDescriptor *ld = (LinkageDescriptor*)*desc;
+ if ( ld->getLinkageType() == 0xB0 )
+ {
+ linkage_service s;
+ s.onid = ld->getOriginalNetworkId();
+ s.tsid = ld->getTransportStreamId();
+ s.sid = ld->getServiceId();
+ const PrivateDataByteVector *privateData =
+ ld->getPrivateDataBytes();
+ s.description.assign((const char*)&((*privateData)[0]), privateData->size());
+ m_linkage_services.push_back(s);
+ }
+ break;
+ }
+ }
+ }
+ }
+ if ( m_extended_description.find(m_short_description) == 0 )
+ m_short_description="";