AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
ntv2task.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef NTV2TASK_H
9 #define NTV2TASK_H
10 
11 #include "ajaexport.h"
12 #include "ntv2card.h"
13 #if defined(AJALinux)
14  #include <stdio.h>
15 #endif
16 #include <sstream>
17 
22 {
23 public:
24 
25  // constructors
26  CNTV2Task();
27  CNTV2Task (const CNTV2Task & other);
28  virtual ~CNTV2Task();
29 
30  // initialize the task list
31  AJA_VIRTUAL void Init();
32 
33  // clear the task list
34  AJA_VIRTUAL void Clear();
35 
36  // add a frame synchronized register write
37  AJA_VIRTUAL AutoCircGenericTask * AddRegisterWriteTask (ULWord registerNum,
38  ULWord registerValue,
39  ULWord registerMask = 0xffffffff,
40  ULWord registerShift = 0);
41 
42  // add a frame synchronized register read
43  AJA_VIRTUAL AutoCircGenericTask * AddRegisterReadTask (ULWord registerNum,
44  ULWord registerMask = 0xffffffff,
45  ULWord registerShift = 0);
46 
47  // add time code write
48  AJA_VIRTUAL AutoCircGenericTask * AddTimeCodeWriteTask (RP188_STRUCT * pTCInOut1 = NULL,
49  RP188_STRUCT* pTCInOut2 = NULL,
50  RP188_STRUCT* pLTCEmbedded = NULL,
51  RP188_STRUCT* pLTCAnalog = NULL,
52  RP188_STRUCT* pLTCEmbedded2 = NULL,
53  RP188_STRUCT* pLTCAnalog2 = NULL,
54  RP188_STRUCT* pTCInOut3 = NULL,
55  RP188_STRUCT* pTCInOut4 = NULL,
56  RP188_STRUCT* pTCInOut5 = NULL,
57  RP188_STRUCT* pTCInOut6 = NULL,
58  RP188_STRUCT* pTCInOut7 = NULL,
59  RP188_STRUCT* pTCInOut8 = NULL);
60 
61  // add time code read
62  AJA_VIRTUAL AutoCircGenericTask* AddTimeCodeReadTask();
63 
64  // get a task by index
65  AJA_VIRTUAL AutoCircGenericTask* GetTask (ULWord index);
66  AJA_VIRTUAL const AutoCircGenericTask & GetTask (const ULWord index) const;
67 
68  // get the current number of tasks
69  AJA_VIRTUAL ULWord GetNumTasks (void) const;
70 
71  // get the maximum number of tasks
72  AJA_VIRTUAL ULWord GetMaxTasks (void) const;
73 
74  // get a pointer to the task structure for TransferWithAutoCirculate_Ex2
76 
77  // operators
78  AJA_VIRTUAL CNTV2Task & operator = (const CNTV2Task & other);
79  AJA_VIRTUAL operator AUTOCIRCULATE_TASK_STRUCT () const { return m_AutoCircTask; }
80  AJA_VIRTUAL operator PAUTOCIRCULATE_TASK_STRUCT () { return &m_AutoCircTask; }
81 
82 protected:
83  // used internally and by the driver
84  static bool InitTaskArray(AutoCircGenericTask* pTaskArray, ULWord numTasks);
85  static ULWord CopyTaskArray(AutoCircGenericTask* pDstArray, ULWord dstSize, ULWord dstMax,
86  const AutoCircGenericTask* pSrcArray, ULWord srcSize, ULWord srcNum);
87 
90 
91 }; // CNTV2Task
92 
93 
94 // ostream operators
95 std::ostream & operator << (std::ostream & inOutStream, const AutoCircGenericTask & inObj);
96 std::ostream & operator << (std::ostream & inOutStream, const CNTV2Task & inObj);
97 std::ostream & operator << (std::ostream & inOutStream, const AutoCircRegisterTask & inObj);
98 std::ostream & operator << (std::ostream & inOutStream, const AutoCircTimeCodeTask & inObj);
99 
100 #endif // NTV2TASK_H
AutoCircRegisterTask
Definition: ntv2publicinterface.h:4696
ajaexport.h
Defines the import/export macros for producing DLLs or LIBs.
PAUTOCIRCULATE_TASK_STRUCT
struct AUTOCIRCULATE_TASK_STRUCT * PAUTOCIRCULATE_TASK_STRUCT
NULL
#define NULL
Definition: ntv2caption608types.h:19
CNTV2Task
The AutoCirculate "task" facility is deprecated. Use the new AutoCirculate APIs.
Definition: ntv2task.h:21
CNTV2Task::m_AutoCircTask
AUTOCIRCULATE_TASK_STRUCT m_AutoCircTask
Definition: ntv2task.h:88
AutoCircGenericTask
Definition: ntv2publicinterface.h:4726
ULWord
uint32_t ULWord
Definition: ajatypes.h:253
AUTOCIRCULATE_TASK_MAX_TASKS
#define AUTOCIRCULATE_TASK_MAX_TASKS
Definition: ntv2publicinterface.h:4669
ntv2card.h
Declares the CNTV2Card class.
AJA_VIRTUAL
#define AJA_VIRTUAL
Definition: ajatypes.h:160
RP188_STRUCT
Definition: ntv2publicinterface.h:4083
AutoCircTimeCodeTask
Definition: ntv2publicinterface.h:4704
AJAExport
#define AJAExport
Definition: export.h:33
AUTOCIRCULATE_TASK_STRUCT
struct AUTOCIRCULATE_TASK_STRUCT AUTOCIRCULATE_TASK_STRUCT
operator<<
std::ostream & operator<<(std::ostream &inOutStream, const AutoCircGenericTask &inObj)
AUTOCIRCULATE_TASK_STRUCT
Definition: ntv2publicinterface.h:4755
NTV2_DEPRECATED_CLASS
#define NTV2_DEPRECATED_CLASS
Definition: ajatypes.h:520