AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
ancillarydata_timecode_atc.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef AJA_ANCILLARYDATA_TIMECODE_ATC_H
9 #define AJA_ANCILLARYDATA_TIMECODE_ATC_H
10 
11 #include "ancillarydatafactory.h"
12 #include "ancillarydata.h"
13 #include "ancillarydata_timecode.h"
14 
15 
16 // SMPTE 12M Ancillary Packet (formerly "RP-188")
17 const uint8_t AJAAncillaryData_SMPTE12M_DID = 0x60;
18 const uint8_t AJAAncillaryData_SMPTE12M_SID = 0x60;
19 const uint32_t AJAAncillaryData_SMPTE12M_PayloadSize = 16; // constant 16 bytes
20 
21 
22 // see SMPTE 12M-2 Table 2
24 {
28 
31 
35 
37 };
38 
39 
44 {
45 public:
47 
53 
59 
65 
66  virtual ~AJAAncillaryData_Timecode_ATC ();
67 
68  virtual void Clear (void);
69 
76 
77  virtual inline AJAAncillaryData_Timecode_ATC * Clone (void) const {return new AJAAncillaryData_Timecode_ATC (this);}
78 
79 
86  virtual AJAStatus SetDBB1(uint8_t dbb1);
87  virtual AJAStatus GetDBB1(uint8_t& dbb1) const;
88 
89  virtual AJAStatus SetDBB2(uint8_t dbb2);
90  virtual AJAStatus GetDBB2(uint8_t& dbb2) const;
91 
92  virtual AJAStatus SetDBB(uint8_t dbb1, uint8_t dbb2);
93  virtual AJAStatus GetDBB(uint8_t& dbb1, uint8_t& dbb2) const;
94 
95 
101  virtual AJAStatus SetDBB1PayloadType (const AJAAncillaryData_Timecode_ATC_DBB1PayloadType inType);
102 
108  virtual AJAStatus GetDBB1PayloadType (AJAAncillaryData_Timecode_ATC_DBB1PayloadType & outType) const;
109 
114  virtual AJAStatus ParsePayloadData (void);
115 
121  virtual AJAStatus GeneratePayloadData (void);
122 
129  virtual std::ostream & Print (std::ostream & inOutStream, const bool inDetailed = false) const;
130 
135  static AJAAncDataType RecognizeThisAncillaryData (const AJAAncillaryData * pInAncData);
136 
137 protected:
138  void Init (void); // NOT virtual - called by constructors
139 
140  // Note: if you make a change to the local member data, be sure to ALSO make the appropriate
141  // changes in the Init() and operator= methods!
142  uint8_t m_dbb1; // "Distributed Binary Bits" - only transported by ATC
143  uint8_t m_dbb2; //
144 
145 }; // AJAAncillaryData_Timecode_ATC
146 
147 #endif // AJA_ANCILLARYDATA_TIMECODE_ATC_H
148 
const uint8_t AJAAncillaryData_SMPTE12M_SID
AJAStatus
Definition: types.h:380
AJAAncDataType
Identifies the ancillary data types that are known to this module.
Definition: ancillarydata.h:44
virtual AJAStatus GeneratePayloadData(void)
Generate the payload data from the "local" ancillary data.
AJAAncillaryData_Timecode & operator=(const AJAAncillaryData_Timecode &inRHS)
Assignment operator – replaces my contents with the right-hand-side value.
virtual AJAAncillaryData_Timecode_ATC * Clone(void) const
static AJAAncDataType RecognizeThisAncillaryData(const AJAAncillaryData *pInAncData)
Declares the AJAAncillaryData_Timecode class.
This is the base class for the AJAAncillaryData_Timecode_ATC and AJAAncillaryData_Timecode_VITC class...
virtual AJAStatus ParsePayloadData(void)
Parses out (interprets) the "local" ancillary data from my payload data.
Declaration of the AJAAncillaryDataFactory class.
#define AJAExport
Definition: export.h:33
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values. ...
Declares the AJAAncillaryData class.
I am the ATC-specific (analog) subclass of the AJAAncillaryData_Timecode class.
const uint32_t AJAAncillaryData_SMPTE12M_PayloadSize
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
AJAAncillaryData_Timecode_ATC_DBB1PayloadType
const uint8_t AJAAncillaryData_SMPTE12M_DID
virtual std::ostream & Print(std::ostream &inOutStream, const bool inDetailed=false) const
Streams a human-readable representation of me to the given output stream.