AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
ntv2routingexpert.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #include "ntv2routingexpert.h"
9 #include "ajabase/system/debug.h"
10 #include "ajabase/common/common.h"
11 
12 // Logging helpers
13 #define HEX16(__x__) "0x" << std::hex << std::setw(16) << std::setfill('0') << uint64_t(__x__) << std::dec
14 #define INSTP(_p_) HEX16(uint64_t(_p_))
15 #define SRiFAIL(__x__) AJA_sERROR (AJA_DebugUnit_RoutingGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
16 #define SRiWARN(__x__) AJA_sWARNING(AJA_DebugUnit_RoutingGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
17 #define SRiNOTE(__x__) AJA_sNOTICE (AJA_DebugUnit_RoutingGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
18 #define SRiINFO(__x__) AJA_sINFO (AJA_DebugUnit_RoutingGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
19 #define SRiDBG(__x__) AJA_sDEBUG (AJA_DebugUnit_RoutingGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__)
20 #define SRFAIL(__x__) AJA_sERROR (AJA_DebugUnit_RoutingGeneric, AJAFUNC << ": " << __x__)
21 #define SRWARN(__x__) AJA_sWARNING(AJA_DebugUnit_RoutingGeneric, AJAFUNC << ": " << __x__)
22 #define SRNOTE(__x__) AJA_sNOTICE (AJA_DebugUnit_RoutingGeneric, AJAFUNC << ": " << __x__)
23 #define SRINFO(__x__) AJA_sINFO (AJA_DebugUnit_RoutingGeneric, AJAFUNC << ": " << __x__)
24 #define SRDBG(__x__) AJA_sDEBUG (AJA_DebugUnit_RoutingGeneric, AJAFUNC << ": " << __x__)
25 
26 static uint32_t gInstanceTally(0);
27 static uint32_t gLivingInstances(0);
28 
29 RoutingExpertPtr RoutingExpert::GetInstance(const bool inCreateIfNecessary)
30 {
32  if (!gpRoutingExpert && inCreateIfNecessary)
34  return gpRoutingExpert;
35 }
36 
38 {
40  if (!gpRoutingExpert)
41  return false;
43  return true;
44 }
45 
47 {
48  return gLivingInstances;
49 }
50 
51 //#define DUMP_WIDGETID_TO_INPUT_XPTS_MMAP
52 RoutingExpert::RoutingExpert()
53 {
54  InitInputXpt2String();
55  InitOutputXpt2String();
56  InitInputXpt2WidgetIDs();
57  InitOutputXpt2WidgetIDs();
58  InitWidgetIDToChannels();
59  InitWidgetIDToWidgetTypes();
62  SRiNOTE(DEC(gLivingInstances) << " extant, " << DEC(gInstanceTally) << " total");
63  #if defined(DUMP_WIDGETID_TO_INPUT_XPTS_MMAP)
64  for (Widget2InputXptsConstIter it(gWidget2InputXpts.begin()); it != gWidget2InputXpts.end(); ++it)
65  SRiDBG(::NTV2WidgetIDToString(it->first,false) << " ('" << ::NTV2WidgetIDToString(it->first,true)
66  << "', " << DEC(it->first) << ") => " << ::NTV2InputCrosspointIDToString(it->second,false)
67  << " (" << ::NTV2InputCrosspointIDToString(it->second,true) << ", " << DEC(it->second) << ")");
68  #endif // defined(DUMP_WIDGETID_TO_INPUT_XPTS_MMAP)
69 }
70 
72 {
74  SRiNOTE(DEC(gLivingInstances) << " extant, " << DEC(gInstanceTally) << " total");
75 }
76 
77 std::string RoutingExpert::InputXptToString (const NTV2InputXptID inInputXpt) const
78 {
79  AJAAutoLock lock(&gLock);
80  NTV2_ASSERT(!gInputXpt2String.empty());
81  InputXpt2StringConstIter iter(gInputXpt2String.find(inInputXpt));
82  return iter != gInputXpt2String.end() ? iter->second : std::string();
83 }
84 
85 std::string RoutingExpert::OutputXptToString (const NTV2OutputXptID inOutputXpt) const
86 {
87  AJAAutoLock lock(&gLock);
88  NTV2_ASSERT(!gOutputXpt2String.empty());
89  OutputXpt2StringConstIter iter(gOutputXpt2String.find(inOutputXpt));
90  return iter != gOutputXpt2String.end() ? iter->second : std::string();
91 }
92 
93 NTV2InputXptID RoutingExpert::StringToInputXpt (const std::string & inStr) const
94 {
95  AJAAutoLock lock(&gLock);
96  NTV2_ASSERT(!gString2InputXpt.empty ());
97  std::string str(inStr); aja::lower(aja::strip(str));
98  String2InputXptConstIter iter(gString2InputXpt.find(str));
99  return iter != gString2InputXpt.end() ? iter->second : NTV2_INPUT_CROSSPOINT_INVALID;
100 }
101 
102 NTV2OutputXptID RoutingExpert::StringToOutputXpt (const std::string & inStr) const
103 {
104  AJAAutoLock lock(&gLock);
105  NTV2_ASSERT(!gString2OutputXpt.empty());
106  std::string str(inStr); aja::lower(aja::strip(str));
107  String2OutputXptConstIter iter(gString2OutputXpt.find(str));
108  return iter != gString2OutputXpt.end() ? iter->second : NTV2_XptBlack;
109 }
110 
112 {
113  AJAAutoLock lock(&gLock);
114  NTV2_ASSERT(!gWidget2Types.empty());
115  for (Widget2TypesConstIter iter = gWidget2Types.begin(); iter != gWidget2Types.end(); iter++) {
116  if (iter->first == inWidgetID) {
117  return iter->second;
118  }
119  }
120  return NTV2WidgetType_Invalid;
121 }
122 
124 {
125  AJAAutoLock lock(&gLock);
126  NTV2_ASSERT(!gWidget2Channels.empty());
127  for (Widget2ChannelsConstIter iter = gWidget2Channels.begin(); iter != gWidget2Channels.end(); iter++) {
128  if (iter->first == inWidgetID)
129  return iter->second;
130  }
131  return NTV2_CHANNEL_INVALID;
132 }
133 
135 {
136  AJAAutoLock lock(&gLock);
137  NTV2_ASSERT(!gWidget2Types.empty());
138  for (Widget2TypesConstIter iter = gWidget2Types.begin(); iter != gWidget2Types.end(); iter++) {
139  if (iter->second == inWidgetType && WidgetIDToChannel(iter->first) == inChannel)
140  return iter->first;
141  }
142  return NTV2_WIDGET_INVALID;
143 }
144 
145 bool RoutingExpert::GetWidgetsForOutput (const NTV2OutputXptID inOutputXpt, NTV2WidgetIDSet & outWidgetIDs) const
146 {
147  AJAAutoLock lock(&gLock);
148  NTV2_ASSERT(!gOutputXpt2WidgetIDs.empty());
149  outWidgetIDs.clear();
150  for (OutputXpt2WidgetIDsConstIter iter(gOutputXpt2WidgetIDs.find(inOutputXpt));
151  iter != gOutputXpt2WidgetIDs.end() && iter->first == inOutputXpt;
152  ++iter)
153  outWidgetIDs.insert(iter->second);
154  return !outWidgetIDs.empty();
155 }
156 
157 bool RoutingExpert::GetWidgetsForInput (const NTV2InputXptID inInputXpt, NTV2WidgetIDSet & outWidgetIDs) const
158 {
159  AJAAutoLock lock(&gLock);
160  NTV2_ASSERT(!gInputXpt2WidgetIDs.empty());
161  outWidgetIDs.clear();
162  InputXpt2WidgetIDsConstIter iter(gInputXpt2WidgetIDs.find(inInputXpt));
163  while (iter != gInputXpt2WidgetIDs.end() && iter->first == inInputXpt)
164  {
165  outWidgetIDs.insert(iter->second);
166  ++iter;
167  }
168  return !outWidgetIDs.empty();
169 }
170 
171 bool RoutingExpert::GetWidgetInputs (const NTV2WidgetID inWidgetID, NTV2InputXptIDSet & outInputs) const
172 {
173  AJAAutoLock lock(&gLock);
174  NTV2_ASSERT(!gWidget2InputXpts.empty());
175  outInputs.clear();
176  Widget2InputXptsConstIter iter(gWidget2InputXpts.find(inWidgetID));
177  while (iter != gWidget2InputXpts.end() && iter->first == inWidgetID)
178  {
179  outInputs.insert(iter->second);
180  ++iter;
181  }
182  return !outInputs.empty();
183 }
184 
185 bool RoutingExpert::GetWidgetOutputs (const NTV2WidgetID inWidgetID, NTV2OutputXptIDSet & outOutputs) const
186 {
187  AJAAutoLock lock(&gLock);
188  NTV2_ASSERT(!gWidget2OutputXpts.empty());
189  outOutputs.clear();
190  Widget2OutputXptsConstIter iter(gWidget2OutputXpts.find(inWidgetID));
191  while (iter != gWidget2OutputXpts.end() && iter->first == inWidgetID)
192  {
193  outOutputs.insert(iter->second);
194  ++iter;
195  }
196  return !outOutputs.empty();
197 }
198 
199 bool RoutingExpert::IsOutputXptValid (const NTV2OutputXptID inOutputXpt) const
200 {
201  AJAAutoLock lock(&gLock);
202  NTV2_ASSERT(!gOutputXpt2WidgetIDs.empty());
203  return gOutputXpt2WidgetIDs.find(inOutputXpt) != gOutputXpt2WidgetIDs.end();
204 }
205 
207 {
208  AJAAutoLock lock(&gLock);
209  NTV2_ASSERT(!gRGBOnlyInputXpts.empty());
210  return gRGBOnlyInputXpts.find(inInputXpt) != gRGBOnlyInputXpts.end();
211 }
212 
214 {
215  AJAAutoLock lock(&gLock);
216  NTV2_ASSERT(!gYUVOnlyInputXpts.empty());
217  return gYUVOnlyInputXpts.find(inInputXpt) != gYUVOnlyInputXpts.end();
218 }
219 
220 bool RoutingExpert::IsKeyInputXpt (const NTV2InputXptID inInputXpt) const
221 {
222  AJAAutoLock lock(&gLock);
223  NTV2_ASSERT(!gKeyInputXpts.empty());
224  return gKeyInputXpts.find(inInputXpt) != gKeyInputXpts.end();
225 }
226 
227 bool RoutingExpert::IsSDIWidget(const NTV2WidgetType inWidgetType) const
228 {
229  AJAAutoLock lock(&gLock);
230  NTV2_ASSERT(!gSDIWidgetTypes.empty());
231  return gSDIWidgetTypes.find(inWidgetType) != gSDIWidgetTypes.end();
232 }
233 
234 bool RoutingExpert::IsSDIInWidget(const NTV2WidgetType inWidgetType) const
235 {
236  AJAAutoLock lock(&gLock);
237  NTV2_ASSERT(!gSDIInWidgetTypes.empty());
238  return gSDIInWidgetTypes.find(inWidgetType) != gSDIInWidgetTypes.end();
239 }
240 
241 bool RoutingExpert::IsSDIOutWidget(const NTV2WidgetType inWidgetType) const
242 {
243  AJAAutoLock lock(&gLock);
244  NTV2_ASSERT(!gSDIOutWidgetTypes.empty());
245  return gSDIOutWidgetTypes.find(inWidgetType) != gSDIOutWidgetTypes.end();
246 }
247 
248 bool RoutingExpert::Is3GSDIWidget(const NTV2WidgetType inWidgetType) const
249 {
250  AJAAutoLock lock(&gLock);
251  NTV2_ASSERT(!gSDI3GWidgetTypes.empty());
252  return gSDI3GWidgetTypes.find(inWidgetType) != gSDI3GWidgetTypes.end();
253 }
254 
255 bool RoutingExpert::Is12GSDIWidget(const NTV2WidgetType inWidgetType) const
256 {
257  AJAAutoLock lock(&gLock);
258  NTV2_ASSERT(!gSDI12GWidgetTypes.empty());
259  return gSDI12GWidgetTypes.find(inWidgetType) != gSDI12GWidgetTypes.end();
260 }
261 
262 bool RoutingExpert::IsDualLinkWidget(const NTV2WidgetType inWidgetType) const
263 {
264  AJAAutoLock lock(&gLock);
265  NTV2_ASSERT(!gDualLinkWidgetTypes.empty());
266  return gDualLinkWidgetTypes.find(inWidgetType) != gDualLinkWidgetTypes.end();
267 }
268 
269 bool RoutingExpert::IsDualLinkInWidget(const NTV2WidgetType inWidgetType) const
270 {
271  AJAAutoLock lock(&gLock);
272  NTV2_ASSERT(!gDualLinkInWidgetTypes.empty());
273  return gDualLinkInWidgetTypes.find(inWidgetType) != gDualLinkInWidgetTypes.end();
274 }
275 
277 {
278  AJAAutoLock lock(&gLock);
279  NTV2_ASSERT(!gDualLinkOutWidgetTypes.empty());
280  return gDualLinkOutWidgetTypes.find(inWidgetType) != gDualLinkOutWidgetTypes.end();
281 }
282 
283 bool RoutingExpert::IsHDMIWidget(const NTV2WidgetType inWidgetType) const
284 {
285  AJAAutoLock lock(&gLock);
286  NTV2_ASSERT(!gHDMIWidgetTypes.empty());
287  return gHDMIWidgetTypes.find(inWidgetType) != gHDMIWidgetTypes.end();
288 }
289 
290 bool RoutingExpert::IsHDMIInWidget(const NTV2WidgetType inWidgetType) const
291 {
292  AJAAutoLock lock(&gLock);
293  NTV2_ASSERT(!gHDMIInWidgetTypes.empty());
294  return gHDMIInWidgetTypes.find(inWidgetType) != gHDMIInWidgetTypes.end();
295 }
296 
297 bool RoutingExpert::IsHDMIOutWidget(const NTV2WidgetType inWidgetType) const
298 {
299  AJAAutoLock lock(&gLock);
300  NTV2_ASSERT(!gHDMIOutWidgetTypes.empty());
301  return gHDMIOutWidgetTypes.find(inWidgetType) != gHDMIOutWidgetTypes.end();
302 }
303 
304 
305 #define NTV2SR_ASSIGN_BOTH(enumToStrMap, strToEnumMap, inEnum, inNameStr) \
306  { \
307  enumToStrMap[inEnum] = inNameStr; \
308  std::string lowerstr_(#inEnum); \
309  strToEnumMap[aja::lower(lowerstr_)] = inEnum; \
310  }
311 
312 void RoutingExpert::InitInputXpt2String(void)
313 {
314  // gInputXpt2String -- widgets with inputs & outputs
315  std::string lowerstr;
316  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux1AInput, "425Mux1a");
317  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux1BInput, "425Mux1b");
318  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux2AInput, "425Mux2a");
319  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux2BInput, "425Mux2b");
320  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux3AInput, "425Mux3a");
321  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux3BInput, "425Mux3b");
322  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux4AInput, "425Mux4a");
323  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt425Mux4BInput, "425Mux4b");
324  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt4KDCQ1Input, "4KDCQ1");
325  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt4KDCQ2Input, "4KDCQ2");
326  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt4KDCQ3Input, "4KDCQ3");
327  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_Xpt4KDCQ4Input, "4KDCQ4");
328  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC1KeyInput, "CSC1Key");
329  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC1VidInput, "CSC1"); // , "CSC1Vid";
330  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC2KeyInput, "CSC2Key");
331  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC2VidInput, "CSC2"); // , "CSC2Vid";
332  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC3KeyInput, "CSC3Key");
333  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC3VidInput, "CSC3"); // , "CSC3Vid";
334  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC4KeyInput, "CSC4Key");
335  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC4VidInput, "CSC4"); // , "CSC4Vid";
336  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC5KeyInput, "CSC5Key");
337  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC5VidInput, "CSC5"); // , "CSC5Vid";
338  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC6KeyInput, "CSC6Key");
339  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC6VidInput, "CSC6"); // , "CSC6Vid";
340  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC7KeyInput, "CSC7Key");
341  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC7VidInput, "CSC7"); // , "CSC7Vid";
342  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC8KeyInput, "CSC8Key");
343  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCSC8VidInput, "CSC8"); // , "CSC8Vid";
344  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn1Input, "DLIn1");
345  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn1DSInput, "DLIn1DS");
346  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn2Input, "DLIn2");
347  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn2DSInput, "DLIn2DS");
348  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn3Input, "DLIn3");
349  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn3DSInput, "DLIn3DS");
350  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn4Input, "DLIn4");
351  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn4DSInput, "DLIn4DS");
352  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn5Input, "DLIn5");
353  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn5DSInput, "DLIn5DS");
354  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn6Input, "DLIn6");
355  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn6DSInput, "DLIn6DS");
356  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn7Input, "DLIn7");
357  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn7DSInput, "DLIn7DS");
358  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn8Input, "DLIn8");
359  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkIn8DSInput, "DLIn8DS");
360  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut1Input, "DLOut1");
361  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut2Input, "DLOut2");
362  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut3Input, "DLOut3");
363  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut4Input, "DLOut4");
364  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut5Input, "DLOut5");
365  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut6Input, "DLOut6");
366  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut7Input, "DLOut7");
367  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptDualLinkOut8Input, "DLOut8");
368  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer1Input, "FB1");
369  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer1DS2Input, "FB1B");
370  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer2Input, "FB2");
371  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer2DS2Input, "FB2B");
372  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer3Input, "FB3");
373  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer3DS2Input, "FB3B");
374  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer4Input, "FB4");
375  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer4DS2Input, "FB4B");
376  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer5Input, "FB5");
377  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer5DS2Input, "FB5B");
378  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer6Input, "FB6");
379  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer6DS2Input, "FB6B");
380  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer7Input, "FB7");
381  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer7DS2Input, "FB7B");
382  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer8Input, "FB8");
383  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameBuffer8DS2Input, "FB8B");
384  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT1Input, "LUT1");
385  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT2Input, "LUT2");
386  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT3Input, "LUT3");
387  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT4Input, "LUT4");
388  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT5Input, "LUT5");
389  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT6Input, "LUT6");
390  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT7Input, "LUT7");
391  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptLUT8Input, "LUT8");
392  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer1BGKeyInput, "Mixer1BGKey");
393  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer1BGVidInput, "Mixer1BG"); // , "Mixer1BGVid";
394  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer1FGKeyInput, "Mixer1FGKey");
395  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer1FGVidInput, "Mixer1FG"); // , "Mixer1FGVid";
396  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer2BGKeyInput, "Mixer2BGKey");
397  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer2BGVidInput, "Mixer2BG"); // , "Mixer2BGVid";
398  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer2FGKeyInput, "Mixer2FGKey");
399  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer2FGVidInput, "Mixer2FG"); // , "Mixer2FGVid";
400  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer3BGKeyInput, "Mixer3BGKey");
401  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer3BGVidInput, "Mixer3BG"); // , "Mixer3BGVid";
402  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer3FGKeyInput, "Mixer3FGKey");
403  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer3FGVidInput, "Mixer3FG"); // , "Mixer3FGVid";
404  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer4BGKeyInput, "Mixer4BGKey");
405  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer4BGVidInput, "Mixer4BG"); // , "Mixer4BGVid";
406  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer4FGKeyInput, "Mixer4FGKey");
407  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptMixer4FGVidInput, "Mixer4FG"); // , "Mixer4FGVid";
408  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameSync1Input, "FS1");
409  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptFrameSync2Input, "FS2");
410  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptCompressionModInput, "Comp"); // , "Compress";
411  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptConversionModInput, "Conv"); // , "Convert"
412  // gInputXpt2String -- widgets with only inputs
413  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptAnalogOutInput, "AnalogOut"); // , "AnlgOut"
414  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut1Input, "SDIOut1");
415  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut1InputDS2, "SDIOut1DS"); // , "SDIOut1DS2"
416  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut2Input, "SDIOut2");
417  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut2InputDS2, "SDIOut2DS"); // , "SDIOut2DS2"
418  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut3Input, "SDIOut3");
419  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut3InputDS2, "SDIOut3DS"); // , "SDIOut3DS2"
420  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut4Input, "SDIOut4");
421  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut4InputDS2, "SDIOut4DS"); // , "SDIOut4DS2"
422  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut5Input, "SDIOut5");
423  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut5InputDS2, "SDIOut5DS"); // , "SDIOut5DS2"
424  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut6Input, "SDIOut6");
425  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut6InputDS2, "SDIOut6DS"); // , "SDIOut6DS2"
426  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut7Input, "SDIOut7");
427  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut7InputDS2, "SDIOut7DS"); // , "SDIOut7DS2"
428  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut8Input, "SDIOut8");
429  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptSDIOut8InputDS2, "SDIOut8DS"); // , "SDIOut8DS2"
430  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptHDMIOutInput, "HDMIOut");
431  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptHDMIOutQ1Input, "HDMIOutQ1");
432  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptHDMIOutQ2Input, "HDMIOutQ2");
433  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptHDMIOutQ3Input, "HDMIOutQ3");
434  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptHDMIOutQ4Input, "HDMIOutQ4");
435  NTV2SR_ASSIGN_BOTH(gInputXpt2String, gString2InputXpt, NTV2_XptOEInput, "OEInput");
436 
437  // gString2InputXpt
438  for (InputXpt2StringConstIter iter(gInputXpt2String.begin()); iter != gInputXpt2String.end(); ++iter)
439  {
440  std::string lowerStr(iter->second); aja::lower(lowerStr);
441  gString2InputXpt [lowerStr] = iter->first;
442  }
443  // Aliases:
444  gString2InputXpt ["csc1vid"] = NTV2_XptCSC1VidInput;
445  gString2InputXpt ["csc2vid"] = NTV2_XptCSC2VidInput;
446  gString2InputXpt ["csc3vid"] = NTV2_XptCSC3VidInput;
447  gString2InputXpt ["csc4vid"] = NTV2_XptCSC4VidInput;
448  gString2InputXpt ["csc5vid"] = NTV2_XptCSC5VidInput;
449  gString2InputXpt ["csc6vid"] = NTV2_XptCSC6VidInput;
450  gString2InputXpt ["csc7vid"] = NTV2_XptCSC7VidInput;
451  gString2InputXpt ["csc8vid"] = NTV2_XptCSC8VidInput;
452  gString2InputXpt ["mixer1bgvid"] = NTV2_XptMixer1BGVidInput;
453  gString2InputXpt ["mixer1fgvid"] = NTV2_XptMixer1FGVidInput;
454  gString2InputXpt ["mixer2bgvid"] = NTV2_XptMixer2BGVidInput;
455  gString2InputXpt ["mixer2fgvid"] = NTV2_XptMixer2FGVidInput;
456  gString2InputXpt ["mixer3bgvid"] = NTV2_XptMixer3BGVidInput;
457  gString2InputXpt ["mixer3fgvid"] = NTV2_XptMixer3FGVidInput;
458  gString2InputXpt ["mixer4bgvid"] = NTV2_XptMixer4BGVidInput;
459  gString2InputXpt ["mixer4fgvid"] = NTV2_XptMixer4FGVidInput;
460  gString2InputXpt ["compress"] = NTV2_XptCompressionModInput;
461  gString2InputXpt ["compressor"] = NTV2_XptCompressionModInput;
462  gString2InputXpt ["convert"] = NTV2_XptConversionModInput;
463  gString2InputXpt ["converter"] = NTV2_XptConversionModInput;
464  gString2InputXpt ["anlgout"] = NTV2_XptAnalogOutInput;
465  gString2InputXpt ["sdiout1ds2"] = NTV2_XptSDIOut1InputDS2;
466  gString2InputXpt ["sdiout2ds2"] = NTV2_XptSDIOut2InputDS2;
467  gString2InputXpt ["sdiout3ds2"] = NTV2_XptSDIOut3InputDS2;
468  gString2InputXpt ["sdiout4ds2"] = NTV2_XptSDIOut4InputDS2;
469  gString2InputXpt ["sdiout5ds2"] = NTV2_XptSDIOut5InputDS2;
470  gString2InputXpt ["sdiout6ds2"] = NTV2_XptSDIOut6InputDS2;
471  gString2InputXpt ["sdiout7ds2"] = NTV2_XptSDIOut7InputDS2;
472  gString2InputXpt ["sdiout8ds2"] = NTV2_XptSDIOut8InputDS2;
473 }
474 
475 void RoutingExpert::InitOutputXpt2String(void)
476 {
477  // gOutputXpt2String
478  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux1ARGB, "425Mux1aRGB");
479  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux1AYUV, "425Mux1aYUV");
480  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux1BRGB, "425Mux1bRGB");
481  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux1BYUV, "425Mux1bYUV");
482  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux2ARGB, "425Mux2aRGB");
483  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux2AYUV, "425Mux2aYUV");
484  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux2BRGB, "425Mux2bRGB");
485  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux2BYUV, "425Mux2bYUV");
486  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux3ARGB, "425Mux3aRGB");
487  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux3AYUV, "425Mux3aYUV");
488  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux3BRGB, "425Mux3bRGB");
489  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux3BYUV, "425Mux3bYUV");
490  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux4ARGB, "425Mux4aRGB");
491  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux4AYUV, "425Mux4aYUV");
492  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux4BRGB, "425Mux4bRGB");
493  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt425Mux4BYUV, "425Mux4bYUV");
494  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt4KDownConverterOut, "4KDC"); // , "4KDCYUV");
495  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt4KDownConverterOutRGB, "4KDCRGB");
496  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC1KeyYUV, "CSC1Key"); // , "CSC1KeyYUV");
497  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC1VidRGB, "CSC1RGB"); // , "CSC1VidRGB");
498  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC1VidYUV, "CSC1"); // , "CSC1YUV", "CSC1VidYUV");
499  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC2KeyYUV, "CSC2Key"); // , "CSC2KeyYUV");
500  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC2VidRGB, "CSC2RGB"); // , "CSC2VidRGB");
501  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC2VidYUV, "CSC2"); // , "CSC2YUV", "CSC2VidYUV");
502  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC3KeyYUV, "CSC3Key"); // , "CSC3KeyYUV");
503  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC3VidRGB, "CSC3RGB"); // , "CSC3VidRGB");
504  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC3VidYUV, "CSC3"); // , "CSC3YUV", "CSC3VidYUV");
505  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC4KeyYUV, "CSC4Key"); // , "CSC4KeyYUV");
506  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC4VidRGB, "CSC4RGB"); // , "CSC4VidRGB");
507  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC4VidYUV, "CSC4"); // , "CSC4YUV", "CSC4VidYUV");
508  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC5KeyYUV, "CSC5Key"); // , "CSC5KeyYUV");
509  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC5VidRGB, "CSC5RGB"); // , "CSC5VidRGB");
510  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC5VidYUV, "CSC5"); // , "CSC5YUV", "CSC5VidYUV");
511  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC6KeyYUV, "CSC6Key"); // , "CSC6KeyYUV");
512  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC6VidRGB, "CSC6RGB"); // , "CSC6VidRGB");
513  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC6VidYUV, "CSC6"); // , "CSC6YUV", "CSC6VidYUV");
514  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC7KeyYUV, "CSC7Key"); // , "CSC7KeyYUV");
515  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC7VidRGB, "CSC7RGB"); // , "CSC7VidRGB");
516  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC7VidYUV, "CSC7"); // , "CSC7YUV", "CSC7VidYUV");
517  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC8KeyYUV, "CSC8Key"); // , "CSC8KeyYUV");
518  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC8VidRGB, "CSC8RGB"); // , "CSC8VidRGB");
519  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCSC8VidYUV, "CSC8"); // , "CSC8YUV", "CSC8VidYUV");
520  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn1, "DLIn1");
521  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn2, "DLIn2");
522  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn3, "DLIn3");
523  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn4, "DLIn4");
524  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn5, "DLIn5");
525  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn6, "DLIn6");
526  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn7, "DLIn7");
527  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkIn8, "DLIn8");
528  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut1, "DLOut1");
529  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut1DS2, "DLOut1DS"); // , "DLOut1DS2");
530  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut2, "DLOut2");
531  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut2DS2, "DLOut2DS"); // , "DLOut2DS2");
532  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut3, "DLOut3");
533  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut3DS2, "DLOut3DS"); // , "DLOut3DS2");
534  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut4, "DLOut4");
535  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut4DS2, "DLOut4DS"); // , "DLOut4DS2");
536  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut5, "DLOut5");
537  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut5DS2, "DLOut5DS"); // , "DLOut5DS2");
538  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut6, "DLOut6");
539  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut6DS2, "DLOut6DS"); // , "DLOut6DS2");
540  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut7, "DLOut7");
541  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut7DS2, "DLOut7DS"); // , "DLOut7DS2");
542  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut8, "DLOut8");
543  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptDuallinkOut8DS2, "DLOut8DS"); // , "DLOut8DS2");
544  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer1_DS2RGB, "FB1RGBDS2"); // Formerly "FB1RGB425"
545  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer1_DS2YUV, "FB1YUVDS2"); // Formerly "FB1YUV425"
546  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer1RGB, "FB1RGB");
547  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer1YUV, "FB1"); // , "FB1YUV");
548  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer2_DS2RGB, "FB2RGBDS2"); // Formerly "FB2RGB425"
549  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer2_DS2YUV, "FB2YUVDS2"); // Formerly "FB2YUV425"
550  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer2RGB, "FB2RGB");
551  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer2YUV, "FB2"); // , "FB2YUV");
552  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer3_DS2RGB, "FB3RGBDS2"); // Formerly "FB3RGB425"
553  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer3_DS2YUV, "FB3YUVDS2"); // Formerly "FB3YUV425"
554  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer3RGB, "FB3RGB");
555  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer3YUV, "FB3"); // , "FB3YUV");
556  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer4_DS2RGB, "FB4RGBDS2"); // Formerly "FB4RGB425"
557  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer4_DS2YUV, "FB4YUVDS2"); // Formerly "FB4YUV425"
558  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer4RGB, "FB4RGB");
559  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer4YUV, "FB4"); // , "FB4YUV");
560  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer5_DS2RGB, "FB5RGBDS2"); // Formerly "FB5RGB425"
561  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer5_DS2YUV, "FB5YUVDS2"); // Formerly "FB5YUV425"
562  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer5RGB, "FB5RGB");
563  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer5YUV, "FB5"); // , "FB5YUV");
564  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer6_DS2RGB, "FB6RGBDS2"); // Formerly "FB6RGB425"
565  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer6_DS2YUV, "FB6YUVDS2"); // Formerly "FB6YUV425"
566  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer6RGB, "FB6RGB");
567  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer6YUV, "FB6"); // , "FB6YUV");
568  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer7_DS2RGB, "FB7RGBDS2"); // Formerly "FB7RGB425"
569  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer7_DS2YUV, "FB7YUVDS2"); // Formerly "FB7YUV425"
570  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer7RGB, "FB7RGB");
571  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer7YUV, "FB7"); // , "FB7YUV");
572  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer8_DS2RGB, "FB8RGBDS2"); // Formerly "FB8RGB425"
573  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer8_DS2YUV, "FB8YUVDS2"); // Formerly "FB8YUV425"
574  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer8RGB, "FB8RGB");
575  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameBuffer8YUV, "FB8"); // , "FB8YUV");
576  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT1Out, "LUT1"); // Formerly "LUT1RGB"
577  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT1YUV, "LUT1YUV");
578  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT2Out, "LUT2"); // Formerly "LUT2RGB"
579  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT3Out, "LUT3"); // Formerly "LUT3RGB"
580  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT4Out, "LUT4"); // Formerly "LUT4RGB"
581  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT5Out, "LUT5"); // Formerly "LUT5RGB"
582  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT6Out, "LUT6"); // Formerly "LUT6RGB"
583  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT7Out, "LUT7"); // Formerly "LUT7RGB"
584  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptLUT8Out, "LUT8"); // Formerly "LUT8RGB"
585  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer1KeyYUV, "Mixer1Key"); // , "Mixer1KeyYUV");
586  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer1VidYUV, "Mixer1"); // , "Mixer1Vid", "Mixer1VidYUV");
587  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer1VidRGB, "Mixer1RGB"); // , "Mixer1VidRGB", "Mixer1VidRGB");
588  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer2KeyYUV, "Mixer2Key"); // , "Mixer2KeyYUV");
589  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer2VidYUV, "Mixer2"); // , "Mixer2Vid", "Mixer2VidYUV");
590  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer3KeyYUV, "Mixer3Key"); // , "Mixer3KeyYUV");
591  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer3VidYUV, "Mixer3"); // , "Mixer3Vid", "Mixer3VidYUV");
592  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer4KeyYUV, "Mixer4Key"); // , "Mixer4KeyYUV");
593  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMixer4VidYUV, "Mixer4"); // , "Mixer4Vid", "Mixer4VidYUV");
594  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameSync1RGB, "FS1RGB");
595  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameSync1YUV, "FS1YUV");
596  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameSync2RGB, "FS2RGB");
597  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptFrameSync2YUV, "FS2YUV");
598  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptCompressionModule, "Comp"); // , "Compress");
599  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptConversionModule, "Conv"); // , "Convert");
600  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptBlack, "Black");
601  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptAlphaOut, "AlphaOut");
602  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptAnalogIn, "AnalogIn");
603  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn1, "SDIIn1");
604  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn1DS2, "SDIIn1DS2"); // , "SDIIn1DS2");
605  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn2, "SDIIn2");
606  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn2DS2, "SDIIn2DS2"); // , "SDIIn2DS2");
607  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn3, "SDIIn3");
608  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn3DS2, "SDIIn3DS2"); // , "SDIIn3DS2");
609  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn4, "SDIIn4");
610  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn4DS2, "SDIIn4DS2"); // , "SDIIn4DS2");
611  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn5, "SDIIn5");
612  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn5DS2, "SDIIn5DS2"); // , "SDIIn5DS2");
613  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn6, "SDIIn6");
614  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn6DS2, "SDIIn6DS2"); // , "SDIIn6DS2");
615  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn7, "SDIIn7");
616  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn7DS2, "SDIIn7DS2"); // , "SDIIn7DS2");
617  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn8, "SDIIn8");
618  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptSDIIn8DS2, "SDIIn8DS2"); // , "SDIIn8DS2");
619  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1, "HDMIIn1");
620  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1Q2, "HDMIIn1Q2");
621  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1Q2RGB, "HDMIIn1Q2RGB");
622  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1Q3, "HDMIIn1Q3");
623  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1Q3RGB, "HDMIIn1Q3RGB");
624  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1Q4, "HDMIIn1Q4");
625  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1Q4RGB, "HDMIIn1Q4RGB");
626  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn1RGB, "HDMIIn1RGB");
627  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2, "HDMIIn2");
628  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2Q2, "HDMIIn2Q2");
629  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2Q2RGB, "HDMIIn2Q2RGB");
630  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2Q3, "HDMIIn2Q3");
631  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2Q3RGB, "HDMIIn2Q3RGB");
632  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2Q4, "HDMIIn2Q4");
633  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2Q4RGB, "HDMIIn2Q4RGB");
634  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn2RGB, "HDMIIn2RGB");
635  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn3, "HDMIIn3");
636  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn3RGB, "HDMIIn3RGB");
637  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn4, "HDMIIn4");
638  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptHDMIIn4RGB, "HDMIIn4RGB");
639  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut1DS1, "MLOut1DS1");
640  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut1DS2, "MLOut1DS2");
641  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut1DS3, "MLOut1DS3");
642  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut1DS4, "MLOut1DS4");
643  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut2DS1, "MLOut2DS1");
644  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut2DS2, "MLOut2DS2");
645  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut2DS3, "MLOut2DS3");
646  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptMultiLinkOut2DS4, "MLOut2DS4");
647  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt3DLUT1RGB, "3DLUT1RGB");
648  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_Xpt3DLUT1YUV, "3DLUT1YUV");
649  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptOEOutRGB, "OEOutRGB");
650  NTV2SR_ASSIGN_BOTH(gOutputXpt2String, gString2OutputXpt, NTV2_XptOEOutYUV, "OEOutYUV");
651 
652  // gString2OutputXpt
653  for (OutputXpt2StringConstIter iter (gOutputXpt2String.begin ()); iter != gOutputXpt2String.end (); ++iter)
654  {
655  std::string lowerStr(iter->second); aja::lower(lowerStr);
656  gString2OutputXpt [lowerStr] = iter->first;
657  }
658  // Aliases:
659  gString2OutputXpt ["4kdcyuv"] = NTV2_Xpt4KDownConverterOut;
660  gString2OutputXpt ["csc1keyyuv"] = NTV2_XptCSC1KeyYUV;
661  gString2OutputXpt ["csc1vidrgb"] = NTV2_XptCSC1VidRGB;
662  gString2OutputXpt ["csc1yuv"] = NTV2_XptCSC1VidYUV;
663  gString2OutputXpt ["csc1vidyuv"] = NTV2_XptCSC1VidYUV;
664  gString2OutputXpt ["csc2keyyuv"] = NTV2_XptCSC2KeyYUV;
665  gString2OutputXpt ["csc2vidrgb"] = NTV2_XptCSC2VidRGB;
666  gString2OutputXpt ["csc2yuv"] = NTV2_XptCSC2VidYUV;
667  gString2OutputXpt ["csc2vidyuv"] = NTV2_XptCSC2VidYUV;
668  gString2OutputXpt ["csc3keyyuv"] = NTV2_XptCSC3KeyYUV;
669  gString2OutputXpt ["csc3vidrgb"] = NTV2_XptCSC3VidRGB;
670  gString2OutputXpt ["csc3yuv"] = NTV2_XptCSC3VidYUV;
671  gString2OutputXpt ["csc3vidyuv"] = NTV2_XptCSC3VidYUV;
672  gString2OutputXpt ["csc4keyyuv"] = NTV2_XptCSC4KeyYUV;
673  gString2OutputXpt ["csc4vidrgb"] = NTV2_XptCSC4VidRGB;
674  gString2OutputXpt ["csc4yuv"] = NTV2_XptCSC4VidYUV;
675  gString2OutputXpt ["csc4vidyuv"] = NTV2_XptCSC4VidYUV;
676  gString2OutputXpt ["csc5keyyuv"] = NTV2_XptCSC5KeyYUV;
677  gString2OutputXpt ["csc5vidrgb"] = NTV2_XptCSC5VidRGB;
678  gString2OutputXpt ["csc5yuv"] = NTV2_XptCSC5VidYUV;
679  gString2OutputXpt ["csc5vidyuv"] = NTV2_XptCSC5VidYUV;
680  gString2OutputXpt ["csc6keyyuv"] = NTV2_XptCSC6KeyYUV;
681  gString2OutputXpt ["csc6vidrgb"] = NTV2_XptCSC6VidRGB;
682  gString2OutputXpt ["csc6yuv"] = NTV2_XptCSC6VidYUV;
683  gString2OutputXpt ["csc6vidyuv"] = NTV2_XptCSC6VidYUV;
684  gString2OutputXpt ["csc7keyyuv"] = NTV2_XptCSC7KeyYUV;
685  gString2OutputXpt ["csc7vidrgb"] = NTV2_XptCSC7VidRGB;
686  gString2OutputXpt ["csc7yuv"] = NTV2_XptCSC7VidYUV;
687  gString2OutputXpt ["csc7vidyuv"] = NTV2_XptCSC7VidYUV;
688  gString2OutputXpt ["csc8keyyuv"] = NTV2_XptCSC8KeyYUV;
689  gString2OutputXpt ["csc8vidrgb"] = NTV2_XptCSC8VidRGB;
690  gString2OutputXpt ["csc8yuv"] = NTV2_XptCSC8VidYUV;
691  gString2OutputXpt ["csc8VidYUV"] = NTV2_XptCSC8VidYUV;
692  gString2OutputXpt ["dlout1ds2"] = NTV2_XptDuallinkOut1DS2;
693  gString2OutputXpt ["dlout2ds2"] = NTV2_XptDuallinkOut2DS2;
694  gString2OutputXpt ["dlout3ds2"] = NTV2_XptDuallinkOut3DS2;
695  gString2OutputXpt ["dlout4ds2"] = NTV2_XptDuallinkOut4DS2;
696  gString2OutputXpt ["dlout5ds2"] = NTV2_XptDuallinkOut5DS2;
697  gString2OutputXpt ["dlout6ds2"] = NTV2_XptDuallinkOut6DS2;
698  gString2OutputXpt ["dlout7ds2"] = NTV2_XptDuallinkOut7DS2;
699  gString2OutputXpt ["dlout8ds2"] = NTV2_XptDuallinkOut8DS2;
700  gString2OutputXpt ["fb1yuv"] = NTV2_XptFrameBuffer1YUV;
701  gString2OutputXpt ["fb2yuv"] = NTV2_XptFrameBuffer2YUV;
702  gString2OutputXpt ["fb3yuv"] = NTV2_XptFrameBuffer3YUV;
703  gString2OutputXpt ["fb4yuv"] = NTV2_XptFrameBuffer4YUV;
704  gString2OutputXpt ["fb5yuv"] = NTV2_XptFrameBuffer5YUV;
705  gString2OutputXpt ["fb6yuv"] = NTV2_XptFrameBuffer6YUV;
706  gString2OutputXpt ["fb7yuv"] = NTV2_XptFrameBuffer7YUV;
707  gString2OutputXpt ["fb8yuv"] = NTV2_XptFrameBuffer8YUV;
708  gString2OutputXpt ["mixer1keyyuv"] = NTV2_XptMixer1KeyYUV;
709  gString2OutputXpt ["mixer1vid"] = NTV2_XptMixer1VidYUV;
710  gString2OutputXpt ["mixer1vidyuv"] = NTV2_XptMixer1VidYUV;
711  gString2OutputXpt ["mixer1vidrgb"] = NTV2_XptMixer1VidRGB;
712  gString2OutputXpt ["mixer2keyyuv"] = NTV2_XptMixer2KeyYUV;
713  gString2OutputXpt ["mixer2vid"] = NTV2_XptMixer2VidYUV;
714  gString2OutputXpt ["mixer2vidyuv"] = NTV2_XptMixer2VidYUV;
715  gString2OutputXpt ["mixer3keyyuv"] = NTV2_XptMixer3KeyYUV;
716  gString2OutputXpt ["mixer3vid"] = NTV2_XptMixer3VidYUV;
717  gString2OutputXpt ["mixer3vidyuv"] = NTV2_XptMixer3VidYUV;
718  gString2OutputXpt ["mixer4keyyuv"] = NTV2_XptMixer4KeyYUV;
719  gString2OutputXpt ["mixer4vid"] = NTV2_XptMixer4VidYUV;
720  gString2OutputXpt ["mixer4vidyuv"] = NTV2_XptMixer4VidYUV;
721  gString2OutputXpt ["compress"] = NTV2_XptCompressionModule;
722  gString2OutputXpt ["convert"] = NTV2_XptConversionModule;
723  gString2OutputXpt ["sdiin1ds2"] = NTV2_XptSDIIn1DS2;
724  gString2OutputXpt ["sdiin2ds2"] = NTV2_XptSDIIn2DS2;
725  gString2OutputXpt ["sdiin3ds2"] = NTV2_XptSDIIn3DS2;
726  gString2OutputXpt ["sdiin4ds2"] = NTV2_XptSDIIn4DS2;
727  gString2OutputXpt ["sdiin5ds2"] = NTV2_XptSDIIn5DS2;
728  gString2OutputXpt ["sdiin6ds2"] = NTV2_XptSDIIn6DS2;
729  gString2OutputXpt ["sdiin7ds2"] = NTV2_XptSDIIn7DS2;
730  gString2OutputXpt ["sdiin8ds2"] = NTV2_XptSDIIn8DS2;
731 }
732 
733 void RoutingExpert::InitInputXpt2WidgetIDs(void)
734 {
735  // gInputXpt2WidgetIDs
736  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux1AInput, NTV2_Wgt425Mux1));
737  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux1BInput, NTV2_Wgt425Mux1));
738  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux2AInput, NTV2_Wgt425Mux2));
739  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux2BInput, NTV2_Wgt425Mux2));
740  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux3AInput, NTV2_Wgt425Mux3));
741  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux3BInput, NTV2_Wgt425Mux3));
742  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux4AInput, NTV2_Wgt425Mux4));
743  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt425Mux4BInput, NTV2_Wgt425Mux4));
744  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt4KDCQ1Input, NTV2_Wgt4KDownConverter));
745  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt4KDCQ2Input, NTV2_Wgt4KDownConverter));
746  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt4KDCQ3Input, NTV2_Wgt4KDownConverter));
747  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt4KDCQ4Input, NTV2_Wgt4KDownConverter));
748  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC1KeyInput, NTV2_WgtCSC1));
749  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC1VidInput, NTV2_WgtCSC1));
750  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC2KeyInput, NTV2_WgtCSC2));
751  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC2VidInput, NTV2_WgtCSC2));
752  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC3KeyInput, NTV2_WgtCSC3));
753  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC3VidInput, NTV2_WgtCSC3));
754  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC4KeyInput, NTV2_WgtCSC4));
755  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC4VidInput, NTV2_WgtCSC4));
756  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC5KeyInput, NTV2_WgtCSC5));
757  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC5VidInput, NTV2_WgtCSC5));
758  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC6KeyInput, NTV2_WgtCSC6));
759  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC6VidInput, NTV2_WgtCSC6));
760  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC7KeyInput, NTV2_WgtCSC7));
761  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC7VidInput, NTV2_WgtCSC7));
762  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC8KeyInput, NTV2_WgtCSC8));
763  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptCSC8VidInput, NTV2_WgtCSC8));
804  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT1Input, NTV2_WgtLUT1));
805  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT2Input, NTV2_WgtLUT2));
806  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT3Input, NTV2_WgtLUT3));
807  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT4Input, NTV2_WgtLUT4));
808  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT5Input, NTV2_WgtLUT5));
809  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT6Input, NTV2_WgtLUT6));
810  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT7Input, NTV2_WgtLUT7));
811  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptLUT8Input, NTV2_WgtLUT8));
812  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer1BGKeyInput, NTV2_WgtMixer1));
813  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer1BGVidInput, NTV2_WgtMixer1));
814  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer1FGKeyInput, NTV2_WgtMixer1));
815  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer1FGVidInput, NTV2_WgtMixer1));
816  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer2BGKeyInput, NTV2_WgtMixer2));
817  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer2BGVidInput, NTV2_WgtMixer2));
818  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer2FGKeyInput, NTV2_WgtMixer2));
819  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer2FGVidInput, NTV2_WgtMixer2));
820  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer3BGKeyInput, NTV2_WgtMixer3));
821  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer3BGVidInput, NTV2_WgtMixer3));
822  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer3FGKeyInput, NTV2_WgtMixer3));
823  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer3FGVidInput, NTV2_WgtMixer3));
824  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer4BGKeyInput, NTV2_WgtMixer4));
825  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer4BGVidInput, NTV2_WgtMixer4));
826  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer4FGKeyInput, NTV2_WgtMixer4));
827  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptMixer4FGVidInput, NTV2_WgtMixer4));
832  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptFrameSync1Input, NTV2_WgtFrameSync1));
833  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptFrameSync2Input, NTV2_WgtFrameSync2));
836  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptAnalogOutInput, NTV2_WgtAnalogOut1));
838  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut1Input, NTV2_WgtSDIOut1));
839  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut1Input, NTV2_Wgt3GSDIOut1));
840  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut1InputDS2, NTV2_Wgt3GSDIOut1));
841  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut1Input, NTV2_Wgt12GSDIOut1));
842  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut1InputDS2, NTV2_Wgt12GSDIOut1));
843  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut2Input, NTV2_WgtSDIOut2));
844  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut2Input, NTV2_Wgt3GSDIOut2));
845  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut2InputDS2, NTV2_Wgt3GSDIOut2));
846  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut2Input, NTV2_Wgt12GSDIOut2));
847  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut2InputDS2, NTV2_Wgt12GSDIOut2));
848  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut3Input, NTV2_WgtSDIOut3));
849  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut3Input, NTV2_Wgt3GSDIOut3));
850  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut3InputDS2, NTV2_Wgt3GSDIOut3));
851  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut3Input, NTV2_Wgt12GSDIOut3));
852  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut3InputDS2, NTV2_Wgt12GSDIOut3));
853  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut4Input, NTV2_WgtSDIOut4));
854  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut4Input, NTV2_Wgt3GSDIOut4));
855  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut4InputDS2, NTV2_Wgt3GSDIOut4));
856  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut4Input, NTV2_Wgt12GSDIOut4));
857  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut4InputDS2, NTV2_Wgt12GSDIOut4));
858  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut5Input, NTV2_Wgt3GSDIOut5));
859  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut5Input, NTV2_WgtSDIMonOut1));
860  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut5InputDS2, NTV2_WgtSDIMonOut1));
861  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut5InputDS2, NTV2_Wgt3GSDIOut5));
862  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut5Input, NTV2_Wgt12GSDIOut5));
863  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut5InputDS2, NTV2_Wgt12GSDIOut5));
864  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut6Input, NTV2_Wgt3GSDIOut6));
865  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut6InputDS2, NTV2_Wgt3GSDIOut6));
866  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut6Input, NTV2_Wgt12GSDIOut6));
867  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut6InputDS2, NTV2_Wgt12GSDIOut6));
868  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut7Input, NTV2_Wgt3GSDIOut7));
869  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut7InputDS2, NTV2_Wgt3GSDIOut7));
870  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut7Input, NTV2_Wgt12GSDIOut7));
871  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut7InputDS2, NTV2_Wgt12GSDIOut7));
872  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut8Input, NTV2_Wgt3GSDIOut8));
873  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut8InputDS2, NTV2_Wgt3GSDIOut8));
874  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut8Input, NTV2_Wgt12GSDIOut8));
875  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptSDIOut8InputDS2, NTV2_Wgt12GSDIOut8));
876  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutInput, NTV2_WgtHDMIOut1));
877  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutInput, NTV2_WgtHDMIOut1v2));
878  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ1Input, NTV2_WgtHDMIOut1v2));
879  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ2Input, NTV2_WgtHDMIOut1v2));
880  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ3Input, NTV2_WgtHDMIOut1v2));
881  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ4Input, NTV2_WgtHDMIOut1v2));
882  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutInput, NTV2_WgtHDMIOut1v3));
883  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ1Input, NTV2_WgtHDMIOut1v3));
884  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ2Input, NTV2_WgtHDMIOut1v3));
885  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ3Input, NTV2_WgtHDMIOut1v3));
886  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ4Input, NTV2_WgtHDMIOut1v3));
887  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutInput, NTV2_WgtHDMIOut1v4));
888  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ1Input, NTV2_WgtHDMIOut1v4));
889  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ2Input, NTV2_WgtHDMIOut1v4));
890  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ3Input, NTV2_WgtHDMIOut1v4));
891  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ4Input, NTV2_WgtHDMIOut1v4));
892  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutInput, NTV2_WgtHDMIOut1v5));
893  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutInput, NTV2_WgtHDMIOut1v6));
894 // gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ1Input, NTV2_WgtHDMIOut1v6));
895  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ2Input, NTV2_WgtHDMIOut2v6));
896  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ3Input, NTV2_WgtHDMIOut3v6));
897  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptHDMIOutQ4Input, NTV2_WgtHDMIOut4v6));
898  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_Xpt3DLUT1Input, NTV2_Wgt3DLUT1));
903  gInputXpt2WidgetIDs.insert (InputXpt2WidgetIDPair (NTV2_XptOEInput, NTV2_WgtOE1));
904 
905  // gWidget2InputXpts
906  for (InputXpt2WidgetIDsConstIter iter (gInputXpt2WidgetIDs.begin ()); iter != gInputXpt2WidgetIDs.end (); ++iter)
907  gWidget2InputXpts.insert (Widget2InputXptPair (iter->second, iter->first));
908 
909  // gRGBOnlyInputXpts
910  gRGBOnlyInputXpts.insert (NTV2_XptLUT1Input);
911  gRGBOnlyInputXpts.insert (NTV2_XptLUT2Input);
912  gRGBOnlyInputXpts.insert (NTV2_XptLUT3Input);
913  gRGBOnlyInputXpts.insert (NTV2_XptLUT4Input);
914  gRGBOnlyInputXpts.insert (NTV2_XptLUT5Input);
915  gRGBOnlyInputXpts.insert (NTV2_XptLUT6Input);
916  gRGBOnlyInputXpts.insert (NTV2_XptLUT7Input);
917  gRGBOnlyInputXpts.insert (NTV2_XptLUT8Input);
918  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut1Input);
919  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut2Input);
920  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut3Input);
921  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut4Input);
922  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut5Input);
923  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut6Input);
924  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut7Input);
925  gRGBOnlyInputXpts.insert (NTV2_XptDualLinkOut8Input);
926 
927  // gYUVOnlyInputXpts
928  gYUVOnlyInputXpts.insert (NTV2_XptMixer1BGKeyInput);
929  gYUVOnlyInputXpts.insert (NTV2_XptMixer1BGVidInput);
930  gYUVOnlyInputXpts.insert (NTV2_XptMixer1FGKeyInput);
931  gYUVOnlyInputXpts.insert (NTV2_XptMixer1FGVidInput);
932  gYUVOnlyInputXpts.insert (NTV2_XptMixer2BGKeyInput);
933  gYUVOnlyInputXpts.insert (NTV2_XptMixer2BGVidInput);
934  gYUVOnlyInputXpts.insert (NTV2_XptMixer2FGKeyInput);
935  gYUVOnlyInputXpts.insert (NTV2_XptMixer2FGVidInput);
936  gYUVOnlyInputXpts.insert (NTV2_XptMixer3BGKeyInput);
937  gYUVOnlyInputXpts.insert (NTV2_XptMixer3BGVidInput);
938  gYUVOnlyInputXpts.insert (NTV2_XptMixer3FGKeyInput);
939  gYUVOnlyInputXpts.insert (NTV2_XptMixer3FGVidInput);
940  gYUVOnlyInputXpts.insert (NTV2_XptMixer4BGKeyInput);
941  gYUVOnlyInputXpts.insert (NTV2_XptMixer4BGVidInput);
942  gYUVOnlyInputXpts.insert (NTV2_XptMixer4FGKeyInput);
943  gYUVOnlyInputXpts.insert (NTV2_XptMixer4FGVidInput);
944  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn1Input);
945  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn1DSInput);
946  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn2Input);
947  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn2DSInput);
948  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn3Input);
949  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn3DSInput);
950  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn4Input);
951  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn4DSInput);
952  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn5Input);
953  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn5DSInput);
954  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn6Input);
955  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn6DSInput);
956  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn7Input);
957  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn7DSInput);
958  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn8Input);
959  gYUVOnlyInputXpts.insert (NTV2_XptDualLinkIn8DSInput);
960  gYUVOnlyInputXpts.insert (NTV2_XptConversionModInput);
961  gYUVOnlyInputXpts.insert (NTV2_XptAnalogOutInput);
962  gYUVOnlyInputXpts.insert (NTV2_XptAnalogOutCompositeOut);
963 
964  gKeyInputXpts.insert (NTV2_XptCSC1KeyInput);
965  gKeyInputXpts.insert (NTV2_XptCSC2KeyInput);
966  gKeyInputXpts.insert (NTV2_XptCSC3KeyInput);
967  gKeyInputXpts.insert (NTV2_XptCSC4KeyInput);
968  gKeyInputXpts.insert (NTV2_XptCSC5KeyInput);
969  gKeyInputXpts.insert (NTV2_XptCSC6KeyInput);
970  gKeyInputXpts.insert (NTV2_XptCSC7KeyInput);
971  gKeyInputXpts.insert (NTV2_XptCSC8KeyInput);
972  gKeyInputXpts.insert (NTV2_XptMixer1BGKeyInput);
973  gKeyInputXpts.insert (NTV2_XptMixer1FGKeyInput);
974  gKeyInputXpts.insert (NTV2_XptMixer2BGKeyInput);
975  gKeyInputXpts.insert (NTV2_XptMixer2FGKeyInput);
976  gKeyInputXpts.insert (NTV2_XptMixer3BGKeyInput);
977  gKeyInputXpts.insert (NTV2_XptMixer3FGKeyInput);
978  gKeyInputXpts.insert (NTV2_XptMixer4BGKeyInput);
979  gKeyInputXpts.insert (NTV2_XptMixer4FGKeyInput);
980  gKeyInputXpts.insert (NTV2_XptCSC1KeyFromInput2);
981 
982 }
983 
984 void RoutingExpert::InitOutputXpt2WidgetIDs(void)
985 {
986  // gOutputXpt2WidgetIDs
987  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptAnalogIn, NTV2_WgtAnalogIn1));
988  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptTestPatternYUV, NTV2_WgtTestPattern1));
990  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn1, NTV2_WgtSDIIn1));
991  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn1, NTV2_Wgt3GSDIIn1));
992  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn1DS2, NTV2_Wgt3GSDIIn1));
993  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn1, NTV2_Wgt12GSDIIn1));
994  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn1DS2, NTV2_Wgt12GSDIIn1));
995  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn2, NTV2_WgtSDIIn2));
996  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn2, NTV2_Wgt3GSDIIn2));
997  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn2DS2, NTV2_Wgt3GSDIIn2));
998  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn2, NTV2_Wgt12GSDIIn2));
999  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn2DS2, NTV2_Wgt12GSDIIn2));
1000  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn3, NTV2_Wgt3GSDIIn3));
1001  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn3DS2, NTV2_Wgt3GSDIIn3));
1002  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn3, NTV2_Wgt12GSDIIn3));
1003  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn3DS2, NTV2_Wgt12GSDIIn3));
1004  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn4, NTV2_Wgt3GSDIIn4));
1005  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn4DS2, NTV2_Wgt3GSDIIn4));
1006  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn4, NTV2_Wgt12GSDIIn4));
1007  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn4DS2, NTV2_Wgt12GSDIIn4));
1008  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn5, NTV2_Wgt3GSDIIn5));
1009  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn5DS2, NTV2_Wgt3GSDIIn5));
1010  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn5, NTV2_Wgt12GSDIIn5));
1011  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn5DS2, NTV2_Wgt12GSDIIn5));
1012  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn6, NTV2_Wgt3GSDIIn6));
1013  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn6DS2, NTV2_Wgt3GSDIIn6));
1014  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn6, NTV2_Wgt12GSDIIn6));
1015  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn6DS2, NTV2_Wgt12GSDIIn6));
1016  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn7, NTV2_Wgt3GSDIIn7));
1017  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn7DS2, NTV2_Wgt3GSDIIn7));
1018  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn7, NTV2_Wgt12GSDIIn7));
1019  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn7DS2, NTV2_Wgt12GSDIIn7));
1020  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn8, NTV2_Wgt3GSDIIn8));
1021  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn8DS2, NTV2_Wgt3GSDIIn8));
1022  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn8, NTV2_Wgt12GSDIIn8));
1023  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptSDIIn8DS2, NTV2_Wgt12GSDIIn8));
1024  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1, NTV2_WgtHDMIIn1));
1025  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1, NTV2_WgtHDMIIn1v2));
1026  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1, NTV2_WgtHDMIIn1v3));
1027  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q2, NTV2_WgtHDMIIn1v3));
1028  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q2RGB, NTV2_WgtHDMIIn1v3));
1029  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q3, NTV2_WgtHDMIIn1v3));
1030  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q3RGB, NTV2_WgtHDMIIn1v3));
1031  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q4, NTV2_WgtHDMIIn1v3));
1032  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q4RGB, NTV2_WgtHDMIIn1v3));
1033  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1RGB, NTV2_WgtHDMIIn1v3));
1034  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1, NTV2_WgtHDMIIn1v4));
1035  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q2, NTV2_WgtHDMIIn1v4));
1036  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q2RGB, NTV2_WgtHDMIIn1v4));
1037  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q3, NTV2_WgtHDMIIn1v4));
1038  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q3RGB, NTV2_WgtHDMIIn1v4));
1039  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q4, NTV2_WgtHDMIIn1v4));
1040  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1Q4RGB, NTV2_WgtHDMIIn1v4));
1041  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1RGB, NTV2_WgtHDMIIn1v4));
1042  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2, NTV2_WgtHDMIIn2v4));
1043  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2Q2, NTV2_WgtHDMIIn2v4));
1044  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2Q2RGB, NTV2_WgtHDMIIn2v4));
1045  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2Q3, NTV2_WgtHDMIIn2v4));
1046  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2Q3RGB, NTV2_WgtHDMIIn2v4));
1047  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2Q4, NTV2_WgtHDMIIn2v4));
1048  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2Q4RGB, NTV2_WgtHDMIIn2v4));
1049  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn2RGB, NTV2_WgtHDMIIn2v4));
1050  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn3, NTV2_WgtHDMIIn3v4));
1051  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn3RGB, NTV2_WgtHDMIIn3v4));
1052  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn4, NTV2_WgtHDMIIn4v4));
1053  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn4RGB, NTV2_WgtHDMIIn4v4));
1054  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1, NTV2_WgtHDMIIn1v5));
1055  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptHDMIIn1RGB, NTV2_WgtHDMIIn1v5));
1056  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux1ARGB, NTV2_Wgt425Mux1));
1057  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux1AYUV, NTV2_Wgt425Mux1));
1058  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux1BRGB, NTV2_Wgt425Mux1));
1059  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux1BYUV, NTV2_Wgt425Mux1));
1060  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux2ARGB, NTV2_Wgt425Mux2));
1061  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux2AYUV, NTV2_Wgt425Mux2));
1062  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux2BRGB, NTV2_Wgt425Mux2));
1063  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux2BYUV, NTV2_Wgt425Mux2));
1064  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux3ARGB, NTV2_Wgt425Mux3));
1065  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux3AYUV, NTV2_Wgt425Mux3));
1066  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux3BRGB, NTV2_Wgt425Mux3));
1067  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux3BYUV, NTV2_Wgt425Mux3));
1068  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux4ARGB, NTV2_Wgt425Mux4));
1069  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux4AYUV, NTV2_Wgt425Mux4));
1070  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux4BRGB, NTV2_Wgt425Mux4));
1071  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt425Mux4BYUV, NTV2_Wgt425Mux4));
1074  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC1KeyYUV, NTV2_WgtCSC1));
1075  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC1VidRGB, NTV2_WgtCSC1));
1076  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC1VidYUV, NTV2_WgtCSC1));
1077  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC2KeyYUV, NTV2_WgtCSC2));
1078  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC2VidRGB, NTV2_WgtCSC2));
1079  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC2VidYUV, NTV2_WgtCSC2));
1080  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC3KeyYUV, NTV2_WgtCSC3));
1081  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC3VidRGB, NTV2_WgtCSC3));
1082  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC3VidYUV, NTV2_WgtCSC3));
1083  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC4KeyYUV, NTV2_WgtCSC4));
1084  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC4VidRGB, NTV2_WgtCSC4));
1085  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC4VidYUV, NTV2_WgtCSC4));
1086  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC5KeyYUV, NTV2_WgtCSC5));
1087  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC5VidRGB, NTV2_WgtCSC5));
1088  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC5VidYUV, NTV2_WgtCSC5));
1089  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC6KeyYUV, NTV2_WgtCSC6));
1090  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC6VidRGB, NTV2_WgtCSC6));
1091  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC6VidYUV, NTV2_WgtCSC6));
1092  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC7KeyYUV, NTV2_WgtCSC7));
1093  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC7VidRGB, NTV2_WgtCSC7));
1094  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC7VidYUV, NTV2_WgtCSC7));
1095  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC8KeyYUV, NTV2_WgtCSC8));
1096  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC8VidRGB, NTV2_WgtCSC8));
1097  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptCSC8VidYUV, NTV2_WgtCSC8));
1098  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn1, NTV2_WgtDualLinkV2In1));
1099  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn2, NTV2_WgtDualLinkV2In2));
1100  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn3, NTV2_WgtDualLinkV2In3));
1101  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn4, NTV2_WgtDualLinkV2In4));
1102  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn5, NTV2_WgtDualLinkV2In5));
1103  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn6, NTV2_WgtDualLinkV2In6));
1104  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn7, NTV2_WgtDualLinkV2In7));
1105  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkIn8, NTV2_WgtDualLinkV2In8));
1106  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut1, NTV2_WgtDualLinkV2Out1));
1108  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut2, NTV2_WgtDualLinkV2Out2));
1110  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut3, NTV2_WgtDualLinkV2Out3));
1112  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut4, NTV2_WgtDualLinkV2Out4));
1114  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut5, NTV2_WgtDualLinkV2Out5));
1116  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut6, NTV2_WgtDualLinkV2Out6));
1118  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut7, NTV2_WgtDualLinkV2Out7));
1120  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptDuallinkOut8, NTV2_WgtDualLinkV2Out8));
1124  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer1RGB, NTV2_WgtFrameBuffer1));
1125  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer1YUV, NTV2_WgtFrameBuffer1));
1128  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer2RGB, NTV2_WgtFrameBuffer2));
1129  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer2YUV, NTV2_WgtFrameBuffer2));
1132  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer3RGB, NTV2_WgtFrameBuffer3));
1133  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer3YUV, NTV2_WgtFrameBuffer3));
1136  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer4RGB, NTV2_WgtFrameBuffer4));
1137  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer4YUV, NTV2_WgtFrameBuffer4));
1140  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer5RGB, NTV2_WgtFrameBuffer5));
1141  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer5YUV, NTV2_WgtFrameBuffer5));
1144  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer6RGB, NTV2_WgtFrameBuffer6));
1145  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer6YUV, NTV2_WgtFrameBuffer6));
1148  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer7RGB, NTV2_WgtFrameBuffer7));
1149  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer7YUV, NTV2_WgtFrameBuffer7));
1152  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer8RGB, NTV2_WgtFrameBuffer8));
1153  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameBuffer8YUV, NTV2_WgtFrameBuffer8));
1154  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT1Out, NTV2_WgtLUT1));
1155  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT2Out, NTV2_WgtLUT2));
1156  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT3Out, NTV2_WgtLUT3));
1157  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT4Out, NTV2_WgtLUT4));
1158  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT5Out, NTV2_WgtLUT5));
1159  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT6Out, NTV2_WgtLUT6));
1160  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT7Out, NTV2_WgtLUT7));
1161  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptLUT8Out, NTV2_WgtLUT8));
1162  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer1KeyYUV, NTV2_WgtMixer1));
1163  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer1VidYUV, NTV2_WgtMixer1));
1164  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer1VidRGB, NTV2_WgtMixer1));
1165  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer2KeyYUV, NTV2_WgtMixer2));
1166  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer2VidYUV, NTV2_WgtMixer2));
1167  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer3KeyYUV, NTV2_WgtMixer3));
1168  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer3VidYUV, NTV2_WgtMixer3));
1169  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer4KeyYUV, NTV2_WgtMixer4));
1170  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptMixer4VidYUV, NTV2_WgtMixer4));
1171  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptIICTRGB, NTV2_WgtIICT1));
1172  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptIICT2RGB, NTV2_WgtIICT2));
1174  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameSync1RGB, NTV2_WgtFrameSync1));
1175  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameSync1YUV, NTV2_WgtFrameSync1));
1176  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameSync2RGB, NTV2_WgtFrameSync2));
1177  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptFrameSync2YUV, NTV2_WgtFrameSync2));
1187  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt3DLUT1YUV, NTV2_Wgt3DLUT1));
1188  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_Xpt3DLUT1RGB, NTV2_Wgt3DLUT1));
1189  gOutputXpt2WidgetIDs.insert (OutputXpt2WidgetIDPair (NTV2_XptOEOutRGB, NTV2_WgtOE1));
1190 
1191  // gWidget2OutputXpts
1192  for (OutputXpt2WidgetIDsConstIter iter (gOutputXpt2WidgetIDs.begin ()); iter != gOutputXpt2WidgetIDs.end (); ++iter)
1193  gWidget2OutputXpts.insert (Widget2OutputXptPair (iter->second, iter->first));
1194 }
1195 
1196 void RoutingExpert::InitWidgetIDToChannels(void)
1197 {
1198  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer1, NTV2_CHANNEL1));
1199  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer2, NTV2_CHANNEL2));
1200  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer3, NTV2_CHANNEL3));
1201  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer4, NTV2_CHANNEL4));
1202  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC1, NTV2_CHANNEL1));
1203  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC2, NTV2_CHANNEL2));
1204  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT1, NTV2_CHANNEL1));
1205  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT2, NTV2_CHANNEL2));
1206  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameSync1, NTV2_CHANNEL1));
1207  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameSync2, NTV2_CHANNEL2));
1208  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtSDIIn1, NTV2_CHANNEL1));
1209  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtSDIIn2, NTV2_CHANNEL2));
1210  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn1, NTV2_CHANNEL1));
1211  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn2, NTV2_CHANNEL2));
1212  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn3, NTV2_CHANNEL3));
1213  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn4, NTV2_CHANNEL4));
1214  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtSDIOut1, NTV2_CHANNEL1));
1215  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtSDIOut2, NTV2_CHANNEL2));
1216  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtSDIOut3, NTV2_CHANNEL3));
1217  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtSDIOut4, NTV2_CHANNEL4));
1218  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut1, NTV2_CHANNEL1));
1219  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut2, NTV2_CHANNEL2));
1220  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut3, NTV2_CHANNEL3));
1221  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut4, NTV2_CHANNEL4));
1222  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkIn1, NTV2_CHANNEL1));
1223  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In1, NTV2_CHANNEL1));
1224  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In2, NTV2_CHANNEL2));
1225  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkOut1, NTV2_CHANNEL1));
1226  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkOut2, NTV2_CHANNEL2));
1227  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out1, NTV2_CHANNEL1));
1228  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out2, NTV2_CHANNEL2));
1229  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtAnalogIn1, NTV2_CHANNEL1));
1230  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtAnalogOut1, NTV2_CHANNEL1));
1232  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn1, NTV2_CHANNEL1));
1233  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1, NTV2_CHANNEL1));
1234  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtUpDownConverter1, NTV2_CHANNEL1));
1235  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtUpDownConverter2, NTV2_CHANNEL1));
1236  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtMixer1, NTV2_CHANNEL1));
1237  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCompression1, NTV2_CHANNEL1));
1238  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtProcAmp1, NTV2_CHANNEL1));
1239  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtWaterMarker1, NTV2_CHANNEL1));
1240  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtWaterMarker2, NTV2_CHANNEL2));
1241  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtIICT1, NTV2_CHANNEL1));
1242  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtIICT2, NTV2_CHANNEL2));
1243  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtTestPattern1, NTV2_CHANNEL1));
1244  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtGenLock, NTV2_CHANNEL1));
1245  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDCIMixer1, NTV2_CHANNEL1));
1246  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtMixer2, NTV2_CHANNEL2));
1247  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtStereoCompressor, NTV2_CHANNEL1));
1248  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT3, NTV2_CHANNEL3));
1249  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT4, NTV2_CHANNEL4));
1250  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In3, NTV2_CHANNEL3));
1251  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In4, NTV2_CHANNEL4));
1252  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out3, NTV2_CHANNEL3));
1253  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out4, NTV2_CHANNEL4));
1254  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC3, NTV2_CHANNEL3));
1255  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC4, NTV2_CHANNEL4));
1256  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn1v2, NTV2_CHANNEL1));
1257  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v2, NTV2_CHANNEL1));
1258  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtSDIMonOut1, NTV2_CHANNEL5));
1259  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC5, NTV2_CHANNEL5));
1260  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT5, NTV2_CHANNEL5));
1261  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out5, NTV2_CHANNEL5));
1262  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt4KDownConverter, NTV2_CHANNEL1));
1263  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn5, NTV2_CHANNEL5));
1264  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn6, NTV2_CHANNEL6));
1265  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn7, NTV2_CHANNEL7));
1266  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIIn8, NTV2_CHANNEL8));
1267  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut5, NTV2_CHANNEL5));
1268  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut6, NTV2_CHANNEL6));
1269  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut7, NTV2_CHANNEL7));
1270  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3GSDIOut8, NTV2_CHANNEL8));
1271  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In5, NTV2_CHANNEL5));
1272  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In6, NTV2_CHANNEL6));
1273  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In7, NTV2_CHANNEL7));
1274  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2In8, NTV2_CHANNEL8));
1275  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out6, NTV2_CHANNEL6));
1276  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out7, NTV2_CHANNEL7));
1277  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtDualLinkV2Out8, NTV2_CHANNEL8));
1278  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC6, NTV2_CHANNEL6));
1279  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC7, NTV2_CHANNEL7));
1280  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtCSC8, NTV2_CHANNEL8));
1281  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT6, NTV2_CHANNEL6));
1282  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT7, NTV2_CHANNEL7));
1283  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtLUT8, NTV2_CHANNEL8));
1284  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtMixer3, NTV2_CHANNEL3));
1285  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtMixer4, NTV2_CHANNEL4));
1286  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer5, NTV2_CHANNEL5));
1287  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer6, NTV2_CHANNEL6));
1288  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer7, NTV2_CHANNEL7));
1289  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtFrameBuffer8, NTV2_CHANNEL8));
1290  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn1v3, NTV2_CHANNEL1));
1291  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v3, NTV2_CHANNEL1));
1292  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt425Mux1, NTV2_CHANNEL1));
1293  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt425Mux2, NTV2_CHANNEL2));
1294  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt425Mux3, NTV2_CHANNEL3));
1295  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt425Mux4, NTV2_CHANNEL4));
1296  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn1, NTV2_CHANNEL1));
1297  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn2, NTV2_CHANNEL2));
1298  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn3, NTV2_CHANNEL3));
1299  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn4, NTV2_CHANNEL4));
1300  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn5, NTV2_CHANNEL5));
1301  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn6, NTV2_CHANNEL6));
1302  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn7, NTV2_CHANNEL7));
1303  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIIn8, NTV2_CHANNEL8));
1304  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut1, NTV2_CHANNEL1));
1305  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut2, NTV2_CHANNEL2));
1306  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut3, NTV2_CHANNEL3));
1307  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut4, NTV2_CHANNEL4));
1308  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut5, NTV2_CHANNEL5));
1309  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut6, NTV2_CHANNEL6));
1310  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut7, NTV2_CHANNEL7));
1311  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt12GSDIOut8, NTV2_CHANNEL8));
1312  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn1v4, NTV2_CHANNEL1));
1313  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn2v4, NTV2_CHANNEL2));
1314  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn3v4, NTV2_CHANNEL3));
1315  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn4v4, NTV2_CHANNEL4));
1316  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v4, NTV2_CHANNEL1));
1317  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIIn1v5, NTV2_CHANNEL1));
1318  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v5, NTV2_CHANNEL1));
1319  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v6, NTV2_CHANNEL1));
1320  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v6, NTV2_CHANNEL2));
1321  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v6, NTV2_CHANNEL3));
1322  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtHDMIOut1v6, NTV2_CHANNEL4));
1323  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtMultiLinkOut1, NTV2_CHANNEL1));
1324  gWidget2Channels.insert(Widget2ChannelPair(NTV2_Wgt3DLUT1, NTV2_CHANNEL1));
1325  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtMultiLinkOut2, NTV2_CHANNEL2));
1326  gWidget2Channels.insert(Widget2ChannelPair(NTV2_WgtOE1, NTV2_CHANNEL1));
1327 }
1328 
1329 void RoutingExpert::InitWidgetIDToWidgetTypes(void)
1330 {
1335  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC1, NTV2WidgetType_CSC));
1336  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC2, NTV2WidgetType_CSC));
1337  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT1, NTV2WidgetType_LUT));
1338  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT2, NTV2WidgetType_LUT));
1341  gWidget2Types.insert(Widget2TypePair(NTV2_WgtSDIIn1, NTV2WidgetType_SDIIn));
1342  gWidget2Types.insert(Widget2TypePair(NTV2_WgtSDIIn2, NTV2WidgetType_SDIIn));
1347  gWidget2Types.insert(Widget2TypePair(NTV2_WgtSDIOut1, NTV2WidgetType_SDIOut));
1348  gWidget2Types.insert(Widget2TypePair(NTV2_WgtSDIOut2, NTV2WidgetType_SDIOut));
1349  gWidget2Types.insert(Widget2TypePair(NTV2_WgtSDIOut3, NTV2WidgetType_SDIOut));
1350  gWidget2Types.insert(Widget2TypePair(NTV2_WgtSDIOut4, NTV2WidgetType_SDIOut));
1369  gWidget2Types.insert(Widget2TypePair(NTV2_WgtMixer1, NTV2WidgetType_Mixer));
1374  gWidget2Types.insert(Widget2TypePair(NTV2_WgtIICT1, NTV2WidgetType_IICT));
1375  gWidget2Types.insert(Widget2TypePair(NTV2_WgtIICT2, NTV2WidgetType_IICT));
1377  gWidget2Types.insert(Widget2TypePair(NTV2_WgtGenLock, NTV2WidgetType_GenLock));
1379  gWidget2Types.insert(Widget2TypePair(NTV2_WgtMixer2, NTV2WidgetType_Mixer));
1381  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT3, NTV2WidgetType_LUT));
1382  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT4, NTV2WidgetType_LUT));
1387  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC3, NTV2WidgetType_CSC));
1388  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC4, NTV2WidgetType_CSC));
1392  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC5, NTV2WidgetType_CSC));
1393  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT5, NTV2WidgetType_LUT));
1411  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC6, NTV2WidgetType_CSC));
1412  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC7, NTV2WidgetType_CSC));
1413  gWidget2Types.insert(Widget2TypePair(NTV2_WgtCSC8, NTV2WidgetType_CSC));
1414  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT6, NTV2WidgetType_LUT));
1415  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT7, NTV2WidgetType_LUT));
1416  gWidget2Types.insert(Widget2TypePair(NTV2_WgtLUT8, NTV2WidgetType_LUT));
1417  gWidget2Types.insert(Widget2TypePair(NTV2_WgtMixer3, NTV2WidgetType_Mixer));
1418  gWidget2Types.insert(Widget2TypePair(NTV2_WgtMixer4, NTV2WidgetType_Mixer));
1457  gWidget2Types.insert(Widget2TypePair(NTV2_Wgt3DLUT1, NTV2WidgetType_LUT3D));
1459  gWidget2Types.insert(Widget2TypePair(NTV2_WgtOE1, NTV2WidgetType_OE));
1460 
1461  // SDI Widget Types
1462  gSDIWidgetTypes.insert(NTV2WidgetType_SDIIn);
1463  gSDIWidgetTypes.insert(NTV2WidgetType_SDIOut);
1464  gSDIWidgetTypes.insert(NTV2WidgetType_SDIIn3G);
1465  gSDIWidgetTypes.insert(NTV2WidgetType_SDIOut3G);
1466  gSDIWidgetTypes.insert(NTV2WidgetType_SDIIn12G);
1467  gSDIWidgetTypes.insert(NTV2WidgetType_SDIOut12G);
1468  gSDIWidgetTypes.insert(NTV2WidgetType_SDIMonOut);
1469  // SDI Input Widget Types
1470  gSDIInWidgetTypes.insert(NTV2WidgetType_SDIIn);
1471  gSDIInWidgetTypes.insert(NTV2WidgetType_SDIIn3G);
1472  gSDIInWidgetTypes.insert(NTV2WidgetType_SDIIn12G);
1473  // SDI Output Widget Types
1474  gSDIOutWidgetTypes.insert(NTV2WidgetType_SDIOut);
1475  gSDIOutWidgetTypes.insert(NTV2WidgetType_SDIOut3G);
1476  gSDIOutWidgetTypes.insert(NTV2WidgetType_SDIOut12G);
1477  gSDIOutWidgetTypes.insert(NTV2WidgetType_SDIMonOut);
1478  // 3G SDI Widget Types
1479  gSDI3GWidgetTypes.insert(NTV2WidgetType_SDIIn3G);
1480  gSDI3GWidgetTypes.insert(NTV2WidgetType_SDIOut3G);
1481  // 12G SDI Widget Types
1482  gSDI12GWidgetTypes.insert(NTV2WidgetType_SDIIn12G);
1483  gSDI12GWidgetTypes.insert(NTV2WidgetType_SDIOut12G);
1484  // DualLink Widget Types
1485  gDualLinkWidgetTypes.insert(NTV2WidgetType_DualLinkV1In);
1486  gDualLinkWidgetTypes.insert(NTV2WidgetType_DualLinkV2In);
1487  gDualLinkWidgetTypes.insert(NTV2WidgetType_DualLinkV1Out);
1488  gDualLinkWidgetTypes.insert(NTV2WidgetType_DualLinkV2Out);
1489  // DualLink Input Widget Types
1490  gDualLinkInWidgetTypes.insert(NTV2WidgetType_DualLinkV1In);
1491  gDualLinkInWidgetTypes.insert(NTV2WidgetType_DualLinkV2In);
1492  // DualLink Output Widget Types
1493  gDualLinkOutWidgetTypes.insert(NTV2WidgetType_DualLinkV1Out);
1494  gDualLinkOutWidgetTypes.insert(NTV2WidgetType_DualLinkV2Out);
1495  // HDMI Widget Types
1496  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIInV1);
1497  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIInV2);
1498  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIInV3);
1499  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIInV4);
1500  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIInV5);
1501  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIOutV1);
1502  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIOutV2);
1503  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIOutV3);
1504  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIOutV4);
1505  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIOutV5);
1506  gHDMIWidgetTypes.insert(NTV2WidgetType_HDMIOutV6);
1507  // HDMI Input Widget Types
1508  gHDMIInWidgetTypes.insert(NTV2WidgetType_HDMIInV1);
1509  gHDMIInWidgetTypes.insert(NTV2WidgetType_HDMIInV2);
1510  gHDMIInWidgetTypes.insert(NTV2WidgetType_HDMIInV3);
1511  gHDMIInWidgetTypes.insert(NTV2WidgetType_HDMIInV4);
1512  gHDMIInWidgetTypes.insert(NTV2WidgetType_HDMIInV5);
1513  // HDMI Output Widget Types
1514  gHDMIOutWidgetTypes.insert(NTV2WidgetType_HDMIOutV1);
1515  gHDMIOutWidgetTypes.insert(NTV2WidgetType_HDMIOutV2);
1516  gHDMIOutWidgetTypes.insert(NTV2WidgetType_HDMIOutV3);
1517  gHDMIOutWidgetTypes.insert(NTV2WidgetType_HDMIOutV4);
1518  gHDMIOutWidgetTypes.insert(NTV2WidgetType_HDMIOutV5);
1519  gHDMIOutWidgetTypes.insert(NTV2WidgetType_HDMIOutV6);
1520  // Analog Widget Types
1521  gAnalogWidgetTypes.insert(NTV2WidgetType_AnalogIn);
1522  gAnalogWidgetTypes.insert(NTV2WidgetType_AnalogOut);
1523  gAnalogWidgetTypes.insert(NTV2WidgetType_AnalogCompositeOut);
1524 }
NTV2InputXptID StringToInputXpt(const std::string &inStr) const
OutputXpt2WidgetIDs::const_iterator OutputXpt2WidgetIDsConstIter
bool IsKeyInputXpt(const NTV2InputXptID inInputXpt) const
String2InputXpt::const_iterator String2InputXptConstIter
std::string NTV2WidgetIDToString(const NTV2WidgetID inValue, const bool inCompactDisplay=false)
Definition: ntv2utils.cpp:6162
bool GetWidgetsForInput(const NTV2InputXptID inInputXpt, NTV2WidgetIDSet &outWidgetIDs) const
Declares the AJADebug class.
Widget2Types::const_iterator Widget2TypesConstIter
NTV2OutputXptID StringToOutputXpt(const std::string &inStr) const
std::pair< NTV2WidgetID, NTV2WidgetType > Widget2TypePair
bool IsHDMIWidget(const NTV2WidgetType inWidgetType) const
static int32_t Decrement(int32_t volatile *pTarget)
Definition: atomic.cpp:95
std::pair< NTV2OutputXptID, NTV2WidgetID > OutputXpt2WidgetIDPair
New in SDK 16.0.
Definition: ntv2enums.h:2564
static uint32_t gInstanceTally(0)
Widget2InputXpts::const_iterator Widget2InputXptsConstIter
OutputXpt2String::const_iterator OutputXpt2StringConstIter
#define NTV2SR_ASSIGN_BOTH(enumToStrMap, strToEnumMap, inEnum, inNameStr)
static uint32_t gLivingInstances(0)
I am a reference-counted pointer template class. I am intended to be a proxy for an underlying object...
Definition: ajarefptr.h:89
std::pair< NTV2InputXptID, NTV2WidgetID > InputXpt2WidgetIDPair
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They&#39;re also commonly use...
Definition: ntv2enums.h:1357
bool IsDualLinkWidget(const NTV2WidgetType inWidgetType) const
NTV2WidgetType
Definition: ntv2enums.h:3047
#define NTV2_ASSERT(_expr_)
Definition: ajatypes.h:476
Widget2Channels::const_iterator Widget2ChannelsConstIter
std::pair< NTV2WidgetID, NTV2InputXptID > Widget2InputXptPair
New in SDK 16.0.
Definition: ntv2enums.h:2562
bool IsRGBOnlyInputXpt(const NTV2InputXptID inInputXpt) const
Declares RoutingExpert class used by CNTV2SignalRouter.
NTV2WidgetID WidgetIDFromTypeAndChannel(const NTV2WidgetType inWidgetType, const NTV2Channel inChannel)
std::string NTV2InputCrosspointIDToString(const NTV2InputCrosspointID inValue, const bool inForRetailDisplay=false)
Definition: ntv2utils.cpp:5814
InputXpt2WidgetIDs::const_iterator InputXpt2WidgetIDsConstIter
bool Is12GSDIWidget(const NTV2WidgetType inWidgetType) const
#define AJA_NULL
Definition: ajatypes.h:167
New in SDK 16.0.
Definition: ntv2enums.h:2585
std::set< NTV2WidgetID > NTV2WidgetIDSet
A collection of distinct NTV2WidgetID values.
New in SDK 16.0.
Definition: ntv2enums.h:2561
New in SDK 16.0.
Definition: ntv2enums.h:2584
static int32_t Increment(int32_t volatile *pTarget)
Definition: atomic.cpp:82
Specifies channel or FrameStore 8 (or the 8th item).
Definition: ntv2enums.h:1366
New in SDK 16.0.
Definition: ntv2enums.h:2797
bool IsOutputXptValid(const NTV2OutputXptID inOutputXpt) const
InputXpt2String::const_iterator InputXpt2StringConstIter
Specifies channel or FrameStore 2 (or the 2nd item).
Definition: ntv2enums.h:1360
String2OutputXpt::const_iterator String2OutputXptConstIter
bool IsSDIOutWidget(const NTV2WidgetType inWidgetType) const
NTV2Channel WidgetIDToChannel(const NTV2WidgetID inWidgetID)
static uint32_t NumInstances(void)
bool GetWidgetsForOutput(const NTV2OutputXptID inOutputXpt, NTV2WidgetIDSet &outWidgetIDs) const
bool GetWidgetInputs(const NTV2WidgetID inWidgetID, NTV2InputXptIDSet &outInputs) const
static RoutingExpertPtr gpRoutingExpert
static bool DisposeInstance(void)
std::string & strip(std::string &str, const std::string &ws)
Definition: common.cpp:461
std::pair< NTV2WidgetID, NTV2OutputXptID > Widget2OutputXptPair
bool IsDualLinkInWidget(const NTV2WidgetType inWidgetType) const
bool IsDualLinkOutWidget(const NTV2WidgetType inWidgetType) const
#define DEC(__x__)
bool IsSDIInWidget(const NTV2WidgetType inWidgetType) const
bool IsSDIWidget(const NTV2WidgetType inWidgetType) const
std::set< NTV2InputXptID > NTV2InputXptIDSet
A collection of distinct NTV2InputXptID values.
New in SDK 16.0.
Definition: ntv2enums.h:2873
static AJALock gRoutingExpertLock
NTV2WidgetType WidgetIDToType(const NTV2WidgetID inWidgetID)
#define SRiDBG(__x__)
bool IsYUVOnlyInputXpt(const NTV2InputXptID inInputXpt) const
NTV2WidgetID
Definition: ntv2enums.h:2909
New in SDK 16.0.
Definition: ntv2enums.h:2795
static RoutingExpertPtr GetInstance(const bool inCreateIfNecessary=true)
Specifies channel or FrameStore 1 (or the first item).
Definition: ntv2enums.h:1359
bool GetWidgetOutputs(const NTV2WidgetID inWidgetID, NTV2OutputXptIDSet &outOutputs) const
Specifies channel or FrameStore 4 (or the 4th item).
Definition: ntv2enums.h:1362
enum NTV2InputCrosspointID NTV2InputXptID
Specifies channel or FrameStore 5 (or the 5th item).
Definition: ntv2enums.h:1363
Private include file for all ajabase sources.
New in SDK 16.0.
Definition: ntv2enums.h:2557
std::string InputXptToString(const NTV2InputXptID inInputXpt) const
New in SDK 16.0.
Definition: ntv2enums.h:2556
bool IsHDMIInWidget(const NTV2WidgetType inWidgetType) const
New in SDK 16.0.
Definition: ntv2enums.h:2563
Specifies channel or FrameStore 6 (or the 6th item).
Definition: ntv2enums.h:1364
std::pair< NTV2WidgetID, NTV2Channel > Widget2ChannelPair
std::string OutputXptToString(const NTV2OutputXptID inOutputXpt) const
Specifies channel or FrameStore 7 (or the 7th item).
Definition: ntv2enums.h:1365
std::string & lower(std::string &str)
Definition: common.cpp:436
#define SRiNOTE(__x__)
bool IsHDMIOutWidget(const NTV2WidgetType inWidgetType) const
Widget2OutputXpts::const_iterator Widget2OutputXptsConstIter
std::set< NTV2OutputXptID > NTV2OutputXptIDSet
A collection of distinct NTV2OutputXptID values.
enum NTV2OutputCrosspointID NTV2OutputXptID
bool Is3GSDIWidget(const NTV2WidgetType inWidgetType) const
Specifies channel or FrameStore 3 (or the 3rd item).
Definition: ntv2enums.h:1361