AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
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 
AJAAncillaryData_Timecode
This is the base class for the AJAAncillaryData_Timecode_ATC and AJAAncillaryData_Timecode_VITC class...
Definition: ancillarydata_timecode.h:36
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_VITC1
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_VITC1
Definition: ancillarydata_timecode_atc.h:26
ancillarydata.h
Declares the AJAAncillaryData class.
AJAAncillaryData_SMPTE12M_SID
const uint8_t AJAAncillaryData_SMPTE12M_SID
Definition: ancillarydata_timecode_atc.h:18
AJAAncillaryData_Timecode_ATC_DBB1PayloadType
AJAAncillaryData_Timecode_ATC_DBB1PayloadType
Definition: ancillarydata_timecode_atc.h:23
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_ReaderProdData
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_ReaderProdData
Definition: ancillarydata_timecode_atc.h:30
AJAAncDataType
AJAAncDataType
Identifies the ancillary data types that are known to this module.
Definition: ancillarydata.h:44
ancillarydatafactory.h
Declaration of the AJAAncillaryDataFactory class.
AJAAncillaryData_Timecode_ATC::m_dbb1
uint8_t m_dbb1
Definition: ancillarydata_timecode_atc.h:142
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LTC
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LTC
Definition: ancillarydata_timecode_atc.h:25
AJAStatus
AJAStatus
Definition: types.h:365
AJAAncillaryData_Timecode::Clear
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values.
Definition: ancillarydata_timecode.cpp:76
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LocalFilmData
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LocalFilmData
Definition: ancillarydata_timecode_atc.h:33
AJAAncillaryData
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
Definition: ancillarydata.h:550
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LocalProdData
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LocalProdData
Definition: ancillarydata_timecode_atc.h:34
AJAAncillaryData_Timecode::Init
void Init(void)
Definition: ancillarydata_timecode.cpp:46
AJAAncillaryData_Timecode::GeneratePayloadData
virtual AJAStatus GeneratePayloadData(void)
Generate the payload data from the "local" ancillary data.
Definition: ancillarydata_timecode.h:69
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_VITC2
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_VITC2
Definition: ancillarydata_timecode_atc.h:27
AJAAncillaryData_Timecode::operator=
virtual AJAAncillaryData_Timecode & operator=(const AJAAncillaryData_Timecode &inRHS)
Assignment operator – replaces my contents with the right-hand-side value.
Definition: ancillarydata_timecode.cpp:58
AJAAncillaryData_Timecode::Print
virtual std::ostream & Print(std::ostream &inOutStream, const bool inDetailed=false) const
Streams a human-readable representation of me to the given output stream.
Definition: ancillarydata_timecode.cpp:646
AJAAncillaryData_Timecode_ATC
I am the ATC-specific (analog) subclass of the AJAAncillaryData_Timecode class.
Definition: ancillarydata_timecode_atc.h:43
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LocalVideoData
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_LocalVideoData
Definition: ancillarydata_timecode_atc.h:32
AJAAncillaryData_SMPTE12M_PayloadSize
const uint32_t AJAAncillaryData_SMPTE12M_PayloadSize
Definition: ancillarydata_timecode_atc.h:19
ancillarydata_timecode.h
Declares the AJAAncillaryData_Timecode class.
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_ReaderFilmData
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_ReaderFilmData
Definition: ancillarydata_timecode_atc.h:29
AJAAncillaryData_Timecode::RecognizeThisAncillaryData
static AJAAncDataType RecognizeThisAncillaryData(const AJAAncillaryData *pInAncData)
Definition: ancillarydata_timecode.cpp:91
AJAAncillaryData_Timecode_ATC_DBB1PayloadType_Unknown
@ AJAAncillaryData_Timecode_ATC_DBB1PayloadType_Unknown
Definition: ancillarydata_timecode_atc.h:36
AJAAncillaryData_SMPTE12M_DID
const uint8_t AJAAncillaryData_SMPTE12M_DID
Definition: ancillarydata_timecode_atc.h:17
AJAExport
#define AJAExport
Definition: export.h:33
AJAAncillaryData::Clone
virtual AJAAncillaryData * Clone(void) const
Definition: ancillarydata.cpp:153
AJAAncillaryData_Timecode::ParsePayloadData
virtual AJAStatus ParsePayloadData(void)
Parses out (interprets) the "local" ancillary data from my payload data.
Definition: ancillarydata_timecode.cpp:83
AJAAncillaryData_Timecode_ATC::m_dbb2
uint8_t m_dbb2
Definition: ancillarydata_timecode_atc.h:143