42 m_AutoCircTask.numTasks = 0;
43 m_AutoCircTask.taskArray = m_TaskArray;
49 m_AutoCircTask.numTasks = 0;
58 ULWord index = m_AutoCircTask.numTasks;
60 if(index >= m_AutoCircTask.maxTasks)
74 m_AutoCircTask.numTasks = index;
84 ULWord index = m_AutoCircTask.numTasks;
86 if(index >= m_AutoCircTask.maxTasks)
100 m_AutoCircTask.numTasks = index;
120 ULWord index = m_AutoCircTask.numTasks;
122 if(index >= m_AutoCircTask.maxTasks)
132 if(pTCInOut1 !=
NULL)
134 pGeneric->u.timeCodeTask.TCInOut1 = *pTCInOut1;
138 pGeneric->u.timeCodeTask.TCInOut1.
Low = 0xffffffff;
140 if(pTCInOut2 !=
NULL)
142 pGeneric->u.timeCodeTask.TCInOut2 = *pTCInOut2;
146 pGeneric->u.timeCodeTask.TCInOut2.
Low = 0xffffffff;
148 if(pTCInOut3 !=
NULL)
150 pGeneric->u.timeCodeTask.TCInOut3 = *pTCInOut3;
154 pGeneric->u.timeCodeTask.TCInOut3.
Low = 0xffffffff;
156 if(pTCInOut4 !=
NULL)
158 pGeneric->u.timeCodeTask.TCInOut4 = *pTCInOut4;
162 pGeneric->u.timeCodeTask.TCInOut4.
Low = 0xffffffff;
164 if(pTCInOut5 !=
NULL)
166 pGeneric->u.timeCodeTask.TCInOut5 = *pTCInOut5;
170 pGeneric->u.timeCodeTask.TCInOut5.
Low = 0xffffffff;
172 if(pTCInOut6 !=
NULL)
174 pGeneric->u.timeCodeTask.TCInOut6 = *pTCInOut6;
178 pGeneric->u.timeCodeTask.TCInOut6.
Low = 0xffffffff;
180 if(pTCInOut7 !=
NULL)
182 pGeneric->u.timeCodeTask.TCInOut7 = *pTCInOut7;
186 pGeneric->u.timeCodeTask.TCInOut7.
Low = 0xffffffff;
188 if(pTCInOut8 !=
NULL)
190 pGeneric->u.timeCodeTask.TCInOut8 = *pTCInOut8;
194 pGeneric->u.timeCodeTask.TCInOut8.
Low = 0xffffffff;
196 if(pLTCEmbedded !=
NULL)
198 pGeneric->u.timeCodeTask.LTCEmbedded = *pLTCEmbedded;
202 pGeneric->u.timeCodeTask.LTCEmbedded.
Low = 0xffffffff;
204 if(pLTCAnalog !=
NULL)
206 pGeneric->u.timeCodeTask.LTCAnalog = *pLTCAnalog;
210 pGeneric->u.timeCodeTask.LTCAnalog.
Low = 0xffffffff;
212 if(pLTCEmbedded2 !=
NULL)
214 pGeneric->u.timeCodeTask.LTCEmbedded2 = *pLTCEmbedded2;
218 pGeneric->u.timeCodeTask.LTCEmbedded2.
Low = 0xffffffff;
220 if(pLTCAnalog2 !=
NULL)
222 pGeneric->u.timeCodeTask.LTCAnalog2 = *pLTCAnalog2;
226 pGeneric->u.timeCodeTask.LTCAnalog2.
Low = 0xffffffff;
230 m_AutoCircTask.numTasks = index;
237 ULWord index = m_AutoCircTask.numTasks;
239 if(index >= m_AutoCircTask.maxTasks)
250 m_AutoCircTask.numTasks = index;
257 if(index >= m_AutoCircTask.numTasks)
262 return &m_TaskArray[index];
268 if (inIndex >= m_AutoCircTask.numTasks)
271 ::memset ((
void*)&nullTask, 0,
sizeof (nullTask));
275 return m_TaskArray [inIndex];
281 return m_AutoCircTask.numTasks;
286 return m_AutoCircTask.maxTasks;
291 return &m_AutoCircTask;
311 return inOutStream <<
"reg=" << inObj.
regNum <<
", mask=0x" << hex << setw (8) << setfill (
'0') << inObj.
mask << dec
312 <<
", shift=" << inObj.
shift <<
", value=0x" << hex << setw (8) << setfill (
'0') << inObj.
value << dec;
318 return inOutStream <<
" TCInOut1: " << inObj.
TCInOut1 << endl
319 <<
" TCInOut2: " << inObj.
TCInOut2 << endl
320 <<
" TCInOut3: " << inObj.
TCInOut3 << endl
321 <<
" TCInOut4: " << inObj.
TCInOut4 << endl
322 <<
" TCInOut5: " << inObj.
TCInOut5 << endl
323 <<
" TCInOut6: " << inObj.
TCInOut6 << endl
324 <<
" TCInOut7: " << inObj.
TCInOut7 << endl
325 <<
" TCInOut8: " << inObj.
TCInOut8 << endl
334 <<
" LTCAnalog: " << inObj.
LTCAnalog << endl
353 inOutStream << nTasks <<
" task(s):" << endl;
354 for (
ULWord num (0); num < nTasks; num++)
357 inOutStream <<
"[" << num <<
"] " << task << endl;
365 if(pTaskArray ==
NULL)
382 if((pSrcArray ==
NULL) || (pDstArray ==
NULL))
387 ULWord transferSize = srcSize;
388 if(transferSize > dstSize)
390 transferSize = dstSize;
393 ULWord transferNum = srcNum;
394 if(transferNum > dstMax)
396 transferNum = dstMax;
402 for(i = 0; i < transferNum; i++)
404 memcpy(pDst, pSrc, transferSize);
416 m_AutoCircTask.numTasks = CopyTaskArray(m_TaskArray, m_AutoCircTask.taskSize, m_AutoCircTask.maxTasks,
RP188_STRUCT LTCEmbedded6
AUTOCIRCULATE_TASK_STRUCT m_AutoCircTask
#define AUTOCIRCULATE_TASK_VERSION
virtual AutoCircGenericTask * AddRegisterWriteTask(ULWord registerNum, ULWord registerValue, ULWord registerMask=0xffffffff, ULWord registerShift=0)
#define NTV2_IS_TIMECODE_TASK(_x_)
RP188_STRUCT LTCEmbedded5
RP188_STRUCT LTCEmbedded8
virtual PAUTOCIRCULATE_TASK_STRUCT GetTaskStruct()
AutoCircTaskType
These are the available AutoCirculate task types.
RP188_STRUCT LTCEmbedded2
RP188_STRUCT LTCEmbedded7
static ULWord CopyTaskArray(AutoCircGenericTask *pDstArray, ULWord dstSize, ULWord dstMax, const AutoCircGenericTask *pSrcArray, ULWord srcSize, ULWord srcNum)
struct AutoCircGenericTask AutoCircGenericTask
#define AUTOCIRCULATE_TASK_MAX_TASKS
AutoCircGenericTask m_TaskArray[128]
static const string AutoCircTaskTypeToString(const AutoCircTaskType inTaskType)
AutoCircTimeCodeTask timeCodeTask
static bool InitTaskArray(AutoCircGenericTask *pTaskArray, ULWord numTasks)
ostream & operator<<(ostream &inOutStream, const AutoCircRegisterTask &inObj)
virtual ULWord GetNumTasks(void) const
virtual AutoCircGenericTask * AddTimeCodeWriteTask(RP188_STRUCT *pTCInOut1=NULL, RP188_STRUCT *pTCInOut2=NULL, RP188_STRUCT *pLTCEmbedded=NULL, RP188_STRUCT *pLTCAnalog=NULL, RP188_STRUCT *pLTCEmbedded2=NULL, RP188_STRUCT *pLTCAnalog2=NULL, RP188_STRUCT *pTCInOut3=NULL, RP188_STRUCT *pTCInOut4=NULL, RP188_STRUCT *pTCInOut5=NULL, RP188_STRUCT *pTCInOut6=NULL, RP188_STRUCT *pTCInOut7=NULL, RP188_STRUCT *pTCInOut8=NULL)
AutoCircRegisterTask registerTask
Declares the CNTV2Task class (deprecated).
union AutoCircGenericTask::@39 u
Declares numerous NTV2 utility functions.
The AutoCirculate "task" facility is deprecated. Use the new AutoCirculate APIs.
virtual AutoCircGenericTask * AddTimeCodeReadTask()
RP188_STRUCT LTCEmbedded3
virtual AutoCircGenericTask * GetTask(ULWord index)
RP188_STRUCT LTCEmbedded4
virtual ULWord GetMaxTasks(void) const
virtual AutoCircGenericTask * AddRegisterReadTask(ULWord registerNum, ULWord registerMask=0xffffffff, ULWord registerShift=0)
AutoCircTaskType taskType
virtual CNTV2Task & operator=(const CNTV2Task &other)
#define NTV2_IS_REGISTER_TASK(_x_)