AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
konaipjsonparse.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
2 //-------------------------------------------------------------------------------------------
3 // konaipjsonparse.h
4 // Implementation of ip json parser for 2110.
5 //
6 // Copyright (C) 2018 AJA Video Systems, Inc.
7 // Proprietary and Confidential information. All rights reserved.
8 //-------------------------------------------------------------------------------------------
9 
10 #ifndef IP_JSON_PARSE_H
11 #define IP_JSON_PARSE_H
12 
13 #include <QJsonObject>
14 #include <QJsonArray>
15 #include <QList>
16 
17 #include "ntv2config2022.h"
18 #include "ntv2config2110.h"
19 
20 #define MaxVal(X,Y) ((X) < (Y) ? (Y) : (X))
21 #define MinVal(X,Y) ((X) < (Y) ? (X) : (Y))
22 #define AbsVal(X) ((X) < 0 ? (-X) : (X))
23 
24 #define BUILD_DEMO 1
25 
26 //-------------------------------------------------------------------------------------------------
27 // CKonaIpJsonParse2110
28 //-------------------------------------------------------------------------------------------------
30 {
31 public:
34 
35  bool SetJson(const QJsonObject& topObj, bool verbose);
36  bool SetJsonProtocol(const QJsonObject& obj);
37  bool SetJsonNetwork(const QJsonObject& obj);
38 
39  bool SetJsonReceiveVideo(const QJsonArray& jsonArray);
40  bool SetJsonReceiveAudio(const QJsonArray& jsonArray);
41  bool SetJsonReceiveAnc(const QJsonArray& jsonArray);
42 
43  bool SetJsonTransmitVideo(const QJsonArray& jsonArray);
44  bool SetJsonTransmitAudio(const QJsonArray& jsonArray);
45  bool SetJsonTransmitAnc(const QJsonArray& jsonArray);
46 
47  bool JsonToStructNetwork(const QJsonObject& topObj, NetworkData2110& n2110);
48  bool StructToJsonNetwork(const NetworkData2110& n2110, QJsonObject& topObj);
49 
50  bool JsonToStructReceiveVideo(const QJsonArray& vArray, ReceiveVideoData2110& n2110);
51  bool StructToJsonReceiveVideo(const ReceiveVideoData2110& n2110, QJsonArray& topObj);
52  bool JsonToStructReceiveAudio(const QJsonArray& aArray, ReceiveAudioData2110& n2110);
53  bool StructToJsonReceiveAudio(const ReceiveAudioData2110& n2110, QJsonArray& aArray);
54  bool JsonToStructReceiveAnc(const QJsonArray& aArray, ReceiveAncData2110& n2110);
55  bool StructToJsonReceiveAnc(const ReceiveAncData2110& n2110, QJsonArray& aArray);
56 
57  bool JsonToStructTransmitVideo(const QJsonArray& vArray, TransmitVideoData2110& n2110);
58  bool StructToJsonTransmitVideo(const TransmitVideoData2110& n2110, QJsonArray& vArray);
59  bool JsonToStructTransmitAudio(const QJsonArray& aArray, TransmitAudioData2110& n2110);
60  bool StructToJsonTransmitAudio(const TransmitAudioData2110& n2110, QJsonArray& aArray);
61  bool JsonToStructTransmitAnc(const QJsonArray& aArray, TransmitAncData2110& n2110);
62  bool StructToJsonTransmitAnc(const TransmitAncData2110& n2110, QJsonArray& aArray);
63 
64  bool StructToJson( const NetworkData2110& net2110,
65  const ReceiveVideoData2110& vidRec2110,
66  const ReceiveAudioData2110& audRec2110,
67  const ReceiveAncData2110& ancRec2110,
68  const TransmitVideoData2110& vidTran2110,
69  const TransmitAudioData2110& audTran2110,
70  const TransmitAncData2110& ancTran2110,
71  QJsonObject& topObj);
72 
73  bool GetEnable(const std::string enableBoolString);
74  QString GetEnable(const bool enabled);
75  VPIDSampling GetSampling(const std::string samplingString);
76  QString GetSampling(const VPIDSampling sampling);
77  NTV2Channel GetChannel(const std::string channelString);
78  QString GetChannel(const NTV2Channel channel);
79  eSFP GetSfp(const std::string sfpString);
80  QString GetSfp(const eSFP sfp);
81  NTV2Stream GetAudioStream(const std::string streamString);
82  QString GetAudioStream(const NTV2Stream stream);
83  NTV2Stream GetAncStream(const std::string streamString);
84  QString GetAncStream(const NTV2Stream stream);
85  eNTV2PacketInterval GetAudioPktInterval(const std::string streamString);
86  QString GetAudioPktInterval(const eNTV2PacketInterval stream);
87  NTV2Stream GetVideoStream(const std::string streamString);
88  QString GetVideoStream(const NTV2Stream stream);
89  void GetGrandMasterID(const std::string str, uint8_t (&id)[8]);
90  QString GetGrandMasterID(const uint8_t id[8]);
91 
92 public:
93  bool m_verbose;
94 
95  QJsonObject m_topJson;
96  QJsonObject m_protocolJson;
97  QJsonObject m_netJson;
98  QJsonArray m_receiveVideoJson;
99  QJsonArray m_receiveAudioJson;
100  QJsonArray m_receiveAncJson;
103  QJsonArray m_transmitAncJson;
104 
112 };
113 
114 
115 #endif // IP_JSON_PARSE_H
NTV2Channel GetChannel(const std::string channelString)
bool JsonToStructTransmitVideo(const QJsonArray &vArray, TransmitVideoData2110 &n2110)
bool JsonToStructReceiveAnc(const QJsonArray &aArray, ReceiveAncData2110 &n2110)
QJsonArray m_receiveVideoJson
ReceiveAncData2110 m_receiveAnc2110
eNTV2PacketInterval GetAudioPktInterval(const std::string streamString)
bool SetJsonReceiveAudio(const QJsonArray &jsonArray)
QJsonArray m_transmitAncJson
NTV2Stream GetAudioStream(const std::string streamString)
bool SetJsonReceiveAnc(const QJsonArray &jsonArray)
QJsonArray m_transmitVideoJson
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They&#39;re also commonly use...
Definition: ntv2enums.h:1357
eNTV2PacketInterval
TransmitAncData2110 m_transmitAnc2110
eSFP GetSfp(const std::string sfpString)
bool JsonToStructTransmitAnc(const QJsonArray &aArray, TransmitAncData2110 &n2110)
ReceiveVideoData2110 m_receiveVideo2110
bool SetJsonReceiveVideo(const QJsonArray &jsonArray)
NetworkData2110 m_net2110
bool SetJsonTransmitAudio(const QJsonArray &jsonArray)
Declares the CNTV2Config2110 class.
bool SetJsonTransmitVideo(const QJsonArray &jsonArray)
QJsonArray m_receiveAudioJson
QJsonArray m_transmitAudioJson
NTV2Stream GetVideoStream(const std::string streamString)
TransmitAudioData2110 m_transmitAudio2110
bool StructToJsonNetwork(const NetworkData2110 &n2110, QJsonObject &topObj)
bool JsonToStructTransmitAudio(const QJsonArray &aArray, TransmitAudioData2110 &n2110)
Declares the CNTV2Config2022 class.
NTV2Stream GetAncStream(const std::string streamString)
VPIDSampling
Definition: ntv2enums.h:4088
bool StructToJsonTransmitVideo(const TransmitVideoData2110 &n2110, QJsonArray &vArray)
bool StructToJsonTransmitAnc(const TransmitAncData2110 &n2110, QJsonArray &aArray)
bool JsonToStructReceiveVideo(const QJsonArray &vArray, ReceiveVideoData2110 &n2110)
bool StructToJsonReceiveAudio(const ReceiveAudioData2110 &n2110, QJsonArray &aArray)
ReceiveAudioData2110 m_receiveAudio2110
bool SetJsonNetwork(const QJsonObject &obj)
bool JsonToStructReceiveAudio(const QJsonArray &aArray, ReceiveAudioData2110 &n2110)
NTV2Stream
Identifies a specific IP-based data stream.
Definition: ntv2enums.h:1407
bool SetJson(const QJsonObject &topObj, bool verbose)
void GetGrandMasterID(const std::string str, uint8_t(&id)[8])
bool StructToJsonTransmitAudio(const TransmitAudioData2110 &n2110, QJsonArray &aArray)
bool StructToJsonReceiveVideo(const ReceiveVideoData2110 &n2110, QJsonArray &topObj)
bool JsonToStructNetwork(const QJsonObject &topObj, NetworkData2110 &n2110)
bool SetJsonProtocol(const QJsonObject &obj)
bool GetEnable(const std::string enableBoolString)
bool StructToJson(const NetworkData2110 &net2110, const ReceiveVideoData2110 &vidRec2110, const ReceiveAudioData2110 &audRec2110, const ReceiveAncData2110 &ancRec2110, const TransmitVideoData2110 &vidTran2110, const TransmitAudioData2110 &audTran2110, const TransmitAncData2110 &ancTran2110, QJsonObject &topObj)
bool StructToJsonReceiveAnc(const ReceiveAncData2110 &n2110, QJsonArray &aArray)
QJsonObject m_protocolJson
VPIDSampling GetSampling(const std::string samplingString)
TransmitVideoData2110 m_transmitVideo2110
bool SetJsonTransmitAnc(const QJsonArray &jsonArray)