QString TerrestrialVirtualChannelTable::ChannelString(uint chan) const { QString str; str.append(QString(" Channel #%1 ").arg(chan)); str.append(QString("name(%1) %2-%3 ").arg(ShortChannelName(chan)) .arg(MajorChannel(chan)).arg(MinorChannel(chan))); str.append(QString("mod(%1) ").arg(ModulationModeString(chan))); str.append(QString("cTSID(0x%1)\n") .arg(ChannelTransportStreamID(chan),4,16,QChar('0'))); str.append(QString(" pnum(%1) ").arg(ProgramNumber(chan))); str.append(QString("ETM_loc(%1) ").arg(ETMlocation(chan))); str.append(QString("access_ctrl(%1) ").arg(IsAccessControlled(chan))); str.append(QString("hidden(%1) ").arg(IsHidden(chan))); str.append(QString("hide_guide(%1) ").arg(IsHiddenInGuide(chan))); str.append(QString("service_type(%1)\n").arg(ServiceTypeString(chan))); str.append(QString(" source_id(%1)\n").arg(SourceID(chan))); if (0 != DescriptorsLength(chan)) { str.append(QString(" descriptors length(%1) ") .arg(DescriptorsLength(chan))); vector<const unsigned char*> desc = MPEGDescriptor::Parse(Descriptors(chan), DescriptorsLength(chan)); str.append(QString("count:%1\n").arg(desc.size())); for (uint i = 0; i < desc.size(); i++) { str.append(QString(" %1\n") .arg(MPEGDescriptor(desc[i]).toString())); } } return str; }
QString TerrestrialVirtualChannelTable::XMLChannelValues( uint indent_level, uint chan) const { return QString("major_channel=\"%1\" minor_channel=\"%2\" ") .arg(MajorChannel(chan)).arg(MinorChannel(chan)) + VirtualChannelTable::XMLChannelValues(indent_level, chan); }
QString CableVirtualChannelTable::toString(int chan) const { static QString modnames[6] = { QObject::tr("[Reserved]"), QObject::tr("Analog"), QObject::tr("SCTE mode 1"), QObject::tr("SCTE mode 2"), QObject::tr("ATSC 8-VSB"), QObject::tr("ATSC 16-VSB"), }; static QString servicenames[5] = { QObject::tr("[Reserved]"), QObject::tr("Analog"), QObject::tr("ATSC TV"), QObject::tr("ATSC Audio"), QObject::tr("ATSC Data"), }; QString str; str.append(QString("Channel #%1 ").arg(chan)); str.append(QString("name(%1) %2-%3 ").arg(ShortChannelName(chan)) .arg(MajorChannel(chan)).arg(MinorChannel(chan))); if (ModulationMode(chan) > 5) str.append(QString("mod(UNKNOWN %1) ").arg(ModulationMode(chan))); else str.append(QString("mod(%1) ").arg(modnames[ModulationMode(chan)])); str.append(QString("cTSID(0x%1)\n") .arg(ChannelTransportStreamID(chan), 0, 16)); str.append(QString(" pnum(%1) ").arg(ProgramNumber(chan))); str.append(QString("ETM_loc(%1) ").arg(ETMlocation(chan))); str.append(QString("access_ctrl(%1) ").arg(IsAccessControlled(chan))); str.append(QString("hidden(%1)\n").arg(IsHidden(chan))); str.append(QString("path_select(%1) ").arg(IsPathSelect(chan))); str.append(QString("out_of_band(%1) ").arg(IsOutOfBand(chan))); str.append(QString("hide_guide(%1) ").arg(IsHiddenInGuide(chan))); if (ServiceType(chan) > 4) str.append(QString("service_type(UNKNOWN %1) ").arg(ServiceType(chan))); else str.append(QString("service_type(%1) ").arg(servicenames[ServiceType(chan)])); str.append(QString("source_id(%1)\n").arg(SourceID(chan))); if (0 != DescriptorsLength(chan)) { str.append(QString(" descriptors length(%1) ") .arg(DescriptorsLength(chan))); vector<const unsigned char*> desc = MPEGDescriptor::Parse(Descriptors(chan), DescriptorsLength(chan)); str.append(QString("count(%1)\n").arg(desc.size())); for (uint i = 0; i < desc.size(); i++) str.append(QString(" %1\n") .arg(MPEGDescriptor(desc[i]).toString())); } return str; }
int VirtualChannelTable::Find(int major, int minor) const { if (major>0) { for (uint i = 0; i < ChannelCount(); i++) { if ((MajorChannel(i) == (uint)major) && (MinorChannel(i) == (uint)minor)) return (int)i; } } else if (minor>0) { for (uint i = 0; i < ChannelCount(); i++) { if (MinorChannel(i) == (uint)minor) return (int)i; } } return -1; }
QString CableVirtualChannelTable::XMLChannelValues( uint indent_level, uint chan) const { QString channel_info = SCTEIsChannelNumberTwoPart(chan) ? QString("major_channel=\"%1\" minor_channel=\"%2\" ") .arg(MajorChannel(chan)).arg(MinorChannel(chan)) : QString("channel_number=\"%1\" ") .arg(SCTEOnePartChannel(chan)); return channel_info + VirtualChannelTable::XMLChannelValues(indent_level, chan) + QString(" path_select=\"%1\" out_of_band=\"%2\"") .arg(xml_bool_to_string(IsPathSelect(chan))) .arg(xml_bool_to_string(IsOutOfBand(chan))); }