AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
basemachinecontrol.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef _BASEMACHINECONTROL_H
9 #define _BASEMACHINECONTROL_H
10 
11 #include "ajaexport.h"
12 #include "ajatypes.h"
13 #include "ntv2enums.h"
14 
20 {
21  public:
22  typedef enum
23  {
24  CONTROLTYPE_DDR, // DDREthernetControl
25  CONTROLTYPE_XVID, // Uses NTV2 File to control AJA device
26  CONTROLTYPE_NTV2, // Uses AJA NTV2 device serial port
27  CONTROLTYPE_SERIAL, // Uses host serial Port
28  CONTROLTYPE_INVALID
29  } ControlType;
30 
31  typedef enum
32  {
33  CONTROL_UNIMPLEMENTED = 0xFFFFFFFF
34  } ControUnimplemented;
35 
36  public:
37  explicit inline CBaseMachineControl () : _controlType (CONTROLTYPE_INVALID) {}
38  virtual inline ~CBaseMachineControl () {}
39 
40  public:
41  virtual bool Open (void) = 0;
42  virtual void Close (void) = 0;
43 
44  // These return true, false or CONTROL_UNIMPLEMENTED
45  virtual inline ULWord Play (void) {return CONTROL_UNIMPLEMENTED;}
46  virtual inline ULWord ReversePlay (void) {return CONTROL_UNIMPLEMENTED;}
47  virtual inline ULWord Stop (void) {return CONTROL_UNIMPLEMENTED;}
48  virtual inline ULWord FastForward (void) {return CONTROL_UNIMPLEMENTED;}
49  virtual inline ULWord Rewind (void) {return CONTROL_UNIMPLEMENTED;}
50  virtual inline ULWord AdvanceFrame (void) {return CONTROL_UNIMPLEMENTED;}
51  virtual inline ULWord BackFrame (void) {return CONTROL_UNIMPLEMENTED;}
52  virtual inline ULWord GetTimecodeString (SByte * pOutTimecodeString) {(void) pOutTimecodeString; return CONTROL_UNIMPLEMENTED;}
53  virtual inline ULWord GotoFrameByString (SByte * pInFrameString) {(void) pInFrameString; return CONTROL_UNIMPLEMENTED;}
54  virtual inline ULWord GotoFrame (ULWord inFrameNumber) {(void) inFrameNumber; return CONTROL_UNIMPLEMENTED;}
55  virtual inline ULWord GotoFrameByHMS (UByte inHrs, UByte inMins, UByte inSecs, UByte inFrames) {(void) inHrs; (void) inMins; (void) inSecs; (void) inFrames; return CONTROL_UNIMPLEMENTED;}
56  virtual inline ULWord RecordAtFrame (ULWord inFrameNumber) {(void) inFrameNumber; return CONTROL_UNIMPLEMENTED;}
57  virtual inline ULWord Loop (ULWord inStartFrameNumber, ULWord inEndFrameNumber) {(void) inStartFrameNumber; (void) inEndFrameNumber; return CONTROL_UNIMPLEMENTED;}
58  virtual inline ControlType GetControlType (void) const {return _controlType;}
59 
60  protected:
62 
63 }; // CBaseMachineControl
64 
65 #endif // _BASEMACHINECONTROL_H
SByte
int8_t SByte
Definition: ajatypes.h:251
ajaexport.h
Defines the import/export macros for producing DLLs or LIBs.
CBaseMachineControl::Rewind
virtual ULWord Rewind(void)
Definition: basemachinecontrol.h:49
CBaseMachineControl::_controlType
ControlType _controlType
Definition: basemachinecontrol.h:61
CBaseMachineControl::GotoFrameByHMS
virtual ULWord GotoFrameByHMS(UByte inHrs, UByte inMins, UByte inSecs, UByte inFrames)
Definition: basemachinecontrol.h:55
CBaseMachineControl
A base class for deck control.
Definition: basemachinecontrol.h:19
CBaseMachineControl::~CBaseMachineControl
virtual ~CBaseMachineControl()
Definition: basemachinecontrol.h:38
CBaseMachineControl::CONTROLTYPE_NTV2
@ CONTROLTYPE_NTV2
Definition: basemachinecontrol.h:26
CBaseMachineControl::CONTROLTYPE_DDR
@ CONTROLTYPE_DDR
Definition: basemachinecontrol.h:24
CBaseMachineControl::Play
virtual ULWord Play(void)
Definition: basemachinecontrol.h:45
CBaseMachineControl::CBaseMachineControl
CBaseMachineControl()
Definition: basemachinecontrol.h:37
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::detail::void
j template void())
Definition: json.hpp:4893
CBaseMachineControl::RecordAtFrame
virtual ULWord RecordAtFrame(ULWord inFrameNumber)
Definition: basemachinecontrol.h:56
ajatypes.h
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
ULWord
uint32_t ULWord
Definition: ajatypes.h:255
CBaseMachineControl::FastForward
virtual ULWord FastForward(void)
Definition: basemachinecontrol.h:48
CBaseMachineControl::CONTROLTYPE_XVID
@ CONTROLTYPE_XVID
Definition: basemachinecontrol.h:25
CBaseMachineControl::GotoFrameByString
virtual ULWord GotoFrameByString(SByte *pInFrameString)
Definition: basemachinecontrol.h:53
ntv2enums.h
Enumerations for controlling NTV2 devices.
CBaseMachineControl::BackFrame
virtual ULWord BackFrame(void)
Definition: basemachinecontrol.h:51
CBaseMachineControl::GetTimecodeString
virtual ULWord GetTimecodeString(SByte *pOutTimecodeString)
Definition: basemachinecontrol.h:52
UByte
uint8_t UByte
Definition: ajatypes.h:250
CBaseMachineControl::AdvanceFrame
virtual ULWord AdvanceFrame(void)
Definition: basemachinecontrol.h:50
CBaseMachineControl::CONTROLTYPE_SERIAL
@ CONTROLTYPE_SERIAL
Definition: basemachinecontrol.h:27
CBaseMachineControl::Stop
virtual ULWord Stop(void)
Definition: basemachinecontrol.h:47
AJAExport
#define AJAExport
Definition: export.h:33
CBaseMachineControl::GetControlType
virtual ControlType GetControlType(void) const
Definition: basemachinecontrol.h:58
CBaseMachineControl::ControlType
ControlType
Definition: basemachinecontrol.h:22
CBaseMachineControl::GotoFrame
virtual ULWord GotoFrame(ULWord inFrameNumber)
Definition: basemachinecontrol.h:54
CBaseMachineControl::Loop
virtual ULWord Loop(ULWord inStartFrameNumber, ULWord inEndFrameNumber)
Definition: basemachinecontrol.h:57
CBaseMachineControl::ReversePlay
virtual ULWord ReversePlay(void)
Definition: basemachinecontrol.h:46