📄 sitypes.h
字号:
QDateTime EndTime; uint16_t TransportID; uint16_t NetworkID; QString LanguageCode; uint16_t ServiceID; /* NOT the Virtual Channel Number used by ATSC */ QString Event_Name; QString Event_Subtitle; QString Description; uint16_t EventID; QString ContentDescription; QString Year; QStringList Actors; bool Stereo; bool HDTV; bool SubTitled; int ETM_Location; /* Used to flag still waiting ETTs for ATSC */ bool ATSC; //bool PreviouslyShown; QDate OriginalAirDate; QValueList<Person> Credits;};// DVB TransportObject - Used with NIT Scanningclass TransportObject{public: TransportObject() { Reset(); } TransportObject(const QString& DVBType) : Type(DVBType) { } void Reset(); // Many of these object types are QStrings since it will // go into the database easier, and also be handled by // ParseQPSK,ParseQAM,ParseXXX since that is what they expect QString Type; uint16_t NetworkID; uint16_t TransportID; // DVB Global uint32_t Frequency; QString Modulation; uint32_t SymbolRate; QString FEC_Inner; // DVB-S Specific QString Polarity; QString OrbitalLocation; // DVB-C Specific QString FEC_Outer; // DVB-T Speficic QString Bandwidth; QString Constellation; // QString CentreFrequency - Place in Frequency QString Hiearchy; QString CodeRateHP; QString CodeRateLP; QString GuardInterval; QString TransmissionMode; QString Inversion; //Additional frequencies QValueList<unsigned> frequencies;};class NetworkObject{public: NetworkObject() { Reset(); } void Reset(); uint16_t NetworkID; QString NetworkName; uint16_t LinkageTransportID; uint16_t LinkageNetworkID; uint16_t LinkageServiceID; uint16_t LinkageType; uint8_t LinkagePresent;};class NITObject{public: QValueList<NetworkObject> Network; QValueList<TransportObject> Transport;};class PMTObject{public: PMTObject() { Reset(); } void Reset(); bool TelevisionService() { return hasVideo && hasAudio; } bool OnAir() { return TelevisionService(); } bool FTA() { return !hasCA; } uint16_t PCRPID; uint16_t ServiceID; uint16_t PMTPID; CAMap CA; DescriptorList Descriptors; QValueList<ElementaryPIDObject> Components; bool hasCA; bool hasAudio; bool hasVideo;};// --- BEGIN: changes by PJ ---class DSMCCHandler : public TableHandler{public: DSMCCHandler() : TableHandler() { Reset(); } ~DSMCCHandler() {} void Reset() { status.clear(); patloaded = false;} bool RequirePIDs(); bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key = 0); void RequestEmit(uint16_t key); bool EmitRequired(); bool CompleteEmitRequired() { return false; } bool GetEmitID(uint16_t& key0, uint16_t& key1); void DependencyMet(tabletypes t) {if (t == PAT) patloaded = true;} // Never complete, we always want to get fresh data (carousel updates etc) bool Complete() { return false; } // Dummy methods that have been neutered to do nothing: bool AddSection(tablehead_t* head, uint16_t key0, uint16_t key1); void DependencyChanged(tabletypes t) {(void) t;}private: bool patloaded; QMap_pullStatus status;};// --- END: changes by PJ ---/* PAT Handler */class PATHandler : public TableHandler{public: PATHandler() : TableHandler() {} ~PATHandler() {} void Reset(); bool RequirePIDs(); bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key = 0); bool Complete(); void AddKey(uint16_t key0, uint16_t key1) { (void) key0; (void) key1; } bool AddSection(tablehead_t *head, uint16_t key0 = 0, uint16_t key1 = 0); void DependencyMet(tabletypes t) { (void) t; } void DependencyChanged(tabletypes t) { (void) t; } QMap_uint16_t pids; SectionTracker Tracker; pullStatus status;};/* PMT Handler */typedef QMap<uint16_t,PMTObject> QMap_PMTObject;class PMTHandler : public TableHandler{public: PMTHandler() : TableHandler() { Reset(); } ~PMTHandler() {} void Reset() { Tracker.clear(); pmt.clear(); status.clear(); patloaded = false; } bool RequirePIDs(); bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key = 0) { (void) key; } void RequestEmit(uint16_t key); bool EmitRequired(); bool CompleteEmitRequired() { return false; } bool GetEmitID(uint16_t& key0, uint16_t& key1); bool AddSection(tablehead_t* head, uint16_t key0, uint16_t key1); bool Complete() { return false; } void AddKey(uint16_t key0, uint16_t key1); void DependencyMet(tabletypes t); void DependencyChanged(tabletypes t); QMap_PMTObject pmt;private: QMap_SectionTracker Tracker; bool patloaded; QMap_pullStatus status;};class MGTHandler : public TableHandler{public: MGTHandler() : TableHandler() { } ~MGTHandler() {} void Reset() { status.Reset(); Tracker.Reset(); pids.clear(); } bool RequirePIDs(); /* It's best to open the PID wide open so you get the other ATSC tables */ bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key = 0); bool Complete(); void AddKey(uint16_t key0, uint16_t key1) { (void) key0; (void) key1; } bool AddSection(tablehead_t *head, uint16_t key0 = 0, uint16_t key1 = 0); void DependencyMet(tabletypes t) { (void) t; } void DependencyChanged(tabletypes t) { (void) t; } QMap_uint16_t pids; SectionTracker Tracker; pullStatus status;};class STTHandler : public TableHandler{public: STTHandler() : TableHandler() {} ~STTHandler() {} void Reset() { status.Reset(); Tracker.Reset(); GPSOffset = 0; } bool RequirePIDs(); bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key = 0); bool Complete(); void AddKey(uint16_t key0, uint16_t key1) { (void) key0; (void) key1; } bool AddSection(tablehead_t *head, uint16_t key0 = 0, uint16_t key1 = 0); void DependencyMet(tabletypes t) { (void) t; } void DependencyChanged(tabletypes t) { (void) t; } int GPSOffset; SectionTracker Tracker; pullStatus status;};// TODO: Setup only for ATSC Guide right nowclass EventHandler : public TableHandler{public: EventHandler() : TableHandler() { Reset(); } ~EventHandler() {} void Reset(); void SetSIStandard(SISTANDARD _SIStandard) { SIStandard = _SIStandard; } bool Complete(); void SetupTrackers(); bool RequirePIDs(); bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key) { (void) key; } void RequestEmit(uint16_t key); bool EmitRequired(); bool GetEmitID(uint16_t& key0, uint16_t& key1); void DependencyMet(tabletypes t); void AddPid(uint16_t pid,uint8_t filter, uint8_t mask, uint8_t key); bool AddSection(tablehead_t *head, uint16_t key0, uint16_t key1); QMap2D_SectionTracker Tracker; QMap_pullStatus status; /* Status of serviceIDs */ bool mgtloaded; bool sttloaded; bool servicesloaded; bool CompleteSent; QMap_pidHandler EITpid; /* for ATSC use this as a key */ QMap_pidHandler ETTpid; QMap2D_Events Events; QMap_bool TrackerSetup;};class ServiceHandler : public TableHandler{public: ServiceHandler() : TableHandler() { Reset(); } ~ServiceHandler() {} void SetSIStandard(SISTANDARD _SIStandard) { SIStandard = _SIStandard; } void Reset(); bool Complete(); bool RequirePIDs(); bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key); void RequestEmit(uint16_t key); bool EmitRequired() { return false; } bool GetEmitID(uint16_t& key0, uint16_t& key1); void DependencyMet(tabletypes t); bool AddSection(tablehead_t *head, uint16_t key0, uint16_t key1); QMap_SectionTracker Tracker; QMap_pullStatus status; /* Status of each transport */ bool mgtloaded; bool nitloaded; bool CompleteSent; QMap2D_SDTObject Services;};class NetworkHandler : public TableHandler{public: NetworkHandler() : TableHandler() { Reset(); } ~NetworkHandler() {} void SetSIStandard(SISTANDARD _SIStandard) { SIStandard = _SIStandard; } void Reset(); bool Complete(); bool RequirePIDs(); bool GetPIDs(uint16_t& pid, uint8_t& filter, uint8_t& mask); void Request(uint16_t key); void RequestEmit(uint16_t key); bool EmitRequired(); bool GetEmitID(uint16_t& key0, uint16_t& key1); bool AddSection(tablehead_t *head, uint16_t key0, uint16_t key1); void DependencyMet(tabletypes t) { (void) t;} SISTANDARD SIStandard; SectionTracker Tracker; pullStatus status; bool mgtloaded; bool CompleteSent; NITObject NITList;};#endif // SITYPES_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -